みなさんも定期的に発生する予定を作成する機会は少なくないと思いますが、今回の投稿では繰り返し予定をプログラムで作成するcreateEventSeries()というメソッドを解説します。
ルーチンワークや定期ミーティングなど繰り返し予定を作成する機会はビジネス上ではよくあると思いますが、今回はプログラムで繰り返し予定を作成してみます。使い方は『【コピペで使える】GASでカレンダーに繰返しの終日予定を作成してみる』で紹介したcreateAllDayEventSeries()というメソッドと似たような形ですので、それほど難しいメソッドではありません。
繰り返し予定を作成するメソッド — createEventSeries
コピペで使えるサンプルコードを参照したい方はこちらをクリックすればサンプルコードまでジャンプできますので、手っ取り早くコードを確認したい方はクリックしてください。
それでは解説を始めます。このメソッドは2つ種類があります。
- createAllDayEventSeries(title, startTime, endTime, recurrence)
- createAllDayEventSeries(title, startTime, endTime, recurrence, options)
『 引数に入れる値 』
- title(予定のタイトル) — ダブルクォーテーションで囲んだ文字列
- startTime(予定の開始時間) — 日付オブジェクト
- endTime(予定の終了時間) — 日付オブジェクト
- recurrence(繰り返しルール) — EventRecurrence設定
- options(詳細設定) — JSONオブジェク
- description — 予定の説明 (文字列)
- location — 予定の場所 (文字列)
- guests — ゲストのアドレス(文字列:ゲストを複数招待する場合には、カンマで区切る)
- sendInvites — true / false
『 関連するメソッド 』
合わせて覚えたいカレンダー予定の操作に関するメソッド
- createEvent — 予定を作成する
- createAllDayEvent — 終日予定を作成する
- createAllDayEventSeries — 繰り返しの終日予定を作成する
- deleteEvent — 予定を削除する
- deleteEventSeries — 予定を削除する
createEventSeries(title, startTime, endTime, recurrence)サンプルコード
繰り返しの予定を作成する基本的なコードから紹介します。
//デフォルトカレンダーにtitleに代入した予定タイトルでstartTimeからendTimeまでの時間に繰り返しの予定を作成するコード function sampleCodeForCreateEventSeries1() { let calendar = CalendarApp.getDefaultCalendar(); let title = "繰り返し予定タイトル"; let startTime = new Date(); let endTime = new Date(); new Date(endTime.setHours(endTime.getHours() + 2)); let untilDate = new Date(); new Date(untilDate.setMonth(untilDate.getMonth() + 1)); let recurrence = CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY).until(new Date(untilDate)); calendar.createEventSeries(title, startTime, endTime, recurrence); }
『 変数の説明 』
calendar = アカウントのデフォルトカレンダーを取得
title = 予定のタイトルを文字列で指定
startTime = 繰り返し予定の開始日時を指定
endTime = 繰り返し予定の終了日時を指定
recurrence = 繰り返しルールを指定
『 デフォルトカレンダーに繰り返し予定を作成するサンプルコード 』に上記サンプルスクリプトを記載したスクリプトがあります。
スクリプトを実行すると、Googleカレンダーにタイトルに指定した予定名で実行時から2時間の予定が作成され、それ以降は1ヶ月後までの期間で毎週水曜日の同時間帯の水曜日に繰り返し予定が作成されます。
createEventSeries(title, startTime, endTime, recurrence, options)サンプルコード
更に細かい情報を設定をして繰り返し予定を作成するコードです。
//デフォルトカレンダーにtitleに代入した予定タイトルでstartTimeからendTimeまでの時間に繰り返しの予定を作成するコード function sampleCodeForCreateEventSeries2() { let calendar = CalendarApp.getDefaultCalendar(); let title = "繰り返し予定タイトル"; let startTime = new Date(); let endTime = new Date(); new Date(endTime.setHours(endTime.getHours() + 2)); let untilDate = new Date(); new Date(untilDate.setMonth(untilDate.getMonth() + 1)); let recurrence = CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY).until(new Date(untilDate)); let options = { description: "定例ミーティング", location: "会議室①" } calendar.createEventSeries(title, startTime, endTime, recurrence, options); }
『 変数の説明 』
calendar = アカウントのデフォルトカレンダーを取得
title = 予定のタイトルを文字列で指定
startTime = 繰り返し予定の開始日時を指定
endTime = 繰り返し予定の終了日時を指定
recurrence = 繰り返しルールを指定
options = 細かい内容を指定して予定を作成できます。今回の例では、場所と予定詳細を指定してあります。
スクリプトを実行すると、上図のように場所に会議室①、予定詳細に定例ミーティングと設定された繰り返し予定が作成されます。
まとめ
使い方はほとんどcreateAllDayEventSeries()とほとんど変わりませんでしたね。慣れてしまうと予定の作成方法はどのメソッドでもあまり変わらないことがおわかり頂けるかと思います。一度作り方を覚えてしまえば自分の作成したい予定をプログラムでどんどん作成できそうですね。
実際の使用はGoogleフォームで選択した日にちを取得してカレンダーに予定を作成したり、スプレッドシートに入れた日付データを一括でカレンダーに登録したりなど、違うGoogleサービスから日付を取得して予定作成を自動化したりといった使い方が実際の使用用途になるかと思います。