スプレッドシートからGoogleカレンダーに日時や場所などをインポートしたいです。
スクリプトエディタで日時・タイトル・時間までは入れられたものの、
場所と説明が上手く入れられません。
GAS初心者で、ネットに転がっているものを少し書き換えたり調べながらしか作れません。
下記の☆マーク内の部分がどうしても実行されません。ご教示お願いい致します。
function sendToCalendar(e) {
try{
//有効なGooglesプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//新規予約された行番号を取得
var num_row = sheet.getLastRow();
//新規予約された行から名前を取得
var nname = sheet.getRange(num_row, 3).getValue();
//メールアドレスの取得
var nmail = sheet.getRange(num_row,2).getValue();
//予約を記載するカレンダーを取得
var cals = CalendarApp.getCalendarById("c_ho7qo066l2kbtqol7a6crstbmk@group.calendar.google.com");
//予約の開始時間を取得
var stime = new Date(sheet.getRange(num_row, 6).getValue());
//予約の終了時間を取得
var etime = new Date(sheet.getRange(num_row, 7).getValue());
☆この星と星の間の式?をGoogleカレンダーの場所と説明欄に反映させたいのですが…
//予約者の所属部署名・予約場所を取得
var options = {
location : (sheet.getRange(num_row,8).getValue()),
description : (sheet.getRange(num_row,4).getValue())
}
☆
var ndate = new Date(sheet.getRange(num_row, 5).getValue());
var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0);
var ndatee= new Date(ndate.getFullYear(),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 ご予約を承りました。"
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);
}
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/29 03:30