Google Apps Scriptで簡単!カレンダーの終日イベントの管理方法
Googleカレンダーの終日イベントをもっと簡単に管理できたらいいのに…

猫男

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
終日イベントの管理もGASで、もうバッチリだな!