katlab tools/cron

Cron Expression Parser · crontab explained

Type a cron schedule and see what it means in plain English — plus the next run times in your time zone and UTC.

Everything runs locally in your browser. Nothing is sent to a server.

Next 10 runs

Local ()UTCIn

Cron syntax cheat sheet

FieldAllowed valuesSpecial characters
minute0–59* , - /
hour0–23* , - /
day of month1–31* , - /
month1–12 or JAN–DEC* , - /
day of week0–7 or SUN–SAT (0 and 7 = Sunday)* , - /

* means "every". 1-5 is a range, 1,15 a list, */10 a step ("every 10th"), and they combine: 0-30/10 means 0, 10, 20, 30. Shortcuts @yearly, @monthly, @weekly, @daily, @midnight and @hourly are also accepted.

Common cron examples

The day-of-month / day-of-week trap

When both the day-of-month and day-of-week fields are restricted, classic cron runs the job when either matches — not both. 0 0 13 * 5 fires at midnight on every Friday and on the 13th of every month, not only on Friday the 13th. This tool follows that standard Vixie cron behaviour, and the explanation calls it out so you can spot it.

Which time zone?

The cron daemon uses the machine's local time. Cloud servers and containers usually run on UTC, while your laptop doesn't — which is why a "9 am" job can land in your inbox at midnight. The next-runs table shows both your browser's local time and UTC so the difference is obvious.

Is anything uploaded?

No. Parsing and scheduling math run entirely in this page — you can load it once and use it offline.

What about seconds or years (6/7-field cron)?

Quartz and some schedulers add a seconds field (and sometimes a year). This tool targets the standard 5-field crontab used by Linux cron, GitHub Actions, Kubernetes CronJobs and most CI systems. If you paste a 6-field Quartz expression, it will tell you rather than guess.