Cron explainer

When does it run?

Linux crontab syntax: minute, hour, day of month, month, day of week. Calculated in your browser.

At 08:00 and 20:00

0Minute
8,20Hour
*Day of month
*Month
*Day of week

Next runs (Europe/Vienna)

  1. Fri 2026-10-16 20:00
  2. Sat 2026-10-17 08:00
  3. Sat 2026-10-17 20:00
  4. Sun 2026-10-18 08:00
  5. Sun 2026-10-18 20:00
  6. Mon 2026-10-19 08:00
  7. Mon 2026-10-19 20:00
  8. Tue 2026-10-20 08:00
  9. Tue 2026-10-20 20:00
  10. Wed 2026-10-21 08:00

Times skipped by a daylight-saving change are not listed (cronie runs them right after the switch).

Details

Minute0
Hour8,208, 20
Day of month*every
Month*every
Day of week*every

systemd timer

OnCalendar=*-*-* 08,20:00:00

Syntax

┌───────────── 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 (0 and 7 = Sunday)
│ │ │ │ │
* * * * *  command
*
every value
1,15
list
1-5
range
*/15
every 15th value (0, 15, 30, 45)
8-17/2
every 2nd value within a range
@daily
@hourly, @daily, @weekly, @monthly, @yearly, @reboot

If both day of month and day of week are restricted, cron runs when either matches. Cron uses the server's time zone (or CRON_TZ= in the crontab).

Same in the terminal

$ curl tools.otw.solutions/cron/0_8,20_*_*_*

Or with spaces: curl "tools.otw.solutions/cron?e=0+3+*+*+1-5" · JSON: add ?format=json