AWS EventBridge Cron

Amazon's 6-field cron for EventBridge Scheduler and CloudWatch Events — adds a year field, drops compatibility with `*`-in-both-day-fields.

Overview

AWS EventBridge (and the legacy CloudWatch Events) uses a 6-field cron expression with an explicit year column. The fields are `minute hour day-of-month month day-of-week year`.

The two big surprises versus Unix: (1) one of day-of-month or day-of-week MUST be `?`, never both `*`; (2) day-of-week is 1-indexed (Sun=1).

Field Structure

Field Order6 fields: minute hour day-of-month month day-of-week year
Day-of-Week1=Sunday, 2=Monday, …, 7=Saturday. Also accepts `SUN-SAT`.

Special Characters

TokenMeaning
*Any value.
,List separator.
-Range.
/Step.
?“No specific value” — required in either DOM or DOW, but not both.
LLast (e.g. `L` in DOM = last day of month; `6L` in DOW = last Friday).
WNearest weekday (e.g. `15W` = weekday closest to the 15th).
#Nth weekday (e.g. `2#1` = first Monday).

Aliases

  • Not supported — no `@hourly` etc.

Comparison vs. Unix Cron

FeatureAWS EventBridge CronUnix Cron
Field count6 (year added)5
Seconds fieldNo (year, not seconds)No
Step syntaxYesLimited
Named months/daysYes (JAN-DEC, SUN-SAT)No
AliasesNoNo
DOW numbering1=Sun … 7=Sat0=Sun … 6=Sat
DOM vs DOWOne must be `?`OR when both restricted
`L`, `W`, `#` tokensYesNo

Examples

cron(0 12 * * ? *)Every day at 12:00 UTC.Try it →
cron(0/5 * * * ? *)Every 5 minutes.Try it →
cron(0 18 ? * MON-FRI *)6 PM UTC on weekdays.Try it →
cron(0 8 1 * ? *)First day of every month at 08:00 UTC.Try it →
cron(0 0 ? * 2#1 *)First Monday of every month at 00:00.Try it →
cron(0 22 ? * L *)10 PM on Saturday (last day of week) every week.Try it →
cron(0 0 L * ? *)Midnight on the last day of every month.Try it →

Gotchas & Pitfalls

  • Expressions go inside `cron( … )` in the EventBridge API, but the inner pattern is what you pass to cron parsers.
  • Times are evaluated in UTC unless the EventBridge Scheduler timezone field is set.
  • EventBridge does NOT use seconds — the extra field versus Unix cron is `year`, not `seconds`.
  • One of DOM or DOW must be `?`. `* * * * * *` is invalid.

References

Free cron syntax cheat sheet

© 2026 Abel Solutions LLC. All rights reserved. · More from Abel Solutions: RegexPro — test and debug regular expressions