見出し画像

【GoogleAppsScript】特定の日付を除外するルールを追加【addDateExclusion(date) 】

イベントを毎日繰り返す処理を行います。

今回のプログラム

プログラム説明

var today = new Date();

本日日付、こちらは引数のスタート日を「today」変数に代入します。

var targetDate = new Date(Date.parse(today) + (60 * 60 * 24 * 1000 * 3));

本日の日付から時間(60秒60分24時間*3日)を設定し「targetDate」変数に代入します。こちらが除外条件となります。

var recurrence = CalendarApp.newRecurrence();

新しいイベントルールを作成し、recurrence変数に代入します。

var rrule = recurrence.addDailyRule();

除外ルールを作成します。addDailyRuleでデイリーの除外ルールを「rrule」変数に代入します。

var rdata = rrule.times(7);

「rrule」変数に、7日分、終日イベントを作成します。

var tdate = rdata.addDateExclusion(targetDate);

除外条件、addDateExclusionメソッドで追加しtdate変数にいれます。

CalendarApp.getDefaultCalendar()
.createAllDayEventSeries('予定作成', today, tdate);

最後にCalendarApp.getDefaultCalendar()で
予定を作成します。
createAllDayEventSeriesは、引数1つ目には予定名
2つ目は、イベントスタート日(イベント設定日)、3つ目は除外条件、繰り返し条件を設定します。

サンプルプログラム

function myFunction() {
  var today = new Date();
  var targetDate = new Date(Date.parse(today) + (60 * 60 * 24 * 1000 * 3));
  var recurrence = CalendarApp.newRecurrence();
  var rrule = recurrence.addDailyRule();
  var rdata = rrule.times(7);
  var tdate = rdata.addDateExclusion(targetDate);
  CalendarApp.getDefaultCalendar()
             .createAllDayEventSeries('毎日予定', today, tdate);
}

プログラム実行前

特になし

プログラム実行後

カレンダーに7日分のスケジュールが設定されますが
3日後は除外設定をしたということで、設定されていません。

これをつかえば、例えば土日は予定を入れないなどに使えます。

3日後だけ除外設定されています

注意

実行時に「権限ポップアップ」が出る場合はこちらを参照してください。


もっとGoogleAppsScriptを学びたい人はこの一冊!

#GoogleAppsScript #JavaScript #プログラミング #プログラミング初心者 #JavaScript初心者

この記事が気に入ったらサポートをしてみませんか?