![見出し画像](https://assets.st-note.com/production/uploads/images/85430188/rectangle_large_type_2_054babfb864b8abbaa70a45a99fa0d4f.png?width=800)
【GoogleAppsScript】特定の日付を除外するルールを追加【addDateExclusion(date) 】
イベントを毎日繰り返す処理を行います。
今回のプログラム
![](https://assets.st-note.com/img/1661383553494-J7OpJFOzy9.png?width=800)
プログラム説明
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日後は除外設定をしたということで、設定されていません。
これをつかえば、例えば土日は予定を入れないなどに使えます。
![](https://assets.st-note.com/img/1661383661772-0QXJffeYao.png?width=800)
注意
実行時に「権限ポップアップ」が出る場合はこちらを参照してください。
もっとGoogleAppsScriptを学びたい人はこの一冊!
#GoogleAppsScript #JavaScript #プログラミング #プログラミング初心者 #JavaScript初心者
この記事が気に入ったらサポートをしてみませんか?