Googleカレンダーの予定の繰り返しのどれか一つを削除するには

この記事の中身的な話です!端的にコードを紹介してるので上の記事からスプシをコピーしてGASを見ていただけると分かりやすいです。

GoogleカレンダーとGASを連携してカレンダーを操作するのは便利ですが、予定を削除する時に.deleteEvent()を使うと繰り返す予定の全てを削除してしまいます。
なのでevent.isrecurringevent()で対象イベントが繰り返しかどうかで条件分岐させます。

for (let i = 0;i < events.length;i++){
const event = events[i];
  if(event.isrecurringevent() == true){
// 繰り返し予定のための処理
  }else{
// ただの単発予定だから消す
  event.deleteEvent();
  }
}

そして、繰り返し予定の削除にはどうすればよいかといったところで、

繰り返しのルールを追加するメソッドを足します。

// 繰り返し予定のための処理
const thetime = event.getStartTime();
const id = event.getId();
const original = CalendarApp.getEventId(id);
const series = CalendarApp.getEventSeries(id);
const Starttime = original.getStarttime();
const Endtime = original.getEndtime();
const recurrence = CalendarApp.newRecurrence().addDateExclusion(thetime);
series.setRecurrence(recurrence,Starttime,Endtime);
}else// 単発〜

これの注意点として、''毎〇〇に予定がある''かつ''この日にはない''という少し複雑なルールにしているので、カレンダーのスマホアプリから読めません。なので例えば木金から月木金にあとからしたくなったら自分でrecurrenceをsetするか普通に手動で予定入力してください


いいなと思ったら応援しよう!