cron⁠-⁠dialect

Runs entirely in your browser — no network, nothing you type is ever sent anywhere.

1 · Read a cron expression

plain-English + next 5 runs update as you type
Dialect

In plain English

Type an expression above to see its reading.

Next 5 runs

Times are computed against wall-clock in the selected zone. Spring-forward gaps are skipped; fall-back overlaps fire once.

2 · Translate to another dialect

every lossy or gotcha-prone conversion is flagged — never silently dropped

3 · Plain English → cron

a small, documented grammar — unparseable phrases error honestly, never guess

Uses the dialect selected in step 1. Try: every 15 minutes, weekly at noon, on mon, wed and fri, on day 1 of the month.

Accepted English forms

    Why a dialect translator — and what it refuses to guess

    What it does. The popular cron explainers understand only classic Unix 5-field cron and will silently mis-read a 6- or 7-field Quartz or AWS EventBridge expression — the fields shift, and day-of-week is numbered differently, so "every Monday" quietly becomes "every Sunday". This tool parses each dialect on its own terms: … 1 in the day-of-week field means Monday in Unix cron but Sunday in Quartz and AWS, and the ? token Quartz/AWS require on one of day-of-month/day-of-week is a hard error in Unix cron rather than a silently ignored character.

    When you'd use it. Porting a schedule between schedulers — crontab to a Quartz job, a Spring config to EventBridge — or debugging why a migrated job "runs on the wrong day" (it is almost always the 1=Sunday vs 0/7=Sunday mismatch this page makes explicit). Every lossy or gotcha-prone conversion is flagged as a warning: injected seconds, an injected ?, the day-of-week renumbering, a dropped year field — never silently dropped.

    Honest limits. The Quartz L (last), W (nearest weekday) and # (nth weekday-of-month) tokens are not yet supported and raise a parse error rather than being mis-parsed. Reverse ranges (5-1) are rejected rather than interpreted as wrap-around. The English→cron grammar is small and fixed — a phrase outside it errors honestly with the nearest accepted form, never a guessed expression. And the next-runs preview follows one pinned DST rule: a fire time that falls in a spring-forward gap is omitted (not shifted), and a fall-back overlap fires once, at the earlier occurrence.