Translate Any Cron Expression to Plain English
Table of Contents
Paste a cron expression into our free crontab visualizer and it instantly translates it to plain English — no manuals, no guesswork. 0 9 * * 1-5 becomes "At 9:00 AM, Monday through Friday."
This guide explains how cron translation works, what each field means in human terms, and how to read unusual expressions that trip up even experienced developers.
How Cron-to-English Translation Works
A cron expression has five fields, each mapping to a time unit. Translating to English means converting each field's value into a readable phrase, then combining them:
| Field | Position | Values | English example |
|---|---|---|---|
| Minute | 1st | 0-59 | "At :30" or "Every 5 minutes" |
| Hour | 2nd | 0-23 | "At 9 AM" or "Every hour" |
| Day of month | 3rd | 1-31 | "On the 1st" or "Every day" |
| Month | 4th | 1-12 | "In January" or "Every month" |
| Day of week | 5th | 0-7 (0=Sun) | "On Monday" or "Weekdays" |
Special characters change the translation significantly:
*— "every" (wildcard, matches all values)*/5— "every 5" (step notation)1-5— "from 1 through 5" (range)1,3,5— "on 1, 3, and 5" (list)
20 Common Cron Expressions Translated to English
| Expression | Plain English |
|---|---|
* * * * * | Every minute |
0 * * * * | At the start of every hour |
*/5 * * * * | Every 5 minutes |
*/15 * * * * | Every 15 minutes |
*/30 * * * * | Every 30 minutes |
0 9 * * * | Every day at 9:00 AM |
0 0 * * * | Every day at midnight |
0 9 * * 1-5 | At 9:00 AM, Monday through Friday |
0 9 * * 1 | Every Monday at 9:00 AM |
0 9 * * 0 | Every Sunday at 9:00 AM |
0 0 1 * * | On the 1st of every month at midnight |
0 0 * * 0 | Every Sunday at midnight (weekly) |
0 0 1 1 * | January 1st at midnight (yearly) |
0 6,18 * * * | At 6:00 AM and 6:00 PM every day |
0 9-17 * * 1-5 | Every hour from 9 AM to 5 PM, weekdays |
30 9 * * 1-5 | At 9:30 AM, Monday through Friday |
0 2 * * 0 | Every Sunday at 2:00 AM |
0 4 1,15 * * | At 4:00 AM on the 1st and 15th of each month |
5 0 * 8 * | At 12:05 AM every day in August |
0 23 * * 5 | Every Friday at 11:00 PM |
Tricky Cron Expressions and What They Actually Mean
Some expressions have non-obvious meanings that even automated translators get wrong:
The day-of-month + day-of-week OR trap: When both field 3 and field 5 are non-wildcard, most cron implementations use OR logic — the job runs if either condition is true. 0 0 15 * 5 means "midnight on the 15th of each month OR every Friday," not "midnight on Fridays that fall on the 15th."
0 vs 7 for Sunday: Both 0 and 7 represent Sunday in standard cron. 0 9 * * 7 is the same as 0 9 * * 0. Quartz Java uses a different numbering where 1=Sunday.
Step notation edge cases: 1-6/2 means "every 2nd value in the range 1 through 6" — so 1, 3, 5. Not "every 2 minutes from minute 1 to minute 6." The range is the universe; the step is the increment within it.
The never-run expression: 0 0 31 2 * translates to "February 31st at midnight" — a date that never exists. This expression is valid syntax but will never execute.
Paste any of these into the crontab visualizer to see the next 20 actual run times — the calendar view removes all ambiguity.
How to Translate 6-Field (Spring/Quartz) and 7-Field Expressions
Some platforms add extra fields. Our visualizer uses standard 5-field format. Here's how to translate extended formats:
Spring Boot 6-field (seconds first): Drop the first field (seconds). 0 30 9 * * MON-FRI becomes 30 9 * * 1-5 for the visualizer. Spring uses MON-FRI or numeric 1-5 interchangeably.
Quartz 7-field (seconds + year): Drop the first field (seconds) and last field (year). 0 0 12 * * ? * becomes 0 12 * * *. Replace ? with *.
AWS EventBridge 6-field: Uses ? for unused day fields and 1-7 numbering for days of week (1=Sunday). cron(0 9 ? * MON-FRI *) → remove outer cron() wrapper → 0 9 ? * MON-FRI * → drop year → replace ? with * → 0 9 * * 1-5.
Once adapted to 5-field format, paste into the visualizer to see the run schedule.
Try It Free — No Signup Required
Runs 100% in your browser. No account, no install, no limits.
Open Free Crontab VisualizerFrequently Asked Questions
What does "0 0 * * *" mean in plain English?
It means "every day at midnight (12:00 AM)." The first 0 is minute 0, the second 0 is hour 0 (midnight), and the three asterisks mean "every day, every month, every day of week."
How do I translate a cron expression with slashes?
The slash (/) means "step" or "every N." So */5 in the minute field means "every 5 minutes." 10-50/10 means "every 10 minutes starting from minute 10, up to minute 50" — giving you minutes 10, 20, 30, 40, 50.
Is there a cron expression that means "never run"?
Yes. Use an impossible date like 0 0 30 2 * (February 30th — doesn't exist) or 0 0 31 4 * (April 31st). These are valid syntax but will never trigger. Some platforms have a "disable" toggle that's cleaner than an impossible expression.

