GASでGoogleカレンダーを操作する方法
月曜日の朝、カフェでコーヒーを啜りながら、ふと感じた。「このスケジュールの山をどうにかできないだろうか?」いや、正確に言うと、それはもう整理されているべきものだった。だって、Googleカレンダーがあるじゃないか。だが、それでも、予定を自動で管理できればどれだけ楽になるだろう。
そこで、今回はGoogle Apps Script(GAS)を使ってGoogleカレンダーと連携し、予定を追加したり削除したりする方法を紹介しよう。
目的
カレンダーは未来を管理するための道具だ。そして、未来とはいつも不安定で、時にわずかなズレで私たちを混乱に陥れる。例えば、アインシュタインが言ったように、時間は絶対的なものではなく、観察者によってその進み方が違う。だが、少なくともGoogleカレンダーは、君にとって一定の未来を見せてくれるはずだ。
準備
- Googleカレンダー:カレンダーがなければ、未来は無秩序に過ぎ去る。管理するためには、まずカレンダーを手に入れよう。
-
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("未来がカレンダーに追加されたが、何かが変わるのだろうか?");
}
コードのポイント
-
CalendarApp.getDefaultCalendar()
で君のデフォルトカレンダーを取得する。これで未来を覗き込む窓が開かれる。 -
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との連携に挑戦する。未来は受信トレイにも溢れている。その波に飲まれない方法を、一緒に探していこう。
コメント
コメントを投稿