初心者でもわかるGoogle Apps Script活用のススメ

【GAS】CalendarAppのEventRecurrenceクラスのメソッドを解説

EventRecurrenceクラスのメソッド

繰り返しの予定を作成するときに繰り返しルールの定義をする必要があるのですが、今回はルールの作り方をご紹介します。公式リファレンスではサンプルコードがないものがあったりしますが、本ページでは全てのメソッドにコピペして使えるサンプルコードをつけてあります。サンプルコードの内容を一部変えたりして動作の確認等に活用していただければと思っています。

それでは、説明を始めます。

  1. addDailyExclusion() — 連続する複数日を繰り返しルールから除外するメソッド
  2. addDailyRule() — 連続する複数日を繰り返しルールに指定するメソッド
  3. addDate(date) — 特定の日を繰り返しルールに指定するメソッド
  4. addDateExclusion(date) — 特定の日を繰り返しルールから除外するメソッド
  5. addMonthlyExclusion() — 連続する複数月を繰り返しルールから除外するメソッド
  6. addMonthlyRule() — 連続する複数月を繰り返しルールに指定するメソッド
  7. addWeeklyExclusion() — 連続する複数週を繰り返しルールから除外するメソッド
  8. addWeeklyRule() — 連続する複数週を繰り返しルールに指定するメソッド
  9. addYearlyExclusion() — 連続する複数年を繰り返しルールから除外するメソッド
  10. addYearlyRule() — 連続する複数年を繰り返しルールに指定するメソッド
  11. setTimeZone(timeZone) — 繰り返し予定のタイムゾーンを指定するメソッド

addDailyExclusion()/addDailyRule()

サンプルコード1
//addDailyExclusionとaddDailyRuleのサンプルコード
function sampleCode1() {
  var today = new Date();
  var endDate = new Date(Date.parse(today) + (60 * 60 * 24 * 1000 * 60));
  var recurrence = CalendarApp.newRecurrence()
                              .addDailyRule()
                              .until(endDate)
                              .addDailyExclusion()
                              .times(30);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', today, recurrence);
}

『 変数の説明 』

today = プログラムを実行した日付オブジェクトを代入
endDate = 実行日の60日後の日付オブジェクトを代入
recurrence = 実行日から30日間を除き、endDateの日付まで実行日から起算して60日後まで毎日繰り返される終日予定のルールを代入

addDate(date)

サンプルコード2
//addDateのサンプルコード
function sampleCode2() {
  var date = new Date();
  var targetDate = new Date(Date.parse(date) + (60 * 60 * 24 * 1000 * 5));
  var recurrence = CalendarApp.newRecurrence()
                              .addDate(targetDate);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
targetDate = 実行日の5日後の日付オブジェクトを代入
recurrence = 実行日から5日後に繰り返される終日予定のルールを代入

addDateExclusion(date)

サンプルコード3
//addDailyExclusionのサンプルコード
function sampleCode3() {
  var date = new Date();
  var targetDate = new Date(Date.parse(date) + (60 * 60 * 24 * 1000 * 3));
  var recurrence = CalendarApp.newRecurrence()
                              .addDailyRule()
                              .times(5)
                              .addDateExclusion(targetDate);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
targetDate = 実行日の3日後の日付オブジェクトを代入
recurrence = 実行日から5日間に毎日繰り返される終日予定にtargetDateに指定した日付を除外した繰り返しルールを代入

addMonthlyExclusion()/addMonthlyRule()

サンプルコード4
//addMonthlyExclusionとaddMonthlyRuleのサンプルコード
function sampleCode4() {
  var date = new Date();
  var recurrence = CalendarApp.newRecurrence()
                              .addMonthlyRule()
                              .times(5)
                              .addMonthlyExclusion()
                              .times(2);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
recurrence = 実行日から5ヶ月間に毎月繰り返される終日予定から最初の2ヶ月間を除外した繰り返しルールを代入

addWeeklyExclusion()/addWeeklyRule()

サンプルコード5
//addMonthlyExclusionとaddMonthlyRuleのサンプルコード
function sampleCode5() {
  var date = new Date();
  var recurrence = CalendarApp.newRecurrence()
                              .addWeeklyRule()
                              .times(5)
                              .addWeeklyExclusion()
                              .times(2);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
recurrence = 実行日から5週間に毎週繰り返される終日予定から最初の2週間を除外した繰り返しルールを代入

addYearlyExclusion()/addYearlyRule()

サンプルコード6
//addYearlyExclusionとaddYearlyRuleのサンプルコード
function sampleCode6() {
  var date = new Date();
  var recurrence = CalendarApp.newRecurrence()
                              .addYearlyRule()
                              .times(5)
                              .addYearlyExclusion()
                              .times(2);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
recurrence = 実行日から5年間に毎年繰り返される終日予定から最初の2年間を除外した繰り返しルールを代入

setTimeZone(timeZone)

サンプルコード7
//addMonthlyExclusionとaddMonthlyRuleのサンプルコード
function sampleCode7() {
  var date = new Date();
  var timeZone = "America/New_York";
  var recurrence = CalendarApp.newRecurrence()
                              .addMonthlyRule()
                              .times(5)
                              .addMonthlyExclusion()
                              .times(2)
                              .setTimeZone(timeZone);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('GAS Event', date, recurrence);
}

『 変数の説明 』

date = プログラムを実行した日付オブジェクトを代入
timezone = アメリカ時間をタイムゾーンに代入
recurrence = アメリカ時間で実行日から5ヶ月間に毎月繰り返される終日予定から最初の2ヶ月間を除外した繰り返しルールを代入

まとめ

今回は繰り返し予定のEventRecurrenceクラスのメソッドをご紹介しました。メソッドは自由に組み合わせて使えますので、用途に合わせて組み合わせるメソッドは選択して下さい。基本的にはメソッドを入れ替えるだけで自由に設定できますので色々と試してみましょう。

すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。

Exit mobile version