GoogleAppsScript屋さん

GoogleAppsScript のサンプルコードなどを載せていきます

終日イベントの登録

はじめに

GoogleAppsScript に新しく追加された「終日イベント登録」の検証です(2017.10.10 リリース)。 Calendar.createAllDayEvent(title, date)

f:id:rokuni62:20171107092503p:plain

実は今までは GoogleAppsScript でカレンダーに「終日イベント」を登録するメソッドが無かったんですね。

Gmail 内の日付から Googleカレンダーに登録するスクリプトを書いたことがあるのですが、終日イベントを登録する方法がないことに愕然とした記憶があります…。

仕方がないのでその時は Calendar.createEvent で終日イベントっぽいものを登録しておいたのですが、新メソッドで実現できるようになるのは嬉しいですね。

では早速使ってみたいと思います。 なお、比較のため、終日イベントを登録するメソッドが出来る前に書いておいた「終日っぽいイベント」も作成しています。

サンプルコード

function myFunction() {
  
  // createEvent で終日イベント(っぽいもの)を登録
  CalendarApp
  .getDefaultCalendar()
  .createEvent(
    "ブログ公開日(旧)"
    , new Date("2017/11/08 00:00:00")
    , new Date("2017/11/08 00:00:00")
  )

  // createAllDatEvent で終日イベントを登録
  CalendarApp
  .getDefaultCalendar()
  .createAllDayEvent(
    "ブログ公開日(新)"
    , new Date("2017/11/08") 
  )
}

実行結果

f:id:rokuni62:20171107093545p:plain

解説

プログラム自体は難しくないと思うので特に解説しません。

ただ単にイベントを登録しているだけなのですが、 createEvent では 0:00 に登録することで終日イベントっぽい見た目にしています。

ですが createAllDayEvent でちゃんと終日イベントとして登録されている方が分かりやすいですね。当たり前ですが。

さいごに

「終日イベント」を登録するメソッドの紹介ということでしたが、

  • いままでは終日イベントが「登録できなかった」
  • これからは終日イベントが「登録できるようになった」

ということを経緯も含めて覚えていただければ幸いです。

例えば、誰かのスクリプトを修正する際に「終日イベントなのに、なんで終日イベントで登録してないんだ?」と思うこともあるかもしれません。

その時に「ああ、昔は終日イベントで登録出来なかったからか。修正しておこう」と判断できるのではないでしょうか。