何らかの理由でGoogleカレンダーの過去の予定データを一気に削除したいときにもGASが使えます。
※このスクリプトを実行すると、過去のイベントが全て削除されますので、慎重に実行してください。
過去の予定を削除する関数
過去の予定をすべて削除するための関数を作って予定を削除します。この関数は、指定されたカレンダーから過去のイベントを取得し、それを削除します。
※このスクリプトを実行すると、過去のイベントが全て削除されますので、慎重に実行してください。
function deletePastEvents() {
var calendarId = 'XXXXXXX@gmail.com'; // カレンダーIDを設定
var myCal = CalendarApp.getCalendarById(calendarId);
var today = new Date();
var events = myCal.getEvents(new Date(0), today); // 過去のイベントを取得
// 過去のイベントを削除
for (var i = 0; i < events.length; i++) {
var event = events[i];
Logger.log('削除されるイベント: ' + event.getTitle() + ', 開始日時: ' + event.getStartTime());
// イベントを削除する
event.deleteEvent();
}
Logger.log('過去のイベントの削除が完了しました。');
}
関数 deletePastEvents の解説
- カレンダーIDの設定:
var calendarId = 'XXXXXXX@gmail.com';
で対象のカレンダーのIDを指定しています。
- カレンダーオブジェクトの取得:
var myCal = CalendarApp.getCalendarById(calendarId);
で指定されたIDのカレンダーオブジェクトを取得しています。
- 今日の日付の取得:
var today = new Date();
で現在の日付を取得しています。
- 過去のイベントの取得:
var events = myCal.getEvents(new Date(0), today);
で過去のイベントを取得しています。new Date(0)
はエポックからの開始日時を表します。new Date(0) を開始日時として指定することで、エポックから現在までの過去の期間を指定して、過去のすべてのイベントを取得できます。
- 過去のイベントの削除:
for
ループで取得した各イベントに対して、そのイベントのタイトルと開始日時をログに出力し、event.deleteEvent()
でイベントを削除しています。
- ログの出力:
Logger.log('削除されるイベント: ' + event.getTitle() + ', 開始日時: ' + event.getStartTime());
で削除されるイベントの詳細情報をログに出力しています。Logger.log('過去のイベントの削除が完了しました。');
で過去のイベントの削除完了メッセージをログに出力しています。
関数 deletePastEvents の実行
こちらを実行します。過去のイベントの詳細情報はログに表示されます。
今の時間以前の全ての予定が消えました。
※今回の場合は現在進行系の予定も削除されますので適宜調整ください。
まとめ
このスクリプトでは、指定したカレンダーから過去のイベントを取得し、それを一つずつ削除しています。なお、このスクリプトを実行すると、過去のイベントが全て削除されますので、慎重に実行してください。