Developers
Cron Expression Parser
Your cron expression translated into plain English, with the next five run times.
Next runs
“0 8 * * 1-5”: every weekday at 8 am, or every Monday in August? One misread cron expression and a backup silently never runs — or a report goes out a hundred times. Paste your expression: it is translated instantly into a clear sentence, and the next five execution dates are listed — the surest way to confirm it does what you think before it reaches production. All five standard fields are supported, along with ranges, lists and steps (*/5). Invalid expressions are flagged immediately with a helpful message. Free, no sign-up, and everything runs right in your browser — nothing is sent anywhere.
How does it work?
- Paste or type your five-field cron expression.
- Read its plain-language translation, updated live.
- Check the next five computed run times.
- Adjust the expression until the schedule is right, then copy it.
Frequently asked questions
How do I write “every day at 8 am” in cron?
“0 8 * * *”: minute 0, hour 8, every day, every month, every weekday. For weekdays only, “0 8 * * 1-5”; for every hour, “0 * * * *”; for every 5 minutes, “*/5 * * * *”. The translation shown here confirms your reading before you commit it.
What do the five fields of a cron expression mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-7, where both 0 and 7 mean Sunday). Each field accepts “*” (all values), a list (1,15), a range (1-5) or a step (*/10). Some systems add a sixth field for seconds — that is non-standard.
Why does my job run at the wrong time?
Almost always a timezone issue: cron runs in the server’s timezone, often UTC, not yours. A “0 8” on a UTC server fires at 9 or 10 am Swiss time depending on the season. Check the server’s timezone — and beware of daylight-saving transitions for jobs scheduled overnight.
What if both day-of-month and day-of-week are set?
A classic trap: in traditional cron, the two conditions combine as OR, not AND. “0 8 13 * 5” runs on the 13th of every month AND every Friday — not only on Friday the 13th. For a true AND, leave one of the two fields as “*” and filter inside the script.