Developer

Encoders, converters & dev utilities

12 tools
Developer · Cron Expression Generator & Explainer

AWS Cron Expression Generator (EventBridge / cron())

Build and explain AWS EventBridge (formerly CloudWatch Events) cron expressions — the cron() schedule format used for scheduled rules, ECS tasks, and Lambda triggers. AWS uses six fields — cron(minute hour day-of-month month day-of-week year) — with no seconds field but a required year field, and like Quartz it requires a ? in one of the two day fields. Two things trip people up: EventBridge always runs in UTC (not your local timezone), and you cannot use * in both day fields at once. Worked example: cron(0 9 ? * MON-FRI *) means "09:00 UTC, Monday through Friday". The tool generates the exact cron() form and previews next runs in UTC so the schedule never lies about when it fires. Free, no login, 100% client-side.

Quick answer

AWS EventBridge cron() = 6 fields: cron(minute hour day-of-month month day-of-week year) — no seconds, year required

  • Worked example: cron(0 9 ? * MON-FRI *) = "at 09:00 UTC, Monday through Friday"
  • EventBridge always runs in UTC — not your local timezone (the classic gotcha); the preview is shown in UTC
  • A ? is required in one of day-of-month / day-of-week; you cannot use * in both at once
  • Next-run preview in UTC so the schedule never lies about when it fires; 100% client-side
Open the full Cron Expression Generator & Explainer

Frequently asked questions

What is the AWS EventBridge cron format?

AWS uses a six-field cron() expression: cron(minute hour day-of-month month day-of-week year). Unlike Unix it has no seconds field but does have a required year field, and unlike Unix it requires a ? in one of the two day fields (you cannot specify both day-of-month and day-of-week). For example, cron(0 9 ? * MON-FRI *) runs at 09:00 UTC on weekdays.

What timezone do AWS EventBridge cron schedules use?

UTC, always. EventBridge cron() expressions are evaluated in Coordinated Universal Time, not the region's local time or your browser's timezone. This catches many people out — a cron(0 9 ...) rule fires at 09:00 UTC, which may be the middle of the night locally. This tool previews the next runs in UTC so what you see matches what AWS will actually do.

Why does AWS require a ? in the cron expression?

Because it forces you to specify only one of the two day fields, avoiding the Unix OR-union ambiguity where restricting both day-of-month and day-of-week makes the job run when either matches. AWS (like Quartz) does not allow both day fields to be active, so you put the schedule in one and a ? in the other — for weekdays that is cron(0 9 ? * MON-FRI *), with ? in day-of-month.

Related Cron Expression Generator & Explainer pages