Calendar

【GAS】予定の繰り返しルールをつくる カレンダーの定例会議をチャットに通知①

定例会議にまつわる色々を自動化したい!

世の中で最も参加したくないイベントの一つとして定例会議があります。参加したくないと思っているものですから、忘れたふりをして不参加にしたいくらいです。

ところが忘れたふりをしたいと思っていると本当に忘れてしまいます。すると怒られてしまいますから自動的にカレンダーに入れて、その予定をチャットで通知する必要がありそうです。

そこでGoogle Apps Scriptを使って自動的にカレンダーに予定が入るようにして通知するようにします。

また、定例会議は議事録もセットです。議事録も自動的に生成されるようにしておきます。


つまり今回実現したいのは↓のようなことです。

  • カレンダーへの追加は毎月1日に翌月分を入れる
  • 定例会議は毎週月曜日の10時から行われる
  • 祝日は定例会議の予定が入らない
  • 開始時刻の1時間前にチャットに定例会議の予定が通知される
  • 予定に定型の議事録をくっつける
  • 毎週金曜日に翌週の定例会議の議題を議事録に記入するよう参加者に通知する


ま、ざっくりこんな感じです。

では、カレンダーに追加するためのルール(毎週月曜日、翌月分を入れる)を書いていきます。

「繰り返しルール」をGASで実現します。

予定の繰り返し

毎週同じ曜日同じ時間に定例会議があります。こういうときは「繰り返しルール」をつくります。

もちろんGASを使わなくてもできますが、今回はGASで予定の繰り返しを実現したいと思います。

毎月1日に翌月の定例会議を設定していきます。現在は2024年3月だとすると、

const setRegularMeeting = () => {
  const calendarApp = CalendarApp
  const recurrence = calendarApp.newRecurrence()
  const weeklyRecurrenceRule = recurrence.addWeeklyRule()
  const recurrenceRule = weeklyRecurrenceRule.onlyOnWeekday(calendarApp.Weekday.MONDAY).until(new Date('April 30, 2024'))
}

4月分の繰り返しルールはこのように実現できます。

このコードについて少し説明します。

繰り返しオブジェクトをつくる – newRecurrenceメソッド

カレンダーアプリにnewRecurrenceというメソッドがあります。

このメソッドは「繰り返し予定オブジェクト」をつくります。

繰り返し予定オブジェクトは、予定の繰り返しにまつわる処理をするときに利用するオブジェクトです。

繰り返し予定ルールの設定をするときも、このオブジェクトを利用します。

newRecurrenceメソッド ー 繰り返し予定オブジェクトをつくるメソッド

構文:カレンダーアプリオブジェクト.newRecurrence()

戻り値:繰り返し予定オブジェクト

参照)Google Apps Scriptのマニュアル カレンダーアプリクラス

週次のルールをつくる – addWeeklyRule

上のnewRecurrenceメソッドでつくった繰り返し予定オブジェクトから、addWeeklyRuleメソッドを使って週次のルールを追加します。

コードの4行目です。

const weeklyRecurrenceRule = recurrence.addWeeklyRule()

addWeeklyRuleメソッド ー 週次のルールを追加するメソッド

構文:繰り返し予定オブジェクト.addWeeklyRule()

戻り値:繰り返しルールオブジェクト

参照)Google Apps Scriptのマニュアル 繰り返し予定クラス

ルールの中身を定義する – onlyOnWeekdayメソッド、untilメソッド

addWeeklyRuleメソッドでつくった「繰り返しルールオブジェクト」には、まだ具体的なルールが設定されていません。

今回の繰り返しのルールは下の2つです。

  1. 毎週月曜日
  2. 翌月分のみ

このルールを定義しているのがコードの5行目です。

const recurrenceRule = weeklyRecurrenceRule.onlyOnWeekday(calendarApp.Weekday.MONDAY).until(new Date('April 30, 2024'))

onlyOnWeekday( )は( )の中身に曜日を入れます。

until( )は( )の中身にいつまでかを入れます。


ここでは月曜日、4月末(今は3月という設定なので翌月末は4月)を設定しています。


以上で繰り返しルールの設定が完了です。

↓でも繰り返しの予定を追加する方法を説明しています。

と、言いたいところですが、このコードですと4月に実行されても、4月末までの予定しか入りません。

いちいちスクリプトを書き換えているようでは、ちっとも自動化ではありません。


そこで次回はuntilメソッドの中身を書き換えなくても「翌月末まで」となるように修正していきます。


シーユー

Copied title and URL