Google Calendar に自動で会議の予定を入れる Google Apps Script を作成してみた

はじめに

私が勤めている会社の会議室予約ルールが月初の午前10時から2ヶ月後の会議室を予約していいよというルールです。
例:1月1日午前10時に3月分の予約をしていいということ
手作業で予約作業をするのがバカらしくなってきたので、Google Apps Script を使って自動化しました。

コード

Google Apps Script は下記 URL から新規スクリプトで作れます。

Apps Script – Google Apps Script

コードの置き場所はここです

calendar-register/calendar-register.gs at master · rioner/calendar-register · GitHub

少しコード解説

今回の会議は金曜日午前9時半~12時でセットしています。
2ヶ月後の予約を取りたいため、6,12行目のセット用変数に+2してます。
19~36行目のdo~while内の34,35行目で1日ずつ足しつつ、36行目の条件式で2ヶ月後でなくなったら処理を抜けるようにしてます。
21行目の getDay() === 5 が金曜日かどうかの条件なんですが、これは getDay 関数は"0"が日曜日~"6"が土曜日として数値で返ってくるためです。リファレンスは以下。

getDay メソッド (Date) (JavaScript)

最後に26行目の会議室IDの調べ方について解説します。
カレンダー画面の左真ん中あたりにある「同僚のカレンダーを追加」の+マークから「リソースのブラウジング

f:id:rioner2525:20181105181841p:plain

会議室の一覧が出てきますので、目的の会議室にチェックすれば自分のカレンダーに会議室の予定が追加されます。
次、カレンダー画面の歯車マークから「設定」。

f:id:rioner2525:20181105182000p:plain


左側の他のカレンダーの設定から目的の会議室を選ぶと、会議室の詳細が確認できます。
会議室IDはカレンダーの統合という欄にあります。画像の塗り潰しの部分です。

f:id:rioner2525:20181105180909p:plain

あとは Script のトリガーを月イチとかに設定すればOKです。
ただ、時間主導型のトリガーだと時間ぴったりに Script が実行されるわけではないのでそこは注意が必要です。
今回の Script のトリガーは毎月1日の午前10時~11時としたのですが、だいたい10時半前後に実行されます。
会議室を先に取られたらマズイ場合は結局手作業が必要ですかね...
以上です。