Cron expression explainer
Paste a cron expression and get a plain-English schedule — plus a reference for writing your own.
Cron expressions are terse. Paste one below to see exactly when it runs, then use the reference to build your own.
↳ Runs entirely in your browser. Nothing you type here is sent to us or anyone else.
The five fields
| Field | Range |
|---|---|
| Minute | 0–59 |
| Hour | 0–23 |
| Day of month | 1–31 |
| Month | 1–12 |
| Day of week | 0–7 (0 and 7 are Sunday) |
Special characters
| Char | Meaning |
|---|---|
* |
Every value |
, |
List, e.g. 1,15,30 |
- |
Range, e.g. 9-17 |
/ |
Step, e.g. */15 = every 15 |
Common examples
| Expression | Runs |
|---|---|
0 * * * * |
Every hour, on the hour |
*/15 * * * * |
Every 15 minutes |
0 3 * * * |
Daily at 03:00 |
0 9 * * 1-5 |
09:00 on weekdays |
0 0 1 * * |
Midnight on the 1st of each month |
Where cron jobs live
Edit your personal crontab with crontab -e; system jobs live in /etc/crontab and /etc/cron.d/. On modern distributions, systemd timers are often a better choice for anything that needs logging, dependencies, or catch-up after downtime — see our systemd unit generator.
Frequently asked questions
Does cron run a missed job after the machine was off?
Plain cron does not u2014 if the machine was asleep at the scheduled time, the run is skipped. Use anacron or a systemd timer with Persistent=true if you need catch-up.
What timezone does cron use?
The system timezone by default. Check with timedatectl, and note that daylight-saving transitions can cause a job to run twice or not at all around the change.
How do I run something every 15 minutes?
Use */15 in the minute field: */15 * * * *.