Skip to content

Commit 07005c1

Browse files
feat(schedule): add repeated rrule to ScheduleSpec (RFC 5545)
Union with calendar, cron, and interval. DTSTART uses start_time or epoch in zone. Related: temporalio/temporal#10058 Made-with: Cursor
1 parent 01e1cde commit 07005c1

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

temporal/api/schedule/v1/message.proto

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ message IntervalSpec {
128128
// ScheduleSpec, use UTC or include timezone_data.
129129
//
130130
// For input, you can provide zero or more of: structured_calendar, calendar,
131-
// cron_string, interval, and exclude_structured_calendar, and all of them will
131+
// cron_string, interval, rrule, and exclude_structured_calendar, and all of them will
132132
// be used (the schedule will take action at the union of all of their times,
133133
// minus the ones that match exclude_structured_calendar).
134134
//
@@ -203,6 +203,12 @@ message ScheduleSpec {
203203
// Also note that no actions are taken on leap-seconds (e.g. 23:59:60 UTC).
204204
string timezone_name = 10;
205205
bytes timezone_data = 11;
206+
// RFC 5545 RRULE line bodies without the "RRULE:" prefix, e.g.
207+
// "FREQ=DAILY;INTERVAL=1" or "FREQ=WEEKLY;BYDAY=MO,WE". DTSTART is taken from
208+
// start_time if set, otherwise the Unix epoch in the schedule time zone. Times
209+
// are interpreted in timezone_name when set, or UTC. Union with other fields:
210+
// the next action time is the minimum over calendar, interval, and rrule sources.
211+
repeated string rrule = 12;
206212
}
207213

208214
message SchedulePolicies {

0 commit comments

Comments
 (0)