Cron Expressions for AWS EventBridge Scheduler
AWS EventBridge (formerly CloudWatch Events) uses a 6-field cron syntax that adds a 'year' field. It also requires '?' in either the day-of-month or day-of-week field — you cannot specify both. All schedules run in UTC.
Common EventBridge Cron Patterns
0/5 * * * ? *Runs every 5 minutes (use 0/5 not */5 in EventBridge)
0 * * * ? *Runs at the top of every hour
0 12 * * ? *Runs every day at 12:00 UTC
0 8 ? * MON-FRI *Runs Monday through Friday at 08:00 UTC
0 0 ? * 2 *Runs every Monday at midnight UTC (2=Monday in EventBridge)
0 0 1 * ? *Runs at midnight UTC on the 1st
0 23 L * ? *Runs at 23:00 UTC on the last day of every month
0 0 1 1 ? 2027Runs once on January 1st, 2027 at midnight
AWS EventBridge Rule — Cron Schedule
# AWS CloudFormation template
Resources:
ScheduledRule:
Type: AWS::Events::Rule
Properties:
Description: "Run Lambda every day at noon UTC"
ScheduleExpression: "cron(0 12 * * ? *)"
State: ENABLED
Targets:
- Arn: !GetAtt MyFunction.Arn
Id: "TargetFunctionV1"
# Permission for EventBridge to invoke Lambda
PermissionForEventsToInvokeLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !Ref MyFunction
Action: "lambda:InvokeFunction"
Principal: "events.amazonaws.com"
SourceArn: !GetAtt ScheduledRule.ArnHow EventBridge Differs from Standard Crontab
EventBridge adds a 6th 'year' field and requires '?' for day-of-month or day-of-week. Step values use '0/n' instead of '*/n'. Day-of-week numbering starts at 1 (Sunday), not 0. The entire expression must be wrapped in 'cron(...)'.
Common Gotchas & Pitfalls
The '?' wildcard is required — use '?' for either day-of-month OR day-of-week (not both).
Use '0/5' instead of '*/5' for step values — EventBridge does not support the '*/n' syntax.
Day-of-week uses different numbering: SUN=1, MON=2, TUE=3, WED=4, THU=5, FRI=6, SAT=7 (or use 3-letter abbreviations).
The expression must be wrapped in 'cron(...)' when using the console or CloudFormation.
AWS EventBridge also supports 'rate(5 minutes)' expressions as an alternative to cron.
The year field can be a specific year (2025), a range (2025-2027), or '*' for any year.
Minimum schedule rate is 1 minute; the 'every second' frequency is not supported.
Other Platform Guides
More Cron Expression Tools
Translate, build, test, and reference cron expressions — all in one place.