AWS EventBridge Cron Expression Guide — Schedule Lambda and Events
Table of Contents
AWS EventBridge Scheduler (formerly CloudWatch Events) uses a cron format that's similar to standard cron — but with two key differences: a 6th field for year, and the ? character required in either day-of-month or day-of-week. Our free cron generator builds standard 5-field expressions that you can convert to AWS format using the patterns below.
AWS EventBridge Cron Format
AWS cron expressions have 6 fields:
cron(minutes hours day-of-month month day-of-week year)
Example: cron(0 9 ? * MON-FRI *) runs at 9 AM UTC on weekdays every year.
Key differences from standard Unix cron:
- Year field: Appended as the 6th field. Use
*for "every year" - Question mark (?): Required in either day-of-month or day-of-week when you specify the other. Cannot specify both.
- Starts at minute, not second: Unlike Quartz, AWS cron starts with minutes (same as standard cron). The year field is added at the end.
- Day of week: AWS uses 1=Sunday through 7=Saturday (Quartz-style), unlike Unix cron's 0=Sunday through 6=Saturday.
Common AWS EventBridge Cron Expressions
| Schedule | AWS Cron Expression |
|---|---|
| Every minute | cron(* * * * ? *) |
| Every 5 minutes | cron(0/5 * * * ? *) |
| Every hour | cron(0 * * * ? *) |
| Daily at midnight UTC | cron(0 0 * * ? *) |
| Daily at 9 AM UTC | cron(0 9 * * ? *) |
| Weekdays at 9 AM UTC | cron(0 9 ? * MON-FRI *) |
| First of month midnight | cron(0 0 1 * ? *) |
| Last day of month | cron(0 0 L * ? *) |
| Weekly Sunday midnight | cron(0 0 ? * SUN *) |
AWS Rate Expressions — Simpler Alternative to Cron
For simple intervals (every N minutes, hours, or days), AWS EventBridge also accepts rate expressions — much simpler than cron syntax:
rate(5 minutes) # Every 5 minutes rate(1 hour) # Every hour rate(24 hours) # Every 24 hours rate(7 days) # Every 7 days
Use rate expressions when you need a fixed interval without concern for exact clock time. Use cron expressions when you need to run at a specific time of day (like 9 AM) or on specific days (like weekdays or the 1st of the month).
Converting Standard Cron to AWS EventBridge Format
To convert a standard 5-field cron expression to AWS format:
- Take your standard expression:
0 9 * * 1-5 - Replace
*in the day-of-month field with?since day-of-week is specified:0 9 ? * 1-5 - Add a year field at the end:
0 9 ? * MON-FRI * - Wrap in
cron():cron(0 9 ? * MON-FRI *)
AWS uses day-of-week names (MON, TUE, WED, THU, FRI, SAT, SUN) rather than numbers, which actually makes the expressions more readable. Numbers also work: AWS uses 1-7 where 1=Sunday.
All AWS EventBridge cron jobs run in UTC. There's no timezone parameter — you need to calculate the UTC equivalent of your desired local time.
Try It Free — No Signup Required
Runs 100% in your browser. No account, no install, no limits.
Open Free Cron GeneratorFrequently Asked Questions
Does AWS EventBridge cron use UTC?
Yes, all AWS EventBridge scheduled rules run in UTC. There is no timezone parameter. To run a Lambda at 9 AM Eastern, schedule it at 14:00 UTC in winter (EST) and 13:00 UTC in summer (EDT).
Why does AWS cron require a question mark (?)?
AWS cron requires ? in either day-of-month or day-of-week to avoid ambiguity when specifying both fields. If you specify weekdays (like MON-FRI), day-of-month must be ? If you specify a specific date (like 1 for the 1st), day-of-week must be ?.
What is the difference between AWS rate() and cron() expressions?
Rate expressions (rate(5 minutes), rate(1 hour)) specify a fixed interval between runs. Cron expressions (cron(0 9 ? * MON-FRI *)) specify exact times. Use rate for simple intervals, cron for time-of-day or day-of-week specific scheduling.

