【GAS】予定の各種リマインダー情報を取得するget****Remindersメソッドを完全マスター

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
icon_for_CalendarApp_get----Reminders

予定のリマインダーを取得する— get****Reminders()

今回のメソッドは、予定にリマインダーが設定されている場合に、リマインダーが予定の何分前に設定されているかを取得するメソッドをご紹介します。予定に設定できるリマインダーは全部で2種類(以前は3種類)ありますが、それぞれのリマインダーに対して予定の何分前に設定するかを取得するメソッドが用意されています。今回の記事では、その取得方法について説明します。

以前執筆した記事に、リマインダーを設定する『set****Reminder()メソッド』についての記事があります。こちらでも説明している通り、リマインダーには『メール』と『通知』そして『SMS』の3つがあります。SMSは現状利用できないようですが、最初の2つのリマインダーについては、カレンダー上で手動で設定することもできますし、もちろんプログラムでも設定が可能です。

今回のメソッドはそれぞれのリマインダーに対して予定の何分前に設定されているのか配列で取得することができます。リマインダーは『メール』『通知』合わせて最大で5つまで設定可能ですので、配列の中には最大で5つの情報が格納されることになります。

配列の順番は最初に設定されているリマインダーから順番に格納されていきます。設定した順番ではありませんので、扱いやすく親切ですね。

Googleカレンダー上では、単位が『分』『時間』『日』『週』が設定できますが、取得される単位はどの単位で設定したとしても『分』単位で取得されます。

それでは、サンプルコードを参考に使い方を学んでいきましょう。

      1. getEmailReminders()
      2. getPopupReminders()
      3. getSmsReminders()

『 引数に入れる値 』

今回のメソッドに関しては引数は必要ありません。

getEmailReminders()

サンプルコード1
//メールリマインダーの設定分数を取得するコード
function sampleCodeForCalendarAppGetEmailReminders() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    Logger.log(event.getEmailReminders());
  }
}

『 変数の説明 』

calendar = デフォルトカレンダーを取得
date = プログラム実行日を代入
events = プログラム実行日の予定を取得
event = 個々予定を取得

スクリプトができたら▶ボタンでプログラムを実行してみましょう。今回のコードではプログラム実行日の予定の取得するコードを書いてみました。Googleカレンダーには手動で下記の通り3つのリマインダーを設定しました。

設定リマインダースクショ

こちらを設定した上で、getEmailReminders()メソッドを実行してログを確認しました。

リマインダーの出力ログ

上記のスクリーンショットのように配列に数字が出力されています。

1番最初のリマインダーは予定の30時間前に設定されています。30時間を分に換算すると、30(時間) × 60(分) = 1800(分)

2番目のリマインダーは予定の10時間前設定されています。分換算すると、10(時間) × 60(分) = 600(分)

3番目のリマインダーは予定の10分前に設定されていますので、そのまま10(分)

がログに表示されています。今回のメソッドの注意点としては、取得できる単位は必ず分単位になるという事です。設定した単位が何であれ、取得できる結果は必ず分単位で取得されることに注意して下さい。

getPopupReminders()

サンプルコード2
//通知リマインダーの設定分数を取得するコード
function sampleCodeForCalendarAppGetPopupReminders() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    Logger.log(event.getPopupReminders());
  }
}

今度は通知リマインダーの情報を取得することができます。こちらもメールリマインダーと同じように出力結果は配列で分単位の設定分数が取得されます。
使い方は全く同じですので、サンプルコード1で『getEmailReminders』と書いた部分を『getPopupReminders』に置き換えるだけで使うことができます。
リマインダーの取得は種類によって別れていますので、メールと通知両方のリマインダーを設定している場合はそれぞれのメソッドを実行する必要があります。
出力ログについては、サンプルコード1と同じになりますので、割愛します。

getSmsReminders()

サンプルコード3
//通知リマインダーの設定分数を取得するコード
function sampleCodeForCalendarAppGetSmsReminders() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    Logger.log(event.getSmsReminders());
  }
}

執筆時点では、公式リファレンスにも表記がありますので、こちらでも念の為使い方をご紹介しますが、こちらのメソッドを使用しても結果は空の配列がログに表示されるだけになります。もしSMSリマインダーが使えればこちらのメソッドも前述の2つのメソッドと同じように使えるのでしょうが、現状は使えないようです。

まとめ

今回は予定のリマインダーを取得するget****Reminders()メソッドのご紹介をしました。これで、プログラムで何分前にリマインダーが設定されているのかを正確に把握することができます。なにかの処理に活用してみて下さい。

SNSでもご購読できます。

コメントを残す

*