【コピペで使える】GASで繰返し予定のルールを設定してみる

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

繰り返しルールを設定する— setRecurrence()

今回のメソッドは、繰り返し予定に対して繰り返しルールを設定するためのメソッドを紹介します。

繰り返し予定に対しては、繰り返しルールの設定及び再設定をするためのメソッドが用意されています。それが今回ご紹介するsetRecurrence()になります。繰り返しのルールを作るためには、こちらの記事で説明しているやり方に沿ってルール作りをします。

        1. setRecurrence(recurrence, startDate)
        2. setRecurrence(recurrence, startTime, endTime)

『 引数に入れる値 』

  • recurrence(EventRecurrence) — 繰り返しルールを指定
  • startDate(日付オブジェクト) — 開始日を指定
  • startTime(日付オブジェクト) — 開始日時を指定
  • endTime(日付オブジェクト) — 終了日時を指定

setRecurrence(recurrence, startDate)

サンプルコード1
//繰り返しの終日予定ルールを設定するコード
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)

サンプルコード2
//繰り返しの時間指定(終日予定ではない)予定ルールを設定するコード
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は時間指定の繰り返し予定を作成するために使われます。用途に合わせて使い分けて下さい。

まとめ

今回は繰り返し予定のルール設定をプログラム的に行う方法について説明しました。繰り返しルールの設定はかなりややこしいので、解説ページを確認しながら使い方を身に着けてしまいましょう。

icon_for_CalendarApp_setRecurrence

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

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

この記事を書いた人

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

コメント

コメントする

目次
トップへ
目次
閉じる