What a cron expression is
cron is the task scheduler built into Unix and Linux systems: a background daemon that runs commands automatically at the times you choose. Every line in a crontab file begins with a cron expression — five space-separated values that answer a single question: when should this job run?
The catch is that those five numbers and symbols are hard to read at a glance. 0 3 * * 0 tells you nothing until you translate it into “at 3:00 in the morning, every Sunday.” This tool does exactly that translation: paste an expression and get a plain-English sentence, plus the next dates it would fire. Everything happens in your browser — nothing is sent to a server.
The five fields
A standard cron expression has five fields, always in this order:
| Position | Field | Valid range |
|---|---|---|
| 1 | Minute | 0-59 |
| 2 | Hour | 0-23 |
| 3 | Day of month | 1-31 |
| 4 | Month | 1-12 |
| 5 | Day of week | 0-7 (0 and 7 = Sunday) |
They read left to right, from the smallest unit of time to the largest. The job runs when every field matches the current moment, with one twist: if you set both the day of month and the day of week, cron fires when either one matches.
Syntax: the four symbols
*(asterisk): “any value.” In the hour field it means “every hour.”,(comma): a list of values.1,15,30in the minute field is three specific moments.-(hyphen): a range.1-5in the day-of-week field is Monday through Friday./(slash): a step or interval.*/15in the minute field is “every 15 minutes,” and it also works on a range, such as0-30/10.
Worked example
Take */20 9-17 * * 1-5 field by field:
- Minute
*/20→ minutes 0, 20, and 40 — every 20 minutes. - Hour
9-17→ from 9 to 17 (nine hours total). - Day of month
*→ any day. - Month
*→ any month. - Day of week
1-5→ Monday through Friday.
The translation reads: “Every 20 minutes, between 9:00 and 17:59, Monday through Friday.” How often does it run? Three times an hour times nine hours is 27 runs on each weekday, and none on the weekend. It is a common pattern for syncing data only during office hours.
Common examples
| Expression | Meaning |
|---|---|
* * * * * | Every minute |
*/15 * * * * | Every 15 minutes |
0 * * * * | Every hour, on the hour |
0 9 * * 1-5 | At 9:00, Monday through Friday |
0 0 1 * * | At 0:00, on day 1 of the month |
30 3 * * 0 | At 3:30, on Sundays |
0 0 * * 6,0 | At midnight on weekends |
Frequently asked questions
What does the asterisk mean in cron?
The asterisk * means “every possible value for this field.” A * in the hour field covers all 24 hours; in the month field, all 12 months. When all five fields are asterisks (* * * * *), the job runs every single minute.
How often does */5 * * * * run?
Every five minutes, around the clock, every day: at minutes 0, 5, 10, 15… through 55 of each hour. That is 12 runs per hour and 288 per day. Swap the 5 for any interval you like — just remember that */7 does not divide evenly at the end of an hour, because 60 is not a multiple of 7.
Is Sunday 0 or 7?
Both. In the day-of-week field, 0 and 7 both mean Sunday; Monday is 1 and Saturday is 6. This duplication exists for historical compatibility across different cron implementations, so use whichever you find clearer.
Why does my job run at a different time than expected?
It is almost always the time zone: cron uses the server’s local time, which may not match yours. This tool computes the next runs in your device’s time zone as a handy reference, but always double-check the settings of the server where the crontab actually lives.