Free AWS EventBridge cron validator — test and debug 6-field AWS cron expressions online. Supports cron(0/5 * * * ? *), cron(0 12 ? * MON-FRI *), rate(5 minutes) syntax. Get instant fix suggestions for common errors (missing ?, wrong field count, invalid ranges). Preview next 10 execution times in UTC. Covers EventBridge Scheduler, CloudWatch Events, and Lambda scheduled events.
AWS EventBridge (formerly CloudWatch Events) uses 6-field cron expressions: cron(minute hour day-of-month month day-of-week year). Unlike Unix cron (5 fields) and Quartz (7 fields), AWS requires one of day-of-month or day-of-week to be "?" (no specific value). The year field is required — use "*" for every year. Common mistake: using Unix-style */5 * * * * instead of AWS-style cron(0/5 * * * ? *). This validator catches that and suggests the fix.
AWS EventBridge uses cron(minute hour day-of-month month day-of-week year) — 6 fields wrapped in cron(). One of day-of-month or day-of-week must be "?" (no specific value). The year field is required. Example: cron(0 9 ? * MON-FRI *) runs at 9 AM UTC on weekdays.
AWS EventBridge requires that day-of-month and day-of-week cannot both be specific values. One must be "?" (no specific value). This avoids ambiguity when both fields could match different schedules. If both are specified, the expression is invalid.
Add the year field at position 6 (use "*" for every year), wrap in cron(), and replace one of day-of-month or day-of-week with "?". Unix */5 * * * * becomes AWS cron(0/5 * * * ? *). Unix 0 9 * * 1-5 becomes AWS cron(0 9 ? * MON-FRI *). Use this validator to verify your conversion.
Yes. AWS EventBridge also supports rate(N unit) expressions as an alternative to cron. Examples: rate(5 minutes), rate(1 hour), rate(1 day). Rate expressions are simpler for fixed intervals but cannot express "every Monday at 9 AM" — use cron for that.
AWS EventBridge evaluates cron expressions in UTC by default. For EventBridge Scheduler (newer service), you can specify a timezone. Always verify your UTC offset — 0 14 * * ? * fires at 2 PM UTC, which may not be 2 PM in your local time.
Most common: (1) missing ? in day-of-month or day-of-week field, (2) using 5 fields instead of 6, (3) forgetting to wrap in cron(), (4) specifying both day-of-month and day-of-week as specific values, (5) using Unix day-of-week range without quotes (AWS supports MON-FRI but in some regions needs numeric 2-6).