Cron Expression Explainer
Translate a cron expression into plain English so you know when it runs.
Was this tool helpful?
Thanks for the feedback!
The Cron Expression Explainer reads a standard five-field cron schedule and writes it out as a sentence, followed by a breakdown of each field. It is meant for anyone editing a crontab, a CI pipeline schedule or a hosting panel's "Cron Jobs" page who wants to confirm when a job will actually fire before saving it.
The five fields in order
| Field | Allowed values |
|---|---|
| Minute | 0–59 |
| Hour | 0–23 (24-hour clock) |
| Day of month | 1–31 |
| Month | 1–12 |
| Day of week | 0–7, where 0 and 7 are both Sunday |
Four symbols combine with these numbers: * means every value, a comma makes a list (1,15), a hyphen makes a range (1-5), and a slash makes a step (*/15 is every 15th value).
Sample schedules and how the tool reads them
0 9 * * 1-5→ "At 09:00, on Monday-Friday." A weekday morning report.30 2 1 * *→ "At 02:30, day-of-month 1." Runs once a month, at 2:30 am on the 1st, a common slot for invoices or backups.0 0 * * 0,6→ "At 00:00, on Sunday,Saturday." Midnight at the start of each weekend day.*/15 * * * *→ "At minute */15, hour *, every day." The step is shown as written; it means minutes 0, 15, 30 and 45 of every hour.0 */6 * * *→ "At minute 0, hour */6, every day." That is 00:00, 06:00, 12:00 and 18:00.
When both minute and hour are single numbers, the tool prints a clock time; weekday numbers become day names. Steps, ranges in other fields, and month numbers are echoed back as typed, and the second line lists every field so you can check each one.
Three mistakes that cause jobs to run at the wrong time
Day of month and day of week together
If both fields are restricted, standard cron runs the job when either matches. 0 9 1 * 1 fires on the 1st of every month and also on every Monday, not only on Mondays that fall on the 1st. The tool lists both conditions side by side, so read them as "or".
Server time zone
Cron uses the server's clock, and many cloud servers run on UTC. India Standard Time is UTC+5:30, so a job meant for 9:00 am IST on a UTC machine needs 30 3 * * *. When matching a run against log entries stored as epoch seconds, the Unix Timestamp Converter helps.
Six-field formats
Quartz, Spring and some cloud schedulers add a seconds field at the front, and Quartz numbers weekdays 1–7 starting from Sunday. Pasting 0 30 9 * * MON here shifts every field by one and produces nonsense such as "At 30:00". Remove the leading seconds value first.
What the explainer doesn't cover
Shortcuts such as @daily or @reboot aren't accepted (@daily equals 0 0 * * *). Month and weekday names like JAN or MON-FRI are valid in most crontabs but are shown as typed rather than translated, and the tool does not list the next run dates.