Skip to main content
CalcChef

Crontab Translator

Translate a 5-field cron expression into plain English and see the next 5 run times: 0 9-17 * * 1-5 runs hourly from 9 AM to 5 PM, Monday to Friday. How it works

Use the Crontab Translator

Five fields: minute, hour, day of month, month, day of week (or an alias such as @daily). Up to 200 characters; a seconds field is not supported.

Schedule Description

Runs every minute

Field Breakdown

Minute*every minute
Hour*every hour
Day of month*every day of the month
Month*every month
Day of week*every day of the week

Next 5 Runs

Calculating the next runs…

About the Crontab Translator

The cron expression 0 9-17 * * 1-5 runs on the hour, every hour from 9 AM through 5 PM, Monday through Friday: 9 runs a day. A crontab line has five fields, minute, hour, day of month, month and day of week, and this crontab translator writes them as one sentence, explains each field and lists the next 5 run times.

Common cron expressions in plain English

Cron expressionWhat the translator says
* * * * *Runs every minute
*/15 * * * *Runs every 15 minutes
*/25 * * * *Runs every 25 minutes within each hour (at minutes 0, 25 and 50)
0 * * * *Runs at the start of every hour (minute 0)
0 0 * * *Runs at 12:00 AM every day
30 9,17 * * *Runs at 9:30 AM and 5:30 PM every day
0 9 * * 1-5Runs at 9:00 AM on Monday through Friday
0 9-17 * * 1-5Runs on the hour, every hour from 9 AM through 5 PM on Monday through Friday
*/5 9-17 * * 1-5Runs every 5 minutes from 9:00 AM through 5:59 PM on Monday through Friday
0 */6 * * *Runs at 12:00 AM, 6:00 AM, 12:00 PM and 6:00 PM every day
0 2 * * 0Runs at 2:00 AM on Sunday
0 0 1 * *Runs at 12:00 AM on day 1 of the month
0 0 1 1,4,7,10 *Runs at 12:00 AM on day 1 of the month in January, April, July and October
0 0 L * *Runs at 12:00 AM on the last day of the month
0 0 * * 5LRuns at 12:00 AM on the last Friday of the month
0 9 * * 1#1Runs at 9:00 AM on the 1st Monday of the month
0 0 13 * 5Runs at 12:00 AM on day 13 of the month, or on Friday

The fields are minute, hour, day of month, month and day of week; 0 and 7 both mean Sunday. L, 5L and 1#1 are extensions that the POSIX and cronie crontab pages do not describe, so check that your scheduler accepts them.

Cron aliases such as @daily and @hourly

AliasSame asWhat the translator says
@yearly0 0 1 1 *Runs at 12:00 AM on day 1 of the month in January
@monthly0 0 1 * *Runs at 12:00 AM on day 1 of the month
@weekly0 0 * * 0Runs at 12:00 AM on Sunday
@daily0 0 * * *Runs at 12:00 AM every day
@hourly0 * * * *Runs at the start of every hour (minute 0)

@annually is the same as @yearly and @midnight the same as @daily. @reboot is not a schedule: it runs once when the system starts, and the translator says so instead of translating it.

Expressions the translator rejects, and its message

ExpressionMessage
@reboot@reboot runs once when the system starts. It has no repeating schedule to translate.
0 0 0 * * *A crontab line has exactly 5 fields (minute hour day-of-month month day-of-week) but this has 6. A sixth field (seconds, as in Quartz or Spring) is not supported here.
0 0 15W * *Day of month: "W" (nearest weekday) is a Quartz extension that this tool does not accept.
0 0 31 4 *That day of the month never occurs in the chosen month (for example 31 April or 30 February).
*/100 * * * *Minute: the step 100 is larger than the 60 values this field has.
0 0 * * 1#6Day of week: "1#6": the occurrence after # must be 1 to 5.

How to use this tool

  1. Paste a crontab line such as 0 9-17 * * 1-5, or an alias such as @daily, into Cron Expression. To start from a common schedule instead, switch to Build and pick one of the 10 quick presets.
  2. To change one field, tap its chip under the field, such as Hour: 9-17, and pick a value from its quick picks (9 AM to 5 PM, Every 6 hours and so on). The pick replaces that field only.
  3. Read the sentence and the Field Breakdown, then set the time zone your server uses and check the next 5 runs.

Frequently asked questions

What does * * * * * mean in cron?
Every minute of every hour of every day: the translator says “Runs every minute”, which is 1,440 runs a day. Each * means every value of its field.
How do I write a cron job that runs every 15 minutes?
Use */15 * * * *, which fires at minutes 0, 15, 30 and 45 of every hour. A step that does not divide 60 restarts each hour: */25 * * * * runs at minutes 0, 25 and 50, so the gap from :50 to the next :00 is 10 minutes.
Why does my cron job run on extra days when I set both day of month and day of week?
When both day fields are restricted, cron runs on days that match either one, as POSIX and the cronie crontab page both say. 0 0 13 * 5 runs at midnight on the 13th and on every Friday: from 1 October 2026 the next runs are 2, 9, 13 and 16 October. When one of the two fields starts with *, such as */2, cron versions differ, and the translator adds a note.
Can a cron expression have seconds?
Not in a crontab: the POSIX and cronie formats have five fields, so the smallest step is one minute. Six-field expressions with a seconds field come from other schedulers and libraries, such as the cron-parser library behind the run list. The translator rejects a sixth field with a message rather than guessing which field you meant.
What does @daily mean in crontab?
@daily is shorthand for 0 0 * * *: once a day at 12:00 AM. @hourly is 0 * * * *, @weekly is 0 0 * * 0 (Sunday at midnight), @monthly is 0 0 1 * * and @yearly is 0 0 1 1 *, as the cronie crontab manual lists them.
What time zone are the next run times in?
UTC unless you pick one of the other 12 zones in the list, such as America/New_York or Asia/Kolkata. Pick the zone your server’s cron uses to see the times it will really run.

Related Tools

View all tools