Cron Translator - translate cron expressions to English
At 18:00, Monday through Friday.
Next runs · UTC
- —
- —
- —
- —
- —
Calendar
September 2026 · UTC
0 runs
About this tool
How cron translation works
Each field of the cron expression is parsed independently - wildcards (*), lists (1,3,5), ranges (9-17), steps (*/15), aliases (MON-FRI) and modifiers (L, W, #, ?) all get an English equivalent. The translator then stitches the field translations into a single sentence, ordered for natural reading.
Some translations are surprising. 0 0 * * 1-5 reads as “At 00:00, Monday through Friday”. But 0 0 1 * 1-5 reads as “At 00:00, on day 1 of the month, Monday through Friday” - and in standard cron, that's an OR (either condition), not an AND. The calendar clarifies whichever way your scheduler interprets it.
Cron expressions translated
* * * * *→ Every minute.*/5 * * * *→ Every 5 minutes.0 9 * * 1-5→ At 09:00, Monday through Friday.0 0 1 * *→ At 00:00, on day 1 of the month.0 0 L * *→ At 00:00, on the last day of the month.30 8,17 * * *→ At 08:30 and 17:30, every day.0 0 1,15 * 1→ At 00:00, on day 1 and 15 of the month, and on Monday.
Translator vs debugger vs validator
The translator answers “what does this mean?”. The debugger answers “why is this not running when I expect?”. The tester answers “is this expression syntactically valid?”. All three use the same parser; they're different angles on the same problem.
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
Can the tool translate English back to a cron expression?
Not directly. The translator goes one way: cron → English. To compose a cron from a human description, use the cron builder - it gives you input boxes per field with examples, then writes the cron string for you.
Cron builderHow accurate is the cron translation?
The sentence combines @datasert/cronjs-parser, cronstrue, and Datasert's matcher; it is not an emulator for every scheduler. Verify dialect-specific operators and day rules against the production target.
How does the translator phrase ? in cron?
It treats ? as no specific value in one day field while the other day field carries the schedule. This operator requires a supporting extended dialect.
Timing
How do I translate a cron expression to English?
Paste the cron into the editor. CronTool validates it with Datasert's parser, translates it with cronstrue, and shows five next runs plus a calendar in the selected timezone. Expression: 0 9 * * 1-5
When should a translation say “every 5 minutes”?
It should say “every 5 minutes” for the step */5, which expands to minute 0, 5, 10, and so on through 55. Expression: */5 * * * *
When should a translation say “at minute 5”?
A literal minute selects one position in each hour, so it means at minute 5 of every hour. Every 5 minutes needs the step */5. Expression: 5 * * * *
Days and months
Why can one English sentence understate Vixie OR behavior?
Under Vixie semantics they must be read as OR. 0 9 1 * 1 means 09:00 on every Monday and on every first day of the month. Expression: 0 9 1 * 1
What is the English translation of MON#2?
MON#2 means the second Monday of the month. 0 0 9 ? * MON#2 translates to 09:00:00 on that monthly occurrence. Expression: 0 0 9 ? * MON#2
Which translation overstates a day-of-month step?
“Every seven elapsed days” overstates it. */7 in day-of-month selects dates 1, 8, 15, 22, and 29 and resets monthly. Expression: 0 0 */7 * *
Why can a grammatical translation still have no run?
The fields can still form a sentence, but next runs are the check. 0 0 30 2 * describes February 30 and therefore never matches. Expression: 0 0 30 2 *
Timezones and DST
Does the translated sentence guarantee a timezone?
No. The sentence describes clock fields; the selected IANA timezone controls displayed runs. Confirm that zone against the scheduler, especially for UTC-only platforms and DST.
Timezone referencePlatforms
Does the cron translator support languages other than English?
No. This page configures cronstrue for English output only.
Debugging
What URL preserves an extended cron translation?
Use /?cron=<expression>&mode=extended. Add tz=<IANA zone> when timezone must match; Copy link does not add it.
Can the translator explain a runtime failure?
No. It translates schedules but cannot inspect your server's PATH, environment, permissions, logs, or command status, 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