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

icon_for_CalendarApp_ EventRecurrence
URLをコピーする
URLをコピーしました!
目次

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クラスのメソッドをご紹介しました。メソッドは自由に組み合わせて使えますので、用途に合わせて組み合わせるメソッドは選択して下さい。基本的にはメソッドを入れ替えるだけで自由に設定できますので色々と試してみましょう。

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

icon_for_CalendarApp_ EventRecurrence

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初心者でもわかるGoogle Apps Script活用のススメの管理人。
業務でラクをするという邪な目的のためにプログラムを独学で勉強し始め、初心者向けのGoogle Apps Scriptの使い方サイトを運営するに至る。
ラクをするためにはどんな苦労も厭わないという考えから、手っ取り早くスキルアップするためにCrowdWorksやLancersなどで仕事を受注し始め、過去にはTopClass PRO Crowd workerに認定された経験を持つ。
現在では、業務効率化システムの開発を行う会社の代表を務める。

コメント

コメント一覧 (4件)

コメントする

目次
トップへ
目次
閉じる