AWS EventBridge

AWS EventBridge Schedule Expression Builder

Build rate() and cron() schedule expressions for AWS EventBridge. EventBridge uses a 6-field cron (adds year field) with different day-of-week numbering and a mandatory ? constraint.

At 02:00 AM

Valid

Next 10 executions

  1. 1Thu, Apr 9, 2026, 2:00 AM
  2. 2Fri, Apr 10, 2026, 2:00 AM
  3. 3Sat, Apr 11, 2026, 2:00 AM
  4. 4Sun, Apr 12, 2026, 2:00 AM
  5. 5Mon, Apr 13, 2026, 2:00 AM
  6. 6Tue, Apr 14, 2026, 2:00 AM
  7. 7Wed, Apr 15, 2026, 2:00 AM
  8. 8Thu, Apr 16, 2026, 2:00 AM
  9. 9Fri, Apr 17, 2026, 2:00 AM
  10. 10Sat, Apr 18, 2026, 2:00 AM
Use in AWS EventBridge
ScheduleExpression: "cron(0 2 * * ? *)"

EventBridge Expression Formats

rate() — Simple intervals

ExpressionMeaning
rate(1 minute)Every minute
rate(5 minutes)Every 5 minutes
rate(1 hour)Every hour
rate(1 day)Every 24 hours

cron() — Complex schedules (6 fields)

ExpressionMeaning
cron(0 2 * * ? *)Daily at 2:00 AM UTC (dom=*, dow=?)
cron(0 9 ? * MON-FRI *)Weekdays at 9:00 AM UTC (dom=?, weekdays)
cron(0 0 1 * ? *)1st of every month at midnight
cron(15 10 ? * 6L 2025-2030)10:15 AM last Friday, 2025–2030

EventBridge cron() Field Reference

FieldValuesNotes
Minutes0–59, - * /
Hours0–23, - * /
Day-of-month1–31 or ?Supports L (last), W (nearest weekday)
Month1–12 or JAN–DEC, - * /
Day-of-week1–7 or SUN–SAT1=Sun, 7=Sat (not Unix 0–6). Supports L, #
Year1970–2199Required field. Use * for "every year"

Key rule: Exactly one of day-of-month or day-of-week must be ? — you cannot leave both as *.

AWS EventBridge Schedule FAQ

Why does AWS reject my cron expression with a "Field DayOfMonth and DayOfWeek cannot both be specified" error?
AWS EventBridge cron cannot evaluate both day-of-month and day-of-week at the same time. Exactly one must be set to ? (meaning "don't care"). cron(0 9 * * MON-FRI *) is invalid; the correct form is cron(0 9 ? * MON-FRI *) (dom=?, specify weekdays). Or cron(0 2 15 * ? *) (dom=15, dow=?). Both cannot be * simultaneously.
How is AWS EventBridge day-of-week numbering different from Unix cron?
In AWS EventBridge, day-of-week is 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday. In standard Unix cron, 0=Sunday, 6=Saturday. You can also use three-letter abbreviations (SUN–SAT) in EventBridge — these are unambiguous and recommended. Example: cron(0 9 ? * MON-FRI *) rather than cron(0 9 ? * 2-6 *).
What is the difference between rate() and cron() in AWS EventBridge?
rate(N unit) fires on a fixed interval since the rule was enabled — e.g. rate(5 minutes) fires every 5 minutes from creation time. cron() fires at specific calendar times regardless of when the rule was created. Use rate() for simple polling intervals; use cron() when the time of day or day of week matters.
Do I need to include the year field in every EventBridge cron expression?
Yes. EventBridge cron requires all 6 fields: minute hour day-of-month month day-of-week year. Use * for the year field to mean "every year" — e.g. cron(0 2 * * ? *). You can also specify a year range to schedule a one-time or time-bounded rule: cron(0 9 ? * MON 2026-2027).
What is the minimum EventBridge schedule frequency?
AWS EventBridge supports a minimum of 1 minute using rate(1 minute). Sub-minute scheduling is not supported in standard EventBridge rules. If you need sub-minute precision, consider Lambda with a 1-minute trigger that checks elapsed time, or AWS EventBridge Scheduler with flexible time windows.