home about terms twitter

(GAS)Googleカレンダーで期間内の予定を削除する

date: 2021-04-28 | mod: 2021-04-28

前書き

Google カレンダーは、GAS(Google Apps Script)と連携して予定の変更・追加・削除などが行えます(公式ドキュメント)。

カレンダーの予定では、追加したいものを順次追加する方法があります。一方で、すでにある予定を一度削除してから新たに追加しなおしたい状況があります。

そこで、本記事ではGASを用いてある期間内の予定をGoogleカレンダーから削除する方法を記載します。

方法

以下のコードを、カレンダーを操作するgsファイル中の関数に挿入します。

calenderのidは「設定」からカレンダーを選び、「カレンダーのID」から得るか、アクセスしたURLから取得してください。

得られたidをyour_calender_idに挿入します。

var calender = CalendarApp.getCalendarById('your_calender_id');

// 削除開始日の取得
var delStartDate = new Date('January 1, 2021');
// 削除終了日の取得
var delEndDate = new Date('January 1, 2022');

var events = calender.getEvents(delStartDate, delEndDate);
for (var i in events) {
    // スリープ
    Utilities.sleep(1000)

    var event = events[i];
    event.deleteEvent();
}

eventsにリストとして期間内のイベントが得られます。そのイベントの数だけdeleteEvent()を実行します。

これにより、2021年1月1日から2022年1月1日の予定が削除されます。

注意点として、短時間にイベントを多数編集した場合には、 Exception: You have been creating or deleting too many calendars or calendar events in a short time. Please try again later.

となりますので、ループの途中に Utilities.sleep(1000) を挟みましょう。 これにより、1000ミリ秒 = 1秒のスリープが発生します。

また、作成する予定が多い場合には、数時間以上にわたり使用制限が発生する場合があります。

カレンダーの使用制限に関しましては、「Google Wordspace 管理者ヘルプ - カレンダーの使用制限を超えないようにする」をご参照ください。

関連記事

GASをRSSリーダー用のウェブアプリケーションとして開発した例です。

GASをWebAPIとすることでPythonと連携する例です。