Cron expression generator
Pick when a job should run and get the cron line, or paste an expression to see what it means and when it will next run. Everything runs in your browser.
Know when a cron job didn’t run
Add one line to the end of the job; we alert you when its ping is late. For example: 0 3 * * * /backup.sh && curl -fsS -m 10 <your ping URL>
What is a cron expression?
Cron runs commands on a schedule on Linux and macOS servers. Each line starts with five fields: minute, hour, day of month, month and day of week. «*/15 * * * *» means every 15 minutes; «0 3 * * 1» means 03:00 every Monday.
| Field | Allowed | Example |
|---|---|---|
| Minute | 0–59 | */5 every 5 minutes |
| Hour | 0–23 | 9-17 from 9 to 17 |
| Day of month | 1–31 | 1 on the 1st |
| Month | 1–12 or JAN–DEC | */3 every quarter |
| Day of week | 0–7 or SUN–SAT (0 and 7 = Sunday) | 1-5 Monday to Friday |
Standard five-field cron, read the way cron reads it.
The generator understands lists (1,15), ranges (9-17), steps (*/10, 0-30/5), month and day names, and the shortcuts @hourly, @daily, @weekly, @monthly and @yearly. Like Vixie cron, when both day of month and day of week are set, the job runs on days that match either one. Next runs are worked out in your browser, in your time zone or in UTC.
Which time zone does cron use?
The server’s, unless you set CRON_TZ or TZ. A job set for 03:00 on a UTC server runs at 05:00 or 06:00 Greek time.
What does */5 mean?
Every 5th value: every 5 minutes in the minute field, every 5 hours in the hour field.
Why didn’t my cron job run?
The usual causes: a different PATH than your shell, a missing newline at the end of the crontab, a wrong time zone, or the job failing silently because its output goes nowhere.
How do I know if a cron job stopped running?
Cron doesn’t tell you. Add a heartbeat: the job pings a URL when it finishes, and you’re alerted when the ping doesn’t come.