Cron Job Explorer
Paste a crontab or CronJob YAML: plain-English schedules, DST-exact next runs, herds and overlaps.
Try an example: Crontab + Kubernetes CronJob with run history (Berlin) · DST weekend: fall-back night 25 Oct 2026
How it works
Paste crontab lines (5-field, @daily macros, 6-field with seconds, Quartz with ? L W #), Kubernetes CronJob YAML or GitHub Actions schedules, plus an optional run-history CSV. Get a plain-English description and the next runs of every job in any IANA time zone with correct DST handling, minutes where many jobs start at once, overlapping schedules, jobs that run longer than their interval and failure/retry statistics.
- Fields: 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); lists, ranges, steps (*/n, a-b/n, a/n). @yearly, @monthly, @weekly, @daily/@midnight and @hourly are expanded; @reboot has no time schedule.
- Day matching follows Vixie cron/cronie: when both day-of-month and day-of-week are restricted (neither starts with "*"), a day matches if EITHER matches; if one starts with "*" (including "*/2"), both must match.
- 6-field lines with a leading seconds field are detected automatically; "?", L, W and # select Quartz semantics (day-of-week 1–7 with 1 = Sunday, L = last day, 15W = nearest weekday, 6#3 = third Friday, 5L = last Thursday, optional year field).
- Next runs are computed by walking local calendar days in the job’s time zone and converting each matching wall-clock time to UTC with Intl (IANA tz database). DST, cronie rules: fixed-time jobs scheduled in a skipped hour run right after the switch and run only once in a repeated hour; jobs with "*" in the minute or hour field follow the new wall clock (skip the gap, run in both passes of a repeated hour). The "wall-clock" policy skips non-existent times and runs repeated times twice.
- Herd minutes: within the analysis window, start times of all jobs are bucketed per minute; minutes with at least the threshold of distinct jobs are reported. Overlaps list job pairs sharing start minutes.
- Run history: per job, runs, failures, timeouts, retries (status contains "retr", attempt > 1, or a failed run followed by a new start before the next scheduled run), duration statistics, missed scheduled runs between first and last recorded start, and whether the p95 duration exceeds the shortest interval between scheduled runs (overlapping self-runs). Peak concurrency uses the p95 durations (1 minute when unknown).
- Kubernetes CronJob: metadata.name, spec.schedule, spec.timeZone, suspend and concurrencyPolicy are read; GitHub Actions on.schedule cron entries are always UTC.
Sources
- crontab(5) — cronie (field ranges, names, step values, @macros, CRON_TZ, day-of-month/day-of-week OR rule) (man7.org)
- cron(8) — cronie (daylight saving time handling) (man7.org)
- Kubernetes CronJob (schedule syntax, timeZone, concurrencyPolicy) (Kubernetes)
- Quartz CronTrigger tutorial (? L W #, 1 = SUN) (Quartz Scheduler)
- GitHub Actions: events that trigger workflows — schedule (UTC) (GitHub Docs)
- IANA Time Zone Database (IANA)
For scripts and AI agents
- JSON API:
POST https://cronjobexplorer.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://cronjobexplorer.usefulweb.site/mcp· tool namecron_job_explorer
Example request
curl -s -X POST https://cronjobexplorer.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{…see OpenAPI examples…}'Related tools
- TimeFair Meeting Planner – Find fair meeting times across time zones, with DST-exact local times and rotation.
- CI/CD Failure Explorer – Paste CI logs from several runs: root cause per run, grouped signatures, top causes and fixes.