Googleカレンダーの予定リマインダーをGASで設定する方法(メールとデスクトップ通知)

2021年9月22日

Googleカレンダーの予定を忘れないためにリマインダー通知の機能があります。

このリマインダー(メール通知とデスクトップ通知)をGoogle Apps Script(GAS)で設定する方法を解説します。

Googleカレンダーのリマインダー通知機能

Googleカレンダーで予定を作成すると、予定の設定内容に「通知」の項目が用意されています。

Googleカレンダーで予定の設定項目に通知

この通知はスケジュール管理としてGoogleカレンダーでは必須の機能です。

通知設定で追加したタイミング(予定の30分前)などにお知らせしてくれます。

パソコンで作業していると、時間が過ぎているのを忘れてしまいがちなので、通知によるリマインダーで予定を忘れるのを防止できます。

リマインダーはメールとポップアップ通知の2種類

Googleカレンダーの予定のリマインダー設定には2種類用意されています。

  1. 通知(デスクトップ通知)
  2. メール

デフォルトのリマインド設定である「通知」では、端末などにプッシュ通知という形で表示されます。

2つ目のメールは、利用しているGoogleアカウントのメールアドレス宛にメールが送付されます。

なお、このGoogleカレンダーの予定リマインダー機能もGoogle Apps Scriptで設定が可能です。

GASで通知リマインダーを設定する2つのメソッド

Google Apps Script(GAS)でGoogleカレンダーの予定に設定する通知リマインダーは、通知・メールで2つのメソッドがあります。

Event.addEmailReminder(’何分前通知’);

Event.addPopupReminder(’何分前通知’);

Googleカレンダーから取得した予定(イベントオブジェクト)に対し、上記のメソッドを実行すると通知設定が追加されます。

どちらも引数は「○分前に通知する」という形で○に入る数字を指定します。

例えば、20分前にデスクトップ通知を受けたい場合は「Event.addPopupReminder(20)」を実行します。

なお、引数に指定できる数字(分)は5~40320の間から選択する必要があります。

SMS通知リマインダーの設定メソッドは使用不可

Google Apps Script(GAS)のリファレンスやコードの補完機能では、もう1つのリマインダー追加メソッド「addSmsReminder」が確認できます。

addSmsReminderは、前述した通知リマインダーと同様の機能ですが、メールやポップアップではなく、SMS(電話番号宛のショートメッセージ)で通知が来るものです。

しかし、addSmsReminderメソッドを実行してもSMSによる通知リマインダーは予定には設定されません。

スマホ版のGoogleカレンダーアプリでも予定の通知設定ができますが、SMSによる通知は設定不可能です。

GoogleカレンダーのスマホアプリでもSMSによる通知リマインダーは設定不可

そのため、GASでGoogleカレンダーの予定にリマインダーを追加するメソッドは2種類で、addSmsReminderメソッドは設定不可と覚えておく必要があります。

GASでメール+ポップアップ通知を設定するサンプルコード

Google Apps Script(GAS)を使って、Googleカレンダーの予定にメールとデスクトップ通知を追加するスクリプトを解説します。

今回、以下の通知が設定されていない「リマインダーテスト」に対して、GASでリマインダー追加を実行します。

GASで通知リマインダーを追加するGoogleカレンダーの予定(現状は通知設定なし)

予定にリマインダー設定を追加するGASのサンプルコードを用意しました。

Google Apps Script(GAS)でaddEmailReminderとaddPopupReminderでGoogleカレンダーの予定に通知リマインダーを設定するサンプルコード
function setEventReminder() {
  //アクセス可能なカレンダーのIDを指定して、Googleカレンダーを取得する
  let myCalendar = CalendarApp.getCalendarById('**********@gmail.com');
  //Googleカレンダーから取得するイベントの開始日(今日)を設定する
  let startDate = new Date();
  //Googleカレンダーから取得するイベントの終了日(1週間後)を設定する
  let endDate = new Date();
  endDate.setDate(startDate.getDate() + 7);
  //開始日~終了日に存在するGoogleカレンダーのイベントを取得する
  let myEvent = myCalendar.getEvents(startDate, endDate);
  //取得した1つ目のイベントにメールでのリマインダーを設定する(60分前)
  myEvent[0].addEmailReminder(60);
  //取得した1つ目のイベントにポップアップでのリマインダーを設定する(20分前)
  myEvent[0].addPopupReminder(20);
}

サンプルコードの大部分は、GoogleカレンダーのIDからカレンダーを読み込み、指定期間のイベント予定を取得しています(1~10行)。

Googleカレンダーの予定にメール+通知のリマインダー追加しているのは、12行目と14行目です。

リマインダー追加のGASサンプルコードを実行すると、先程紹介した「リマインダーテスト」の予定に通知とメールが追加されているのが確認できます。

GASで通知リマインダーを設定するスクリプトを実行した結果、Googleカレンダーの予定に通知が追加

このようにaddEmailReminderとaddPopupReminderのGASメソッドを使うことでGoogleカレンダーの予定に通知を追加可能です。

SMSリマインダー「addSmsReminder」実行結果

なお、前述したGoogle Apps Scriptのサジェストで表示されるもう一つリマインダー追加メソッド「addSmsReminder」もテストしてみます。

さきほどのGASサンプルコードとほとんど同じ形でリマインダー追加のメソッドを変更し、リマインダーが設定されているかgetSmsReminders()メソッドで確認します。

Google Apps Script(GAS)でaddSmsReminderメソッドを実行した結果

しかし、addSmsReminderを実行してみても、console.logの出力結果は空表示になっています。

念のため、メールアドレス以外に電話番号も登録したGoogleアカウントで実行してみましたが、同様の結果でした。

まとめ・終わりに

今回、Google Apps ScriptでGoogleカレンダーの予定に通知リマインダーを追加設定する方法を紹介しました。

Googleカレンダーの予定にはメールによる通知とデスクトップ通知の2種類のリマインダーが設定できますが、GASでもメソッドを実行するだけで設定可能です。

なお、GAS上はSMSによる通知のメソッドも表示されますが、こちらは実行しても設定できないようでした。

GASのスクリプトをうまく活用すれば、予定内容に応じて、通知の時間を変更することもできるので便利です。