benni@hamburg: ~ — zsh ● online
benni@hamburg:~$ whoami

Benjamin Dreier_

builds tiny APIs that do exactly one thing well, then stop.

← cd ../tools
benni@hamburg:~$ man cron

Cron Explainer live

Give it a 5-field cron expression, get back a plain-English description and the next run times in any timezone. Pure and offline — it explains schedules, it doesn't run them.

// try it
// response
// response appears here
GET /v1/explain https://cron.benjamin-dreier.de
// parameters
expr* text cron expression (minute hour day-of-month month day-of-week) */15 9-17 * * 1-5
tz text IANA timezone for the run times (optional, defaults to UTC) Europe/Berlin
n text how many upcoming run times to return (optional, 1-20) 5
// example request
curl 'https://cron.benjamin-dreier.de/v1/explain?expr=%2A%2F15+9-17+%2A+%2A+1-5&n=5&tz=Europe%2FBerlin'
// example response
{
  "expression": "*/15 9-17 * * 1-5",
  "description": "Every 15 minutes, from 09:00 to 17:59, on Monday through Friday",
  "fields": {
    "minute": "*/15", "hour": "9-17",
    "day_of_month": "*", "month": "*", "day_of_week": "1-5"
  },
  "timezone": "Europe/Berlin",
  "next_runs": [
    "2026-07-07T09:00:00+02:00",
    "2026-07-07T09:15:00+02:00"
  ]
}

OpenAPI spec → — drop it into your own client or codegen.

// what is cron

The Cron Explainer reads a standard 5-field cron expression and hands back a plain-English sentence plus the next real run times in the timezone you care about. No more decoding */15 9-17 * * 1-5 in your head or second-guessing whether a job fires at 09:00 or 09:15.

It's useful anywhere cron syntax turns up: crontab lines, CI/CD schedules, Kubernetes CronJob specs, or backup jobs you set up once and never want to misread again. Because it also computes the upcoming runs in any IANA timezone, it's the fastest way to sanity-check a schedule before you ship it. It explains and previews schedules — it never executes anything.

// the five fields (and operators)
minute 0-59
hour 0-23
day of month 1-31
month 1-12 or JAN-DEC
day of week 0-6 (Sun-Sat) or SUN-SAT
* , - */n any value · list · range · every n
// examples
* * * * * every minute
*/15 * * * * every 15 minutes
0 9 * * 1-5 at 09:00, Monday through Friday
0 0 * * * every day at midnight
30 3 1 * * 03:30 on the 1st of every month
0 */6 * * * every 6 hours, on the hour
STATUS: busy LOCATION: Hamburg, DE MAIL: hello@bendre.org FUEL: ▓▓▓▓░ energy drink