What it does
- For crontab it follows Ubuntu 24.04's cron (Vixie cron 3.0pl1): 5 fields, names like
monandjan, ranges1-5, lists1,15, steps*/15and10-50/20, and the shortcuts@daily,@weeklyand friends. - For systemd it is a port of systemd 255's calendar code, so the normalized form is the same text
systemd-analyze calendarprints, and the next run times follow the same rules — including~(from the end of the month),..ranges,/repeats, fractional seconds and a time zone at the end. - Next run times are computed in the browser for the time zone you pick: your browser's zone, UTC or Asia/Seoul.
Examples
| Expression | Kind | Meaning |
|---|---|---|
*/15 * * * * | cron | Every 15 minutes |
30 4 * * * | cron | Every day at 04:30 |
0 9 * * 1-5 | cron | At 09:00, Monday through Friday |
0 0 1 * 1 | cron | On the 1st of the month or on any Monday (OR) |
Mon..Fri 09:00 | systemd | Mon..Fri *-*-* 09:00:00 |
*:0/15 | systemd | *-*-* *:00/15:00 — every 15 minutes |
*-*~01 23:00 | systemd | Last day of every month at 23:00 |
Sun *-*-1..7 3:00 | systemd | First Sunday of the month at 03:00 (AND) |
How the check was made
Before release the systemd results were compared with systemd-analyze calendar --iterations=5 (systemd 255) for 77 expressions, and the cron results with the Python library croniter plus a separate brute-force checker for 66 expressions, all in Asia/Seoul. Differences between cron implementations are flagged on the page instead of hidden.
FAQ
Why does 0 0 1 * 1 run on Mondays that are not the 1st?
crontab(5): when both the day-of-month and day-of-week fields are restricted, the job runs when either matches. To run only on a Monday that is the 1st, keep one field as * and test the other in the command, or use a systemd timer — Mon *-*-01 00:00 means both.
Does anything I type get sent to a server?
No. Parsing the expression and counting the run times all happen in your browser. The input is not sent to a server and is not passed to the visitor statistics (Google Analytics) or the ads this site uses. Details are on the privacy page.
Why is my systemd timer a minute late?
systemd groups timer wake-ups. Unless the unit sets AccuracySec=, a timer may start up to one minute after the calculated time (systemd.timer(5)). The times shown here are the calculated ones.