GASでGoogleカレンダーを操作する方法

月曜日の朝、カフェでコーヒーを啜りながら、ふと感じた。「このスケジュールの山をどうにかできないだろうか?」いや、正確に言うと、それはもう整理されているべきものだった。だって、Googleカレンダーがあるじゃないか。だが、それでも、予定を自動で管理できればどれだけ楽になるだろう。

そこで、今回はGoogle Apps Script(GAS)を使ってGoogleカレンダーと連携し、予定を追加したり削除したりする方法を紹介しよう。  


目的

カレンダーは未来を管理するための道具だ。そして、未来とはいつも不安定で、時にわずかなズレで私たちを混乱に陥れる。例えば、アインシュタインが言ったように、時間は絶対的なものではなく、観察者によってその進み方が違う。だが、少なくともGoogleカレンダーは、君にとって一定の未来を見せてくれるはずだ。


準備

  1. Googleカレンダー:カレンダーがなければ、未来は無秩序に過ぎ去る。管理するためには、まずカレンダーを手に入れよう。
  2. GASエディタ:スプレッドシートを開いて、拡張機能 > Apps Scriptでエディタを呼び出す。少しばかり面倒だが、やらねばならない儀式だ。

コードの説明

GASでGoogleカレンダーに予定を追加するコードは、以下の通りだ。簡単そうに見えるだろう?うん、そうなんだ。時間が相対的であることに比べれば、カレンダーに予定を追加するなんて難しいはずがない。

function createCalendarEvent() {
  // カレンダーを取得
  const calendar = CalendarApp.getDefaultCalendar();

  // イベントの詳細を設定
  const title = "未来との約束"; // イベントのタイトル
  const startTime = new Date(2024, 8, 20, 10, 0); // 開始時間(年, 月, 日, 時間, 分)
  const endTime = new Date(2024, 8, 20, 11, 0);   // 終了時間
  const description = "コーヒーを飲みながら、次の大事な決断を考える時間。";
  const location = "お気に入りのカフェ";

  // イベントを作成
  calendar.createEvent(title, startTime, endTime, {
    description: description,
    location: location
  });
  
  Logger.log("未来がカレンダーに追加されたが、何かが変わるのだろうか?");
}

コードのポイント

  1. CalendarApp.getDefaultCalendar() で君のデフォルトカレンダーを取得する。これで未来を覗き込む窓が開かれる。
  2. createEvent() でイベントを作成する。君が思うよりも簡単だが、未来を約束することはいつだって不確定なものだ。結局、予定が本当に実行されるかどうかは、わからない。

イベントの削除

未来はいつでも変更可能だ。作ったイベントを削除することも、現実に変化をもたらすかもしれないし、あるいは何も変わらないかもしれない。

function deleteEvent() {
  const calendar = CalendarApp.getDefaultCalendar();
  const events = calendar.getEvents(new Date(2024, 8, 20), new Date(2024, 8, 21));
  
  events.forEach(event => {
    if (event.getTitle() === "未来との約束") {
      event.deleteEvent();
      Logger.log("約束は破られた。だが、それで何かが変わるのだろうか?");
    }
  });
}

カスタマイズのヒント

  • リマインダーを追加する:未来に備えるために、リマインダーが役立つこともある。ここでは、30分前にメールで通知を送る設定を追加してみよう。

    const event = calendar.createEvent(title, startTime, endTime, {
      description: description,
      location: location
    });
    event.addEmailReminder(30); // イベントの30分前にリマインド
    
  • 定期的なイベント:もし君が決まった日課を持っているなら、定期的にイベントを設定することもできる。例えば、毎週月曜日にコーヒータイムを予約することだ。

    event.setRecurrence(CalendarApp.newRecurrence().addWeeklyRule().times(10));
    

まとめ

GASでGoogleカレンダーを操作することで、未来は少しだけ見やすくなる。しかし、未来そのものが絶対的なものではないことを覚えておこう。アインシュタインが示したように、時間は相対的で、私たちが未来に期待するほど確実ではない。それでも、カレンダーに予定を入れることで、少しだけ安心感を得られるかもしれない。


次回の予告
次回は、GASを使ってGmailとの連携に挑戦する。未来は受信トレイにも溢れている。その波に飲まれない方法を、一緒に探していこう。


コメント

このブログの人気の投稿

桃太郎電鉄ワールド、初の大型アップデート。その名も『ムー大陸浮上!』

GASのさらに高度なテクニック:非同期処理、プロパティサービス、Webhookチェーン

GASでスクレイピング 〜天才ア○バ様の教え〜