Cron to AWS EventBridge Cron Converter
Paste a standard five-field cron line and get an EventBridge cron() expression
that actually validates — day of week renumbered, the question-mark rule applied, and
either-or schedules split into the two rules EventBridge needs.
Everything runs locally: what you type never leaves your browser.
Convert a cron expression to EventBridge
EventBridge schedule expression
cron(0 9 ? * 2-6 *)
- EventBridge rules run in UTC. Standard cron runs in the server’s local time zone, so shift the hours if they differ.
| Field | Standard cron | EventBridge |
|---|---|---|
| Minute | 0 | 0 |
| Hour | 9 | 9 |
| Day of month | * | ? |
| Month | * | * |
| Day of week | 1-5 | 2-6 |
| Year | — | * |
Next runs (UTC)
- Listed here when JavaScript is available.
AWS CLI
aws events put-rule --name weekday-9am --schedule-expression "cron(0 9 ? * 2-6 *)"
Terraform
resource "aws_cloudwatch_event_rule" "weekday_9am" {
name = "weekday-9am"
schedule_expression = "cron(0 9 ? * 2-6 *)"
}
AWS CDK (TypeScript)
new events.Rule(this, 'weekday-9am', {
schedule: events.Schedule.expression('cron(0 9 ? * 2-6 *)'),
});
What changes between the two formats
The example above is 9:00 every weekday. In standard cron that is
0 9 * * 1-5; in EventBridge it is cron(0 9 ? * 2-6 *). Three
things moved. A sixth Year field appeared. The day of week went from 1-5 to
2-6, because EventBridge counts Sunday as 1 where Linux counts it as 0. And the
day-of-month field became a question mark, because EventBridge will not accept a value in
both day fields.
The EventBridge cron day of week question mark, explained
Most people meet the EventBridge cron day of week question mark rule
through an error message. It exists because standard cron has an odd rule of its own: when
both day fields are restricted, a job runs when either matches. So
0 0 1 * 1 fires on the 1st of the month and on every Monday. EventBridge will
not express that in a single rule — so this converter produces two, and the next-run list
shows the combined schedule so you can check it is what you meant.
An AWS EventBridge cron generator for existing schedules
If you need to convert Linux cron to AWS cron, you usually already have a
working crontab and want the same schedule in the cloud, not a blank
AWS EventBridge cron generator. Paste the line exactly as it is in your
crontab, including @daily-style nicknames, and every field is validated before
it is converted, with a plain explanation when something cannot carry over.
Where these rules come from
The six-field format, the 1 = Sunday numbering and the question-mark requirement are from
AWS’s EventBridge schedule-expression reference. The either-or behaviour is standard
cron’s own, as implemented in Vixie cron: when both day fields are restricted — neither
begins with * — they are combined with OR, not AND.