お世話になります。
スプレッドシートからGoogleカレンダーに予定を登録する際、スプレッドシートの更新行だけを常にカレンダーに登録したいです。
下記のコードでスプレッドシートからGoogleカレンダーに登録する事はできましたが、
スプレッドシートは常に更新されており、1日2~3件が登録されます。
ただ下のコードをトリガーで実行するとスプレッドシートに登録されている全スケジュールが都度Googleカレンダーに反映されてしまい、重複しまくりになっている状態です。
スプレッドシートの更新された行のみをGoogleカレンダーに都度反映させる事は可能でしょうか。
お手数ですがGASのご教示の程お願い致します。
※Googleカレンダーに記入するためのvar title = sheet.getRangeの複数行の入れ込み方法がわからなかったので、H列にB+C+D+E+Fとし、 var title = sheet.getRange(i,8).getDisplayValues().toString();で収めている状態です。
GAS
1function createEventFromSheet() { 2 // シートを選択 3 var sheet = SpreadsheetApp.getActiveSheet(); 4 5 // 行を選択 6 for(var i = 2; i <= sheet.getLastRow(); i++) { 7 // セルの値を取得 8 var start = sheet.getRange(i, 1).getValue().toString(); 9 var end = sheet.getRange(i, 1).getValue().toString(); 10 var title = sheet.getRange(i,8).getDisplayValues().toString(); 11 12 // タイトルがない場合、終了する 13 if(title.length <= 0) { 14 break; 15 } 16 17 // 開始と終了の日時を取得 18 var startTime = new Date(start); 19 var endTime = new Date(end); 20 21 // オプションを設定 22 var options = { 23 location: " ", 24 description: " " 25 } 26 27 // カレンダーを取得 28 var cal = CalendarApp.getCalendarById( 'カレンダーID' ); 29 30 // カレンダーにイベントを追加 31 cal.createEvent(title, startTime, endTime, options); 32 } 33}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/05 01:04
2021/08/05 15:22
2021/08/10 05:00
2021/08/11 01:36