Google Apps Scriptで簡単!カレンダーの終日イベントの管理方法

Googleカレンダーの終日イベントをもっと簡単に管理できたらいいのに…
猫男
猫男
catman
catman
その悩み、catmanが解決してやろう。GASでGoogleカレンダーの終日イベントを効率良く管理する方法を教えてやるよ。

GASでカレンダーの終日イベントを追加する

GASを使って、Googleカレンダーに終日イベントを追加するのは簡単だ。以下のコードで、カレンダーにイベントを作成してみよう。


 function createAllDayEvent() {
   var calendar = CalendarApp.getDefaultCalendar();
   var eventDate = new Date(2023, 11, 25); // 2023年12月25日
   calendar.createAllDayEvent('クリスマス', eventDate);
 }

ここではCalendarApp.getDefaultCalendar()でデフォルトのカレンダーを取得。

createAllDayEvent()メソッドを使えば、指定した日付に終日イベントが追加される。

終日イベントの削除方法

既存の終日イベントを削除したいときもGASは頼りになる。次のコードを見てみよう。


 function deleteAllDayEvent() {
   var calendar = CalendarApp.getDefaultCalendar();
   var events = calendar.getEventsForDay(new Date(2023, 11, 25));
   for (var i = 0; i < events.length; i++) {
     if (events[i].isAllDayEvent() && events[i].getTitle() == 'クリスマス') {
       events[i].deleteEvent();
     }
   }
 }

getEventsForDay()で特定の日付のイベントを取得する。

取得したイベントが終日かどうかはisAllDayEvent()で判定。条件に合えばdeleteEvent()で削除する。

終日イベントの更新方法

イベント名を変更したいときも簡単に更新可能だ。


 function updateAllDayEvent() {
   var calendar = CalendarApp.getDefaultCalendar();
   var events = calendar.getEventsForDay(new Date(2023, 11, 25));
   for (var i = 0; i < events.length; i++) {
     if (events[i].isAllDayEvent() && events[i].getTitle() == 'クリスマス') {
       events[i].setTitle('クリスマス - 家族集まり');
     }
   }
 }

setTitle()を使って、イベント名を「クリスマス – 家族集まり」に更新。

条件は、イベントが終日であり、元のタイトルが『クリスマス』であることだ。

すごい!GASでこんなことができるなんて知らなかった!猫男もちょっとヒーロー気分になれそう。
猫男
猫男

 

練習問題

1. 2023年12月31日に「大晦日」という終日イベントを追加しよう。

2. 追加した「大晦日」イベントを更新し、タイトルを「年越し」に変更しよう。

 

 

解答・解説


function addAndUpdateAllDayEvent() {
  var calendar = CalendarApp.getDefaultCalendar();
  
  // 「大晦日」終日イベントを追加
  var eventDate = new Date(2023, 11, 31);
  calendar.createAllDayEvent('大晦日', eventDate);

  // 追加したイベントを「年越し」に更新
  var events = calendar.getEventsForDay(eventDate);
  for (var i = 0; i < events.length; i++) {
    if (events[i].isAllDayEvent() && events[i].getTitle() == '大晦日') {
      events[i].setTitle('年越し');
    }
  }
}

createAllDayEvent()で「大晦日」を追加し、getEventsForDay()でその日付のイベントを取得。

繰り返し処理を用いて、すべてのイベントを調べ、条件に合致するイベントタイトルをsetTitle()で「年越し」に変更する。

 

catman
catman
終日イベントの管理もGASで、もうバッチリだな!