Google Apps Scriptでカレンダーリマインダー通知設定&削除をマスターする方法

GASでGoogleカレンダーにリマインダーを設定する方法を知りたいんですが、難しそうで…
猫男
猫男
catman
catman
安心しろ。catmanが「GASでカレンダーのリマインダーを設定&削除する」方法を教えてやるさ。

 

GASでGoogleカレンダーにリマインダーを追加する方法

GASでは、リマインダーを設定する際にCalendarAppを利用するぞ。


function setCalendarReminder() {
  var calendar = CalendarApp.getDefaultCalendar();
  var startTime = new Date(2023, 10, 25, 9, 0);
  var endTime = new Date(2023, 10, 25, 10, 0);
  var event = calendar.createEvent('重要会議',
      startTime,
      endTime,
      {description: '会議室A', location: 'オフィス'});
  event.addEmailReminder(10); // 10分前にメール通知
} 

このスクリプトは、デフォルトカレンダーに「重要会議」というイベントを追加し、10分前にメールでリマインダーされるはずだ。

 

GASでGoogleカレンダーのリマインダーを削除する方法

リマインダーを削除したい場合もGASで簡単に設定できる。設定したリマインダーの削除方法も知っておくと無敵だな。

まず対象のイベントを取得してから、削除を行う。


function removeCalendarReminder() {
  var calendar = CalendarApp.getDefaultCalendar();
  var events = calendar.getEvents(new Date(2023, 10, 25, 9, 0), new Date(2023, 10, 25, 10, 0));
  if (events.length > 0) {
    var event = events[0];
    event.removeAllReminders();
  }
} 

取得したイベントに対しremoveAllReminders()メソッドを使うことで、そのイベントに設定された全てのリマインダーを削除できるんだ。

 

おぉ、スクリプトで簡単にリマインダーを操作できるんですね!
猫男
猫男
catman
catman
その通り。これで君のカレンダーが自由に動きはじめるだろう。

 

練習問題:GASでリマインダーを設定する

  1. 特定の日付に「プロジェクト開始」というイベントを作成し、開始の15分前にメールリマインダーを設定してみよう。
  2. 設定したリマインダーを削除するコードも作成してみよう。

 

解答・解説

続いて、解答・解説だ。

1. イベントを作成しリマインダーを設定


function createProjectReminder() {
  var calendar = CalendarApp.getDefaultCalendar();
  var startTime = new Date(2023, 11, 1, 14, 0);
  var endTime = new Date(2023, 11, 1, 15, 0);
  var event = calendar.createEvent('プロジェクト開始',
      startTime,
      endTime,
      {description: 'プロジェクトのキックオフ', location: 'オンライン'});
  event.addEmailReminder(15); // 15分前にメール通知
}

このスクリプトは「プロジェクト開始」のイベントを作り、15分前にメールでリマインダー通知をセットしている。

2. 設定したリマインダーを削除するコード


function deleteProjectReminder() {
  var calendar = CalendarApp.getDefaultCalendar();
  var events = calendar.getEvents(new Date(2023, 11, 1, 14, 0), new Date(2023, 11, 1, 15, 0));
  if (events.length > 0) {
    var event = events[0];
    event.removeAllReminders();
  }
}

このスクリプトは、作成したイベントのリマインダーをすべて削除している。getEventsでイベントを取得、removeAllReminders()でリマインダーを削除する。

これで本当にGASでのカレンダー操作に自信が持てました!ありがとうございます!
猫男
猫男
catman
catman
どんどん使って、日々の業務に役立ててくれ!