Cron Expression Builder

Build, decode, and humanize cron expressions across four dialects — Standard (Unix/Vixie), AWS EventBridge cron(), AWS EventBridge rate(), and Quartz. See the next firing times in your timezone.

This is a reference tool. For production schedules, always double-check semantics against your scheduler's official documentation — small dialect differences (e.g. EventBridge's 1=Sunday vs Unix's 0=Sunday) can shift firings by a full day.

Dialect

Mode

Expression

✓ Valid

Build

Next occurrences

LocalUTC

How cron syntax works

A cron expression is a compact way to describe a recurring schedule. Each space-separated field controls one unit of time, and the scheduler fires whenever every field matches the current moment. Standard Unix cron uses five fields: minute, hour, day-of-month, month, and day-of-week. AWS EventBridge and Quartz extend the syntax with additional fields and a handful of special characters that express ideas Unix cron cannot — like "the last Friday of the month" or "the third Monday." Once you understand the small set of operators, every dialect reads the same way.

Dialect differences at a glance

Field-by-field reference

Special characters

Common scheduling patterns

Gotchas and edge cases

Day-of-month vs. day-of-week interaction. In Unix cron, when both fields are restricted (neither is *), the schedule fires when either matches — they OR together, not AND. So 0 12 1 * MON fires at noon on the 1st of every month and on every Monday. EventBridge and Quartz avoid this confusion by requiring one of the two to be ?.

Daylight saving transitions. A cron expression like 30 2 * * * fires zero times on the spring-forward day in most US time zones (02:30 doesn't exist) and twice on the fall-back day. Most schedulers de-duplicate the fall-back hour; this builder does too in its "next occurrences" preview.

Time zones. A cron expression has no inherent timezone — interpretation is up to the scheduler. Unix cron uses the system timezone. AWS EventBridge interprets expressions in UTC by default. Always confirm the timezone before deploying a production schedule. This builder shows next occurrences in your browser's timezone, with a picker so you can confirm behavior across zones.

Frequency limits. EventBridge rate() doesn't support sub-minute precision. Quartz technically supports per-second firing via its seconds field, but most production schedulers run at minute-granularity for reliability. This builder's next-occurrences preview is minute-resolution for that reason.

Why use a cron expression builder?

Cron syntax is famously easy to write incorrectly. A single misplaced character can mean the difference between a job firing once a day and firing every minute of every day. Dialect mismatches compound the problem — a Unix cron expression pasted into AWS EventBridge will silently shift by one day-of-week, since the numbering bases differ. A builder helps in three ways: it visually breaks the expression into labeled fields so you can verify each one, it translates the expression into plain English so you can sanity-check the intent, and it shows the next firing times in your timezone so you can confirm the schedule before deploying. Whether you're configuring a nightly database backup, a recurring AWS Lambda, a Spring scheduled task, or a one-off Quartz trigger, the same three checks — fields, English, and next runs — catch the vast majority of mistakes before they reach production.