Cron Decoder - decode any cron expression online
At 00:00, on day 1 of the month.
Next runs · UTC
- —
- —
- —
- —
- —
Calendar
September 2026 · UTC
0 runs
About this tool
L, W, ?, #) most documentation glosses over.*/5 * * * * packs five independent fields. The decoder unpacks them so you can read your schedule the way you read a sentence - left to right, no flicking between docs.What the cron decoder shows
- Field-by-field breakdown - value, English meaning, accepted range and supported wildcards.
- Plain-English summary - one-sentence description of the whole schedule.
- Calendar of next runs - the next 30+ fires on a real month view.
- Validation - invalid fields highlighted in red with the parser error.
- Variations - cross-links to one-step-away cron expressions.
Decoder support for modifiers
The decoder recognises the major extended cron modifiers:
?- “no specific value”. Used in Quartz / AWS to resolve the day-of-month vs day-of-week conflict.L- “last”.0 0 L * *is last day of the month; see the last-day-of-month guide for the full pattern.W- “weekday nearest”. Quartz only.#- “Nth weekday of the month”.2#1is the first Monday.
Examples decoded
0 12 * * *- At 12:00 every day.0 0 ? * MON-FRI- At 00:00 every weekday (Quartz / AWS).0 0 LW * ?- At 00:00 on the last weekday of the month (Quartz).0 30 9 ? * 2#3- At 09:30 on the third Monday of every month.0 0 1 * *- At 00:00 on the 1st of every month.
Examples
- 0 18 * * *Every day at 18:00
- 0 */5 * * *Every 5 hours
- 0 18 * * 1-5Weekdays at 18:00
- 0 0 1 * *Once a month, on the 1st at midnight
Cheatsheet
Full cheatsheet| Field | Req. | Range | Wildcards |
|---|---|---|---|
| minute | yes | 0-59 | , - * / |
| hour | yes | 0-23 | , - * / |
| day of month | yes | 1-31 | , - * / |
| month | yes | 1-12 or JAN-DEC | , - * / |
| day of week | yes | 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects | , - * / |
Frequently asked questions
Syntax
How do I decode a cron expression?
Paste the cron into the editor. CronTool shows editable labeled fields, a plain-English sentence, five next runs in the selected timezone, and a navigable month calendar.
What does the decoder show for each field?
It places each token in an editable labeled field with a help popover for range and syntax. The combined sentence, five next runs, and calendar show the resulting schedule; CronTool does not display a semantic AST.
Cron field referenceWhat's the difference between decoding and writing a cron?
Decoding takes a cron string and explains it. Writing (or building) goes the other way - you describe the schedule in your head and compose the cron string. Use the cron builder for the latter, or the cron tester to validate as you write.
Cron builderHow does the decoder explain L, W, #, and ??
L selects a last occurrence, W the nearest weekday, # an nth weekday, and ? leaves a day field unspecified. Exact support depends on the dialect.
Timing
What does the field decoder reveal about */5?
It means every 5 minutes: minute values 0, 5, 10, and so on through 55. It does not mean only the fifth minute of each hour. Expression: */5 * * * *
Every 5 minutes guideHow does the decoded minute field separate literals from steps?
A literal 5 means minute 5 of every hour, such as 09:05 and 10:05. The step */5 means every five minutes. Expression: 5 * * * *
Days and months
How does the decoder read two restricted day fields?
For Vixie cron, 0 9 1 * 1 means every Monday OR every first day of the month. Quartz and AWS instead require ? in one day field. Expression: 0 9 1 * 1
What does 0 0 9 ? * MON#2 decode to?
It means 09:00:00 on the second Monday of every month in a Quartz-style extended expression. The ? leaves day-of-month unspecified. Expression: 0 0 9 ? * MON#2
Can a field decode prove a fixed elapsed interval?
No. A step selects values inside one field and resets at the boundary. In day-of-month, */7 selects 1, 8, 15, 22, and 29, then restarts next month. Expression: 0 0 */7 * *
Why can every decoded field look legal yet produce no run?
Field validity does not guarantee a possible date. 0 0 30 2 * uses legal values but asks for February 30, so CronTool reports that it never fires. Expression: 0 0 30 2 *
Timezones and DST
Does the English decoding include a timezone?
The sentence describes clock fields, while the selected timezone controls the next-run timestamps and calendar. Confirm that timezone against the scheduler's actual configuration.
Timezone referencePlatforms
Can the decoder handle AWS or Quartz cron?
It can parse many six- and seven-field forms in Extended mode, but it does not identify or validate a target dialect. Use the dialect matrix and Copy as output, then verify the result with AWS or Quartz.
Dialect matrixDebugging
Can I decode a cron without actually running it?
Yes. CronTool never executes the scheduled command. In production, however, PostHog events may include valid, copied, or shared cron strings, so do not assume the expression remains only in the tab.
Can the decoder explain why my command failed?
No. It explains and validates the schedule only; it cannot see your server's PATH, environment, permissions, logs, or command result, and it never executes commands.
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