Skip to main content

Interface: IScheduleSpec


Properties of a ScheduleSpec.

Implemented by



Optional calendar: null | ICalendarSpec[]

Calendar-based specifications of times.


Optional cronString: null | string[]

cron_string holds a traditional cron specification as a string. It accepts 5, 6, or 7 fields, separated by spaces, and interprets them the same way as CalendarSpec. 5 fields: minute, hour, day_of_month, month, day_of_week 6 fields: minute, hour, day_of_month, month, day_of_week, year 7 fields: second, minute, hour, day_of_month, month, day_of_week, year If year is not given, it defaults to *. If second is not given, it defaults to 0. Shorthands @yearly, @monthly, @weekly, @daily, and @hourly are also accepted instead of the 5-7 time fields. Optionally, the string can be preceded by CRON_TZ=<timezone name> or TZ=<timezone name>, which will get copied to timezone_name. (There must not also be a timezone_name present.) Optionally "#" followed by a comment can appear at the end of the string. Note that the special case that some cron implementations have for treating day_of_month and day_of_week as "or" instead of "and" when both are set is not implemented. @every <interval>[/<phase>] is accepted and gets compiled into an IntervalSpec instead. <interval> and <phase> should be a decimal integer with a unit suffix s, m, h, or d.


Optional endTime: null | ITimestamp

If end_time is set, any timestamps after end_time will be skipped.


Optional excludeCalendar: null | ICalendarSpec[]

Any timestamps matching any of exclude_* will be skipped.


Optional excludeStructuredCalendar: null | IStructuredCalendarSpec[]

ScheduleSpec excludeStructuredCalendar


Optional interval: null | IIntervalSpec[]

Interval-based specifications of times.


Optional jitter: null | IDuration

All timestamps will be incremented by a random value from 0 to this amount of jitter. Default: 0


Optional startTime: null | ITimestamp

If start_time is set, any timestamps before start_time will be skipped. (Together, start_time and end_time make an inclusive interval.)


Optional structuredCalendar: null | IStructuredCalendarSpec[]

Calendar-based specifications of times.


Optional timezoneData: null | Uint8Array

ScheduleSpec timezoneData


Optional timezoneName: null | string

Time zone to interpret all calendar-based specs in.

If unset, defaults to UTC. We recommend using UTC for your application if at all possible, to avoid various surprising properties of time zones.

Time zones may be provided by name, corresponding to names in the IANA time zone database (see The definition will be loaded by the Temporal server from the environment it runs in.

If your application requires more control over the time zone definition used, it may pass in a complete definition in the form of a TZif file from the time zone database. If present, this will be used instead of loading anything from the environment. You are then responsible for updating timezone_data when the definition changes.

Calendar spec matching is based on literal matching of the clock time with no special handling of DST: if you write a calendar spec that fires at 2:30am and specify a time zone that follows DST, that action will not be triggered on the day that has no 2:30am. Similarly, an action that fires at 1:30am will be triggered twice on the day that has two 1:30s.

Also note that no actions are taken on leap-seconds (e.g. 23:59:60 UTC).