Skip to main content

Cron Interpreter - interpret cron schedules online

At 0 minutes past the hour, every 6 hours, every day.

Next runs · UTC

Run in CrontapCheatsheet

Calendar

September 2026 · UTC

0 runs

About this tool

Paste any cron expression and CronTool interprets it for you - what each field means, when it fires next, which dialect it's compatible with, and which modifiers it uses. The interpreter accepts standard 5-field crontab plus 6/7-field Quartz, AWS EventBridge and Vercel cron syntax.
“Interpretation” here means more than just translation - it's reading the schedule as a scheduler would, including the edge cases (day-of-month vs day-of-week conflicts, leap-year handling, daylight-saving boundaries) that don't show up in a plain English description.

How a scheduler interprets cron

Each field is an independent constraint. The scheduler walks forward in time and at every minute checks: does the current minute match field 1? Does the hour match field 2? And so on. If all fields match, it fires.

The exception is the day-of-month vs day-of-week pair. Standard cron OR-joins them: 0 0 1 * 1 fires on the 1st of every month OR on every Monday - usually not what you want. Quartz / AWS forbid both being values to avoid this ambiguity, requiring ? in one of them.

Common interpretation pitfalls

  • Both day fields restricted - see above. The interpreter flags it.
  • Step doesn't wrap - 50-10/20 is invalid; cron does not wrap step ranges across the field boundary.
  • Sunday is 0 or 7 - both work in Unix cron; only 1-7 (Sunday=1) in Quartz.
  • February 30 - a syntactically valid expression that never fires. The interpreter shows an empty calendar.
  • Daylight saving - the spring-forward hour is skipped (no fires there); the fall-back hour is repeated (fires twice). Most schedulers don't alert you.

Interpreter vs reader vs decoder

These are different angles on the same task. The cron reader focuses on the English sentence. The cron decoder focuses on per-field meaning. The cron interpreter on this page focuses on what a scheduler will actually do, including edge cases. All three share the same parser; pick the framing that matches how you think.

Examples

  • 0 18 * * *
    Every day at 18:00
  • 0 */5 * * *
    Every 5 hours
  • 0 18 * * 1-5
    Weekdays at 18:00
  • 0 0 1 * *
    Once a month, on the 1st at midnight

Cheatsheet

Full cheatsheet
FieldReq.RangeWildcards
minuteyes0-59, - * /
houryes0-23, - * /
day of monthyes1-31, - * /
monthyes1-12 or JAN-DEC, - * /
day of weekyes0-6 or names; some dialects use 0-7 or 1-7 — see Dialects, - * /

Frequently asked questions

Syntax

How do I interpret a cron expression?

Read five-field cron left to right as minute, hour, day-of-month, month, and day-of-week. Matching fields are combined, except Vixie cron ORs day-of-month and day-of-week when both are restricted. CronTool adds a sentence, five next runs, and a calendar.

How does the interpreter treat ??

In supported extended dialects, ? leaves day-of-month or day-of-week unspecified while the other day field defines the schedule. It is not standard Vixie syntax.

Question-mark operator

Timing

How does the interpreter expand a stepped minute constraint?

Interpret it as every 5 minutes, starting at minute 0 of each hour. The minute field expands to 0, 5, 10, through 55. Expression: */5 * * * *

Open in editor
Every 5 minutes guide
What changes when the minute constraint is literal?

A literal selects one clock value. 5 * * * * means minute 5 of every hour, while every 5 minutes requires the step */5 * * * *. Expression: 5 * * * *

Open in editor
Minutes past the hour guide
How do I verify the interpreter's English sentence?

Compare the sentence with the five-run list and navigable calendar in the selected timezone. Concrete timestamps can reveal month gaps, weekday mismatches, and DST boundaries hidden by terse wording.

Days and months

How is the day-of-month vs day-of-week conflict interpreted?

In Standard mode, CronTool warns using Vixie semantics: restricted day fields are ORed. It does not validate a chosen dialect; consult the matrix because other schedulers use different rules.

Day-field rules
What does 0 9 1 * 1 mean in Unix cron?

It means 09:00 on every Monday OR on day 1 of every month. Unix cron does not AND the two restricted day fields. Expression: 0 9 1 * 1

Open in editor
Unix day rules
How is LW interpreted in an extended cron?

LW in day-of-month means the final Monday-to-Friday day of the month. For example, 0 0 9 LW * ? runs then at 09:00:00. Expression: 0 0 9 LW * ?

Open in editor
Last weekday rule
Why is field-based interpretation not elapsed-time scheduling?

Steps select values within a field and then reset. 0 0 */7 * * means dates 1, 8, 15, 22, and 29 each month, not every seven elapsed days. Expression: 0 0 */7 * *

Open in editor
Step operator details
What if the interpreted sentence describes an impossible date?

0 0 30 2 * is syntactically shaped like a schedule but has no matching calendar date because February 30 never exists. The next-run view stays empty. Expression: 0 0 30 2 *

Open in editor

Timezones and DST

What timezone does the interpreter assume?

The timezone picker selects the IANA zone used for CronTool's run list and calendar. Production behavior depends on the scheduler; Vixie-compatible crontabs may support CRON_TZ, while Vercel uses UTC.

Timezone reference

Platforms

How are extended cron expressions interpreted?

Extended mode exposes leading seconds and trailing year fields and accepts additional special forms, but it is generic rather than scheduler-specific. Quartz requires seconds and permits an optional year; AWS uses minute-first fields with a required year.

Dialect matrix
How should I interpret Sunday numbers across dialects?

Vixie cron accepts 0 or 7 for Sunday, while Quartz uses 1. CronTool has no dialect selector, so consult the dialect matrix before trusting a numeric weekday.

Day numbering by dialect

Debugging

How do I share an interpreted cron?

Use /?cron=<expression> and add mode=extended when needed. Add tz=<IANA zone> if the recipient must reproduce the same interpreted timestamps.

Can the interpreter tell why a command did not run?

No. It interprets schedule semantics but cannot inspect PATH, environment variables, permissions, logs, daemon state, or command output, and it never runs commands.

Runtime debugging checklist

Write the cron here. Run it on Crontap.

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

1.9k+ teams · Free forever tier · No credit card