AWS EventBridge Cron Expression
AWS EventBridge uses a 6-field cron wrapped in cron(): Minutes Hours Day-of-month Month Day-of-week Year. One of the two day fields must be ?. Schedules run in UTC (EventBridge Scheduler can also use a timezone). The example runs at 9 AM UTC on weekdays.
The expression
cron(0 9 ? * MON-FRI *) fires at 09:00 UTC Monday–Friday. Fields inside cron(): Minutes Hours Day-of-month Month Day-of-week Year — note the required Year field.
The ? rule
You cannot specify both Day-of-month and Day-of-week. Put ? in the one you're not using. Here Day-of-month is ? because we set the weekday.
UTC vs timezone
Classic EventBridge rules run in UTC. EventBridge Scheduler (the newer service) accepts a ScheduleExpressionTimezone, so you can schedule in local time and it handles daylight saving.
Rate vs cron
For simple intervals use rate(5 minutes) instead of cron. Use cron() when you need specific clock times or days, like 9 AM on weekdays.
FAQ
What is the AWS EventBridge cron format?
Six fields inside cron(): Minutes Hours Day-of-month Month Day-of-week Year. One day field must be ?. Example: cron(0 9 ? * MON-FRI *) for 9 AM UTC on weekdays.
Why does EventBridge cron need a ?
You can't set both Day-of-month and Day-of-week. Put ? in the field you aren't using and the value in the other.
What timezone does EventBridge cron use?
Classic rules use UTC. EventBridge Scheduler supports a ScheduleExpressionTimezone so you can schedule in local time with daylight-saving handling.