cron - work out when a cron expression will next run (or last ran) Usage: curl --data "" https://ttykit.com/cron curl --data "" "https://ttykit.com/cron?n=10" curl --data "" "https://ttykit.com/cron?history=1" (cron expressions contain spaces and '*', which most shells/curl won't pass through unencoded in a URL, so POSTing the expression as the body is the easiest way in. If you'd rather use a query param, percent-encode it or let curl do that for you:) curl -G https://ttykit.com/cron --data-urlencode "expr=0 9 * * MON-FRI" Standard 5-field cron syntax: minute hour day-of-month month day-of-week * any value */5 every 5 units 1,15,30 list 1-5 range 1-10/2 range with step JAN-DEC and SUN-SAT names are accepted for month/day-of-week Shortcuts: @yearly @monthly @weekly @daily @hourly If day-of-month and day-of-week are both restricted (not '*'), a run matches when EITHER one hits, matching standard cron/Vixie-cron behavior. All times are UTC. n= how many runs to list (default 5, max 50) history=1 look backward instead of forward: list the most recent past runs (oldest to newest) instead of upcoming ones Examples: curl --data "0 9 * * MON-FRI" https://ttykit.com/cron curl --data "*/15 * * * *" "https://ttykit.com/cron?n=8" curl --data "@daily" https://ttykit.com/cron curl --data "0 9 * * MON-FRI" "https://ttykit.com/cron?history=1&n=10" Crontab file mode (POST a crontab, one schedule per line, '#' for comments, optional command/label after the 5 fields or shortcut). Real /etc/crontab files work directly: VAR=value environment lines (SHELL=, PATH=, MAILTO=, etc.) are skipped just like the real cron daemon does. curl --data-binary @crontab.txt https://ttykit.com/cron/file curl --data-binary @/etc/crontab "https://ttykit.com/cron/file?n=3" curl --data-binary @crontab.txt "https://ttykit.com/cron/file?history=1" Got an /etc/anacrontab instead of a crontab? That's a different format (period/delay/job-id, not minute-hour-dom-month-dow) -- see ttykit.com/cron/anacron