前提・実現したいこと
恐縮ながら、完全初心者です。
GASでGoogleフォームから年月日を指定した上で希望の時間帯をGoogleカレンダー上に予約を反映させられる、貸し会議室予約システムのようなものを作成しようとしています。
ネットを調べて見様見真似で反映までは出来たのですが、年がコード上で指定するタイプのものを参考にしたのですが、Googleフォーム入力側で指定できるようにしたいです。
助けて下さい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
function sendToCalendar(e) { try{ //年を入力*** var year = 2020; //有効なGooglesプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //新規予約された行番号を取得 var num_row = sheet.getLastRow(); //メールアドレスの取得 var nmail = sheet.getRange(num_row, 2).getValue(); //新規予約された行から名前を取得 var nname = sheet.getRange(num_row, 4).getValue(); //予約を記載するカレンダーを取得 var cals = CalendarApp.getCalendarById("カレンダーID"); //予約日を取得 var ndate = new Date(sheet.getRange(num_row, 7).getValue()); //予約の開始時間を取得 var stime = new Date(sheet.getRange(num_row, 8).getValue()); //予約の終了時間を取得 var etime = new Date(sheet.getRange(num_row, 9).getValue()); var ndates= new Date(year,ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(year,ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0); // 先約があるかどうか調べる if(cals.getEvents(ndates, ndatee)==0){ var thing =nname+"様(振込)"; //予約情報をカレンダーに追加 var r = cals.createEvent(thing, ndates, ndatee); var thing =nname+"様 \n\n 予約申込を受け付けました。\n 後ほど別途ご案内メールをお送りします。\n\n 3営業日前までにお振込みいただいた場合のみご利用いただけます。" MailApp.sendEmail(nmail,"6F1 予約申込完了",thing); } else{ var thing =nname+"様 \n\n 予約の時間に先約がありましたので、\n 申し訳ございませんが、予約できませんでした。\n\n 時間帯を変更して再度お申込みください。" MailApp.sendEmail(nmail,"予約できませんでした",thing); } } catch(exp){ //実行に失敗した時に通知 MailApp.sendEmail(nmail, exp.message, exp.message); } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー