前提・実現したいこと
教員をしているGAS初心者です。
三者面談の希望日調査とそのスケジューリングを簡単にできないかと思っていたところ、その方法を紹介するサイトを見つけ、やってみました。Googleフォームで回答してもらい、それがカレンダーに連携するようなプログラムです。私は今年の年末から来年の1月にかけて面談を実施したいと思っているのですが、そのサイトで紹介していたスクリプトは2021年に限定したものだったため、試しに実行してみると2022年1月に入れたつもりが2021年1月に入ってしまいます。初心者ゆえ、どこをどう変えたらいいのか分かりません。初歩的なことだとは思いますが、ご教授よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージはありません。2022年のカレンダーに入れたい内容が2021年に入ってきます。
該当のソースコード
GASです。
function sendToCalendar(e) {
try{
//年を入力***
var year = 2021;
//有効なGooglesプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//新規予約された行番号を取得
var num_row = sheet.getLastRow();
//メールアドレスの取得
var nmail = sheet.getRange(num_row, 2).getValue();
//新規予約された行から出席番号を取得
var nnum = sheet.getRange(num_row, 3).getValue();
//新規予約された行から名前を取得
var nname = sheet.getRange(num_row, 4).getValue();
//予約を記載するカレンダーを取得
var cals = CalendarApp.getCalendarById("c_7h233a1gchct0vmda9e3r4n7cs@group.calendar.google.com");
//予約日を取得
var ndate = new Date(sheet.getRange(num_row, 5).getValue());
//予約の開始時間を取得
var stime = new Date(sheet.getRange(num_row, 6).getValue());
//予約の終了時間を取得(***開始時間から「15分」で指定!)
var etime = new Date(sheet.getRange(num_row, 6).getValue());
etime.setMinutes(etime.getMinutes()+15);//***面談時間が15分
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 = nnum+"."+nname+"さんが予約しています。\n 別の時間帯を入力してください。";
//予約情報をカレンダーに追加
var r = cals.createEvent(thing, ndates, ndatee);
var thing =nnum+"番 "+nname+"さん \n\n 予約を受け付けました。\n 後日、確定のお知らせをいたします。\n\n ありがとうございました。"
MailApp.sendEmail(nmail,"三者面談 予約完了",thing);
}
else{
var thing =nname+"さん \n\n 予約の時間に先約がありましたので、\n 申し訳ございませんが、予約できませんでした。\n\n 時間帯を変更して再度お申込みください。"
MailApp.sendEmail(nmail,"予約できませんでした",thing);
}
} catch(exp){
//実行に失敗した時に通知
MailApp.sendEmail(nmail, exp.message, exp.message);
}
}
試したこと
3・4行目の『年を入力』というところが問題だとは思いますが、どうしていいか分からなかったのでそのままにしています。フォームの質問の希望日の回答パターンが年を除く月日のみになっていたのを年月日に変えてみました。それでは何も変わりませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/16 01:27
2021/12/16 04:18
2021/12/16 04:30 編集