Cron cheat sheet
| Expression | Meaning |
|---|---|
* * * * * | every minute |
*/10 * * * * | every 10 minutes |
0 */2 * * * | every 2 hours, on the hour |
0 9 * * 1-5 | weekdays at 09:00 |
0 0 1,15 * * | midnight on the 1st and 15th |
0 4 * * SUN | Sundays at 04:00 |
@daily | every day at 00:00 |
Frequently asked questions
What do the five cron fields mean?
In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC), day of week (0–7 or SUN–SAT, where both 0 and 7 are Sunday). * means 'every', */5 means 'every 5th', 1-5 is a range, and 1,15 is a list.
What happens when both day-of-month AND day-of-week are set?
The classic cron rule surprises everyone: when both are restricted, the job runs when EITHER matches. '0 0 13 * 5' runs on the 13th of every month AND on every Friday — not only Friday the 13th.
What timezone are the next-run times in?
Your device's local timezone. On a server, cron uses the server's timezone (or the CRON_TZ/TZ setting) — a common source of jobs firing at unexpected hours.
Are @daily, @hourly, @weekly supported?
Yes — @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly expand to their standard five-field equivalents.
Does this cover Quartz (6-field) cron with seconds?
No — this explains standard 5-field Unix cron (crontab, GitHub Actions, most CI systems). Quartz adds a seconds field at the front and uses ? and L symbols that plain cron doesn't have.