繰り返しルールを設定する— setRecurrence()
今回のメソッドは、繰り返し予定に対して繰り返しルールを設定するためのメソッドを紹介します。
繰り返し予定に対しては、繰り返しルールの設定及び再設定をするためのメソッドが用意されています。それが今回ご紹介するsetRecurrence()になります。繰り返しのルールを作るためには、こちらの記事で説明しているやり方に沿ってルール作りをします。
『 引数に入れる値 』
setRecurrence(recurrence, startDate)
//繰り返しの終日予定ルールを設定するコード function sampleCodeForCalendarAppSetRecurrence1() { var calendar = CalendarApp.getDefaultCalendar(); var title = "繰り返し予定設定テスト"; var startDate = new Date(); var endDate = new Date(); endDate.setYear(endDate.getFullYear() + 1); var eventSeries = calendar.createAllDayEvent(title, startDate).getEventSeries(); var recurrence = CalendarApp.newRecurrence().addWeeklyRule() .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY) .until(new Date(endDate)); eventSeries.setRecurrence(recurrence, startDate); }
『 変数の説明 』
calendar = デフォルトカレンダーを取得
title = 予定のタイトルを代入
startDate = 繰り返し予定の開始日を代入
endDate = 繰り返し予定の終了日を代入(開始日の1年後)
eventSeries = 予定を新規作成して代入
recurrence = 繰り返しルールを代入
スクリプトができたら▶ボタンでプログラムを実行してみましょう。今回のコードではデフォルトカレンダーのプログラム実行日から1年間毎週水曜日に繰り返し予定を設定するコードを書いてみました。今回は予定を新規作成してその予定に繰り返しルールを適用して繰り返し予定に設定してありますが、既存の予定の繰り返し設定を変更することもできますので、いろいろな使い方を試してみて下さい。
setRecurrence(recurrence, startTime, endTime)
//繰り返しの時間指定(終日予定ではない)予定ルールを設定するコード function sampleCodeForCalendarAppSetRecurrence2() { var calendar = CalendarApp.getDefaultCalendar(); var title = "繰り返し予定設定テスト"; var startTime = new Date(); var endTime = new Date(); var endDate = new Date(); endTime.setHours(endTime.getHours() + 1); endDate.setYear(endDate.getFullYear() + 1); var eventSeries = calendar.createAllDayEvent(title, startTime).getEventSeries(); var recurrence = CalendarApp.newRecurrence().addWeeklyRule() .onlyOnWeekdays([CalendarApp.Weekday.TUESDAY, CalendarApp.Weekday.THURSDAY]) .until(new Date(endDate)); eventSeries.setRecurrence(recurrence, startTime, endTime); }
『 変数の説明 』
calendar = デフォルトカレンダーを取得
title = 予定のタイトルを代入
startTime = 繰り返し予定の開始時間を代入
endTime = 繰り返し予定の終了時間を代入(開始時間の1時間後)
endDate = 繰り返し予定の終了日を代入(開始日の1年後)
eventSeries = 予定を新規作成して代入
recurrence = 繰り返しルールを代入
サンプルコード2はプログラム実行時間から1時間後までの予定を毎週木曜日に1年後まで繰り返し作成するコードを書いてみました。サンプルコード1と2の大きな違いは、コード1は終日予定の繰り返し予定を作成するのに対し、コード2は時間指定の繰り返し予定を作成するために使われます。用途に合わせて使い分けて下さい。
まとめ
今回は繰り返し予定のルール設定をプログラム的に行う方法について説明しました。繰り返しルールの設定はかなりややこしいので、解説ページを確認しながら使い方を身に着けてしまいましょう。