Guides/Reference

Cron Schedule Examples: A Practical Cheatsheet (2026)

Updated June 14, 2026 4 min read

A cron expression has five fields: minute, hour, day-of-month, month, and day-of-week. Here is the layout and a set of ready-to-use examples.

* * * * *  command
| | | | |
| | | | └─ day of week (0–6, Sun=0)
| | | └── month (1–12)
| | └─── day of month (1–31)
| └──── hour (0–23)
└───── minute (0–59)

Common schedules

*/5 * * * *    # every 5 minutes
0 * * * *      # every hour, on the hour
0 3 * * *      # every day at 03:00
30 2 * * 1     # every Monday at 02:30
0 0 1 * *      # first day of every month, midnight
0 9 * * 1-5    # 09:00 on weekdays only
0 0 * * 0      # every Sunday at midnight
*/15 9-17 * * 1-5  # every 15 min, 9am–5pm, weekdays

Special strings

Many cron implementations support shorthand:

@hourly   # 0 * * * *
@daily    # 0 0 * * *
@weekly   # 0 0 * * 0
@monthly  # 0 0 1 * *
@reboot   # run once at startup

Gotchas

  • Day-of-month and day-of-week are OR’d together when both are set — a frequent source of surprises.
  • Cron uses the system timezone; confirm it before scheduling time-sensitive jobs.
  • Always redirect output (>> log 2>&1) or you may miss errors entirely.
  • Cron does not retry missed runs — if the box was down, the run is simply skipped.
A correct schedule still tells you nothing about whether the job actually ran. Pair every cron entry with a heartbeat so you find out the moment one doesn’t.

Monitor any schedule

Add a ping to any of the jobs above and CronGuard will know the expected cadence and alert you when a run is missed — across SMS, WhatsApp, Slack, Telegram and email. It is free to start and takes under a minute.

0 3 * * * /usr/local/bin/backup.sh && curl -fsS https://api.cronguard.dev/v1/ping/<your-uuid>

Stop losing sleep over silent failures

CronGuard alerts you within minutes when a scheduled job fails to check in. No agent to install. Free to start.

Start Monitoring Free