繰り返し予定のルールを定義する — newRecurrence
繰り返しの予定を作成するときに繰り返しルールの定義をする必要があるのですが、今回は定義するためのコードをご紹介します。意外と複雑そうにみえるので、皆様の参考になればと思っています。
それでは、説明を始めます。
newRecurrence()
//繰り返し予定を定義して予定をコード function sampleCode1() { var today = new Date(); var year = today.getFullYear() + 1; var month = today.getMonth() + 1; var date = today.getDate(); var yearLater = new Date(year + "/" + month + "/" + date); var recurrence = CalendarApp.newRecurrence() .addWeeklyRule() .onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY) .until(yearLater); CalendarApp.getDefaultCalendar() .createAllDayEventSeries('GAS Event', today, recurrence); }
『 変数の説明 』
today = プログラムを実行した日付オブジェクトを代入
year = 実行日の1年後の西暦を代入
month = 実行日の月を代入
date = 実行日の日にちを代入
yearLater = 実行日の1年後の日付オブジェクトを代入
recurrence = 繰り返し予定のルールを代入(毎週水曜日に繰り返すルールを定義)
スクリプトをコピーして▶ボタンでプログラムを実行してみましょう。実行が終了したらカレンダーページを更新してみて下さい。実行日当日から始まる繰り返し予定が作成されていると思います。毎週水曜日に『GAS Event』という終日予定が1年後まで繰り返されていることが確認できるでしょうか?
繰り返し予定のルールはrecurrenceという変数の部分で定義しています。今回は、addWeeklyRule()で週間予定を定義し、onlyOnWeekday()で水曜日を指定しました。until()で繰り返し予定の終了日を設定しています。
newRecurrence()メソッドには続けてRecurrenceRuleクラスとEventRecurrenceクラスのメソッドを続け記載します。
下記に利用できるメソッドをご紹介します。メソッドチェーンで複数のメソッドを一括で指定することができます。
RecurrenceRuleクラスのメソッド
- addDailyExclusion() — 連続する複数日を繰り返しルールから除外するメソッド
- addDailyRule() — 連続する複数日を繰り返しルールに指定するメソッド
- addDate(date) — 特定の日を繰り返しルールに指定するメソッド
- addDateExclusion(date) — 特定の日を繰り返しルールから除外するメソッド
- addMonthlyExclusion() — 連続する複数月を繰り返しルールから除外するメソッド
- addMonthlyRule() — 連続する複数月を繰り返しルールに指定するメソッド
- addWeeklyExclusion() — 連続する複数週を繰り返しルールから除外するメソッド
- addWeeklyRule() — 連続する複数週を繰り返しルールに指定するメソッド
- addYearlyExclusion() — 連続する複数年を繰り返しルールから除外するメソッド
- addYearlyRule() — 連続する複数年を繰り返しルールに指定するメソッド
- interval(interval) — 繰り返し予定が発生する間隔をルールに指定するメソッド
- onlyInMonth(month) — 繰り返し予定が発生する単独月を指定するメソッド
- onlyInMonths(months) — 繰り返し予定が発生する複数月を指定するメソッド
- onlyOnMonthDay(day) — 月ベースで繰り返し予定が発生する単独曜日を指定するメソッド
- onlyOnMonthDays(days) — 月ベースで繰り返し予定が発生するを複数曜日を指定するメソッド
- onlyOnWeek(week) — 年ベースで繰り返し予定が発生する単独週を指定するメソッド
- onlyOnWeekday(day) — 週ベースで繰り返し予定が発生する単独曜日を指定するメソッド
- onlyOnWeekdays(days) — 週ベースで繰り返し予定が発生する複数曜日を指定するメソッド
- onlyOnWeeks(weeks) — 年ベースで繰り返し予定が発生する複数週を指定するメソッド
- onlyOnYearDay(day) — 年ベースで繰り返し予定が発生する単独曜日を指定するメソッド
- onlyOnYearDays(days) — 年ベースで繰り返し予定が発生する複数曜日を指定するメソッド
- setTimeZone(timeZone) — 繰り返し予定のタイムゾーンを指定するメソッド
- times(times) — 繰り返し回数を指定するメソッド
- until(endDate) — 繰り返し予定の終了日を指定するメソッド
- weekStartsOn(day) — 1週間が始まる曜日を指定するメソッド
EventRecurrenceクラスのメソッド
- addDailyExclusion() — 連続する複数日を繰り返しルールから除外するメソッド
- addDailyRule() — 連続する複数日を繰り返しルールに指定するメソッド
- addDate(date) — 特定の日を繰り返しルールに指定するメソッド
- addDateExclusion(date) — 特定の日を繰り返しルールから除外するメソッド
- addMonthlyExclusion() — 連続する複数月を繰り返しルールから除外するメソッド
- addMonthlyRule() — 連続する複数月を繰り返しルールに指定するメソッド
- addWeeklyExclusion() — 連続する複数週を繰り返しルールから除外するメソッド
- addWeeklyRule() — 連続する複数週を繰り返しルールに指定するメソッド
- addYearlyExclusion() — 連続する複数年を繰り返しルールから除外するメソッド
- addYearlyRule() — 連続する複数年を繰り返しルールに指定するメソッド
- setTimeZone(timeZone) — 繰り返し予定のタイムゾーンを指定するメソッド
まとめ
今回は繰り返し予定を定義するためのコードをご紹介しました。他のクラスと使う必要があるので、少しわかりづらかったかもしれませんが、わからなくなったらこちらのページとEventRecurrenceクラス/RecurrenceRuleクラスのページを参照してコードを組んでみて下さい。
すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。