メインコンテンツにスキップ

Googleカレンダーの繰り返し予定を設定するルールについて

Misaki Tominaga avatar
対応者:Misaki Tominaga
一週間前以上前にアップデートされました

概要

Yoomでは、Googleカレンダーと連携することで様々なアクションを実行することができます。

今回はGoogleカレンダーの繰り返し予定を作成するアクション内にある繰り返しルール(RFC5545 準拠のRRULE)について、例を交えて説明します。

RFC5545 準拠のRRULEとは

RFC5545 準拠のRRULEとは以下のようなルールを指します。

  • RFC5545:インターネット上でカレンダーイベントやスケジュール情報をやり取りするための標準仕様

  • RRULE:その中でも特に「繰り返しイベント」を定義するためのフォーマット

このルールを用いることで、Googleカレンダーに繰り返し予定を作成することが可能です。

なお、繰り返し予定の設定が可能なアクションは以下赤枠のアクションとなっており、

繰り返しのルールという項目に対してRFC5545 準拠のRRULEを設定します。



ルールの記述形式

ルールの記述形式は以下のようになります。

FREQ=<freq>;[UNTIL=<end>|;COUNT=<count>][;INTERVAL=<interval>]

FREQ=<freq>:この箇所は繰り返し頻度を表します。

セミコロン(;)以降:ルールの詳細を決める各パラメータを表します。

繰り返し頻度は以下のいずれかを設定します。

SECONDLY

毎秒

MINUTELY

毎分

HOURLY

毎時

DAILY

毎日

WEEKLY

毎週

MONTHLY

毎月

YEARLY

毎年

以降のパラメータには以下のような種類があります。

パラメータ

説明

UNTIL

繰り返しを いつまで 続けるかを指定する終了日時。 COUNT と排他で、どちらか一方のみ指定可能。 FREQ=WEEKLY;UNTIL=20250601T000000Z のように UTC 日時で指定する例が多い。

UNTIL=20250601T000000Z (2025年6月1日 00:00 UTC まで繰り返し)

COUNT

繰り返し回数(出現数)を 何回 に制限するかを指定。 UNTIL と排他で、どちらか一方のみ使用。

COUNT=10 (合計10回繰り返す)

WKST

週の開始曜日(Week Start)。デフォルトは MO(月曜日)。 FREQ=WEEKLY 時や BYDAY と組み合わせる際に週の切り替え基準を指定する。

WKST=SU (週の始まりを日曜に)

BYSECOND

「何秒目」で発生するか。0〜59 の範囲で、複数はカンマ区切りで列挙。FREQ=SECONDLYFREQ=MINUTELY などと組み合わせる。

BYSECOND=0,15,30,45 (毎分 0秒,15秒,30秒,45秒)

BYMINUTE

「何分目」で発生するか。0〜59 の範囲で、複数はカンマ区切り。FREQ=HOURLYFREQ=DAILY などと組み合わせる。

BYMINUTE=0,30 (毎時 0分と 30分)

BYHOUR

「何時」に発生するか。0〜23 の範囲で、複数はカンマ区切り。

BYHOUR=9,18 (毎日 9時と 18時)

BYDAY

「どの曜日」に発生するか。 MO, TU, WE, TH, FR, SA, SU のいずれかをカンマ区切りで。 さらに 1MO, -1FR のように「第1月曜」「最終金曜」の指定も可能。

BYDAY=TH (毎週木曜) BYDAY=1MO (毎月第1月曜)

BYMONTHDAY

「月の何日」に発生するか。 1〜31 または -1〜-31(末日基準)で指定し、複数はカンマ区切り。

BYMONTHDAY=10,15 (毎月10日と15日) BYMONTHDAY=-1 (毎月末日)

BYYEARDAY

「年の通算何日目」に発生するか。 1〜366 または -1〜-366。 FREQ=YEARLY で使用可能。

BYYEARDAY=100 (毎年通算100日目)

BYWEEKNO

「年の第何週」で発生するか。 1〜53 または -1〜-53。 FREQ=YEARLY などで使用。

BYWEEKNO=20 (毎年 第20週)

BYMONTH

「何月」に発生するか。 1〜12 の範囲で、複数はカンマ区切り。

BYMONTH=3,9 (毎年3月と9月に)

BYSETPOS

他の BY* パラメータで生成された候補のうち、何番目の要素を用いるか。 ±1〜±366 の範囲で指定可能。 たとえば「毎月の平日(BYDAY=MO,TU,WE,TH,FR)の中で2番目だけ」など。

BYDAY=MO,TU,WE,TH,FR;BYSETPOS=2 (毎月平日のうち2番目のみ)

※UNTILとCOUNTは併用不可です。

ルールの記述例

以下ではいくつかルールの記述例を説明します。

こちらを参考にし、必要に応じてカスタマイズしてください。

概要

ルール

解説

毎日10回繰り返す

FREQ=DAILY;COUNT=10

毎日 (FREQ=DAILY) 繰り返し、合計10回 (COUNT=10) で終了します。

毎日2025年12月31日まで

FREQ=DAILY;UNTIL=20251231T235959Z

毎日繰り返し (FREQ=DAILY)、2025年12月31日23:59:59 UTC (UNTIL) まで続きます。

2日おきに繰り返す

FREQ=DAILY;INTERVAL=2

毎日繰り返しだが、INTERVAL=2 により「2日に1回」のペースになります。

毎週月曜日に無期限で繰り返す

FREQ=WEEKLY;BYDAY=MO

毎週 (FREQ=WEEKLY)、曜日は MO(月曜)のみ (BYDAY=MO) です。

毎週月・水曜日に繰り返す

FREQ=WEEKLY;BYDAY=MO,WE

毎週のうち MOWE(月・水)だけに繰り返します。

毎週、平日(MO, TU, WE, TH, FR)のみ繰り返す

FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR

毎週 (FREQ=WEEKLY) かつ平日のみ (BYDAY=MO,TU,WE,TH,FR) 繰り返します。

2週間おきの月曜日

FREQ=WEEKLY;INTERVAL=2;BYDAY=MO

「隔週月曜日」にあたる設定。INTERVAL=2 が「2週間おき」を意味します。

毎月15日に合計6回だけ

FREQ=MONTHLY;COUNT=6;BYMONTHDAY=15

毎月 (FREQ=MONTHLY) の15日 (BYMONTHDAY=15) を合計6回 (COUNT=6) 繰り返します。

毎月最終日に繰り返す

FREQ=MONTHLY;BYMONTHDAY=-1

毎月 (FREQ=MONTHLY) で -1 は「最終日」を意味します。

毎月15日と最終日に繰り返す

FREQ=MONTHLY;BYMONTHDAY=15,-1

BYMONTHDAY に複数指定(15, -1)をすることで「15日 & 最終日」の2回を毎月繰り返します。

毎月の第1月曜日

FREQ=MONTHLY;BYDAY=1MO

BYDAY=1MO は「第1月曜日」を示す指定です。

毎月の第2日曜日

FREQ=MONTHLY;BYDAY=2SU

「第2日曜日」を示す設定。1月に限らず毎月繰り返します。

毎年3月10日に繰り返す

FREQ=YEARLY;BYMONTH=3;BYMONTHDAY=10

毎年 (FREQ=YEARLY) の 3月 (BYMONTH=3) 10日 (BYMONTHDAY=10) に繰り返します。

毎年3/10・6/15・12/31に繰り返す

FREQ=YEARLY;BYMONTH=3,6,12;BYMONTHDAY=10,15,31

BYMONTHBYMONTHDAY を組み合わせて複数の月日を指定しています。

毎年大晦日(最終日)に繰り返す

FREQ=YEARLY;BYMONTHDAY=-1;BYMONTH=12

12月の「-1日」は12月31日を示すため、毎年大晦日に繰り返す設定です。

毎年5月1日を2028年まで

FREQ=YEARLY;UNTIL=20280501T000000Z;BYMONTH=5;BYMONTHDAY=1

毎年5/1 (BYMONTH=5;BYMONTHDAY=1) を UNTIL=20280501T000000Z まで繰り返します。

毎年通算100日目に繰り返す

FREQ=YEARLY;BYYEARDAY=100

1月1日から数えて100日目(4月上旬頃)に繰り返します。うるう年の場合はずれます。

毎週月曜日を2か月間だけ

FREQ=WEEKLY;UNTIL=2025XXXXT000000Z;BYDAY=MO

「2か月間」など日付範囲を UNTIL で区切るイメージ。例:UNTIL=20250701T000000Z などで2か月後までに設定。

毎週平日だけ、回数制限なし

FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR

すでに例6と似ていますが、BYDAY のみで平日指定。回数や終了を指定しない限り、無期限に繰り返します。

1時間おきに5回だけ

FREQ=HOURLY;COUNT=5

FREQ=HOURLY が毎時、COUNT=5 で合計5回の発生となります。

毎月第2月曜日と第4月曜日

FREQ=MONTHLY;BYDAY=2MO,4MO

BYDAY=2MO,4MO で「第2月曜」と「第4月曜」のみ発生します。

毎月最終金曜日

FREQ=MONTHLY;BYDAY=-1FR

BYDAY=-1FR で「最終金曜日」を指定します。

毎年の最終月曜日

FREQ=YEARLY;BYDAY=-1MO

「年の最終月曜日」は12月最終週の月曜日になります。

毎週を6か月間続ける

FREQ=WEEKLY;UNTIL=2025XXXXT000000Z

6か月後の日付を UNTIL に設定し、そこまで毎週繰り返すイメージです。

毎月「平日のうち最初の1日」(第1平日)

FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1

BYDAY=MO,TU,WE,TH,FR で平日を対象とし、BYSETPOS=1 で「最初の平日」のみを抽出します。

毎年5月の第3日曜日

FREQ=YEARLY;BYMONTH=5;BYDAY=3SU

BYMONTH=5 で5月限定、BYDAY=3SU で「第3日曜」を指定。

毎月1日・10日・20日に繰り返す

FREQ=MONTHLY;BYMONTHDAY=1,10,20

BYMONTHDAY に複数値を指定すると、1か月に複数回発生させることが可能です。

毎週、2025年12月31日まで

FREQ=WEEKLY;UNTIL=20251231T235959Z

毎週 (FREQ=WEEKLY) 繰り返し、年末 (UNTIL=20251231T235959Z) までで終了します。

1日に2回(9時 & 15時)を10日間繰り返す

FREQ=DAILY;COUNT=10;BYHOUR=9,15

毎日 (FREQ=DAILY) のうち BYHOUR=9,15 で9時&15時に発生し、それを COUNT=10 回繰り返します。

毎月「月末から2番目」の日

FREQ=MONTHLY;BYMONTHDAY=-2

BYMONTHDAY=-2 は「月末から数えて2日目」を示します。

以上が、Googleカレンダーの繰り返し予定を設定するルールについてです。

# Googleカレンダー, 繰り返し,ルール

こちらの回答で解決しましたか?