AWS cron, rate and at expressions explained
Amazon EventBridge rules and EventBridge Scheduler both take a schedule expression. There are three kinds:
cron(minutes hours day-of-month month day-of-week year)— run at clock times, for examplecron(0 9 ? * MON-FRI *)for 09:00 on weekdays.rate(value unit)— run every N minutes, hours or days, for examplerate(15 minutes). Use the singular unit for 1:rate(1 hour).at(yyyy-mm-ddThh:mm:ss)— a single run (EventBridge Scheduler only).
How AWS cron differs from Linux cron
- Six fields, not five — the last one is the year (1970–2199). Use
*for every year. - Either day-of-month or day-of-week must be
?. You cannot set both. - Days of the week are 1–7 starting on Sunday (or SUN–SAT). Linux uses 0–6.
- Extra symbols:
L(last day of the month, or6Lfor the last Friday),W(nearest weekday, e.g.15W) and#(nth weekday, e.g.2#1for the first Monday).
Time zones
EventBridge rules always run in UTC. EventBridge Scheduler accepts an IANA time zone (for example Asia/Kolkata) through ScheduleExpressionTimezone and follows daylight saving time. A time that doesn't exist on a daylight-saving change day (such as 02:30 when clocks jump forward) is flagged in the run list so you can decide how your job should behave. Scheduler invokes targets within the minute you set, unless you give it a flexible time window.