AWS EventBridge Scheduler Expression Builder
Build and validate AWS EventBridge Scheduler schedule expressions — cron(), rate(), and at() — with correct field constraints, a human-readable description, and next run times in UTC. All times are UTC; timezone is a schedule-resource attribute, not part of the expression.
EventBridge Scheduler, not EventBridge Rules
AWS has two scheduling services. This tool targets EventBridge Scheduler (console: Amazon EventBridge > Scheduler; Terraform: aws_scheduler_schedule). Search results for "EventBridge cron" frequently surface documentation for the older EventBridge Rules service, which uses a similar but distinct syntax and does not support at() expressions. See the FAQ for details.
Examples
Day of Month
Day of Week
? (no specific value). Selecting a specific day of month forces day-of-week to ?, and vice versa. Both * or both specific values are invalid in EventBridge.Unit
The datetime is treated as UTC. EventBridge requires the time to be in the future.
Generated expression
Next run times (UTC)
No upcoming run times found within the search window.
Frequently Asked Questions
Why does my cron expression work in Linux cron but get rejected by EventBridge Scheduler?
Standard unix cron uses five fields: minute, hour, day-of-month, month, and day-of-week. EventBridge Scheduler uses six fields — the same five plus a year field. If you paste a five-field expression into EventBridge, it will fail validation. You also cannot use * for both day-of-month and day-of-week simultaneously — EventBridge requires exactly one of those two fields to be ? (meaning "no specific value"), and the other can be * or a concrete value. This constraint does not exist in standard cron.
What is the difference between EventBridge Scheduler and EventBridge Rules?
AWS has two distinct scheduling mechanisms. EventBridge Rules (sometimes called "EventBridge event bus rules") is the older service accessed via the EventBridge console under Rules. EventBridge Scheduler is the newer standalone service accessed under Scheduler in the same console. Both support cron-style expressions with six fields, but EventBridge Scheduler additionally supports at() expressions for one-time schedules and has a different Terraform resource (aws_scheduler_schedule vs aws_cloudwatch_event_rule) and SDK client. Documentation for the two services is frequently mixed in search results. This tool targets EventBridge Scheduler exclusively.
Why does my day-of-week setting get ignored?
EventBridge Scheduler enforces that exactly one of day-of-month and day-of-week must be ?. If you specify a value for day-of-week, day-of-month must be ?, not *. If both fields contain values (or both are *), EventBridge will either reject the expression or ignore one of the fields. This builder enforces the rule automatically: selecting a specific day of week sets day-of-month to *, and selecting a specific day of month sets day-of-week to ?.
What timezone do EventBridge Scheduler cron and rate expressions use?
All EventBridge Scheduler schedule expressions are interpreted as UTC. There is no timezone field inside the expression itself. If you need schedules in a local timezone, set the timezone at the schedule resource level — EventBridge Scheduler supports a timezone attribute on the schedule, separate from the expression. The expression itself always describes a UTC schedule regardless of that attribute.
How does the rate() unit pluralization work, and why does rate(1 minutes) fail?
EventBridge Scheduler requires the unit word to be singular when the value is exactly 1 and plural otherwise. Valid units are minute/minutes, hour/hours, and day/days. Writing rate(1 minutes) is invalid and will be rejected. The correct forms are rate(1 minute), rate(2 minutes), rate(1 hour), rate(6 hours), rate(1 day), and rate(30 days). This tool handles pluralization automatically.
