👨‍💻 Developer · Free

Cron, before it
runs 1,440 times.

Plain English, plus the actual next run times — the only proof the expression means what you think.

▶︎ How to use — watch it work on real numbers

Free crontab generator and explainer

Cron syntax is five fields and endless opportunity for quiet disaster. This crontab builder translates any expression into plain English and — the part that actually saves you — lists the next real run times. Reading "0 3 * * 1" and believing it means Monday at 3am is a guess; seeing the next five Mondays at 03:00 is proof.

The mistake everyone makes once

Write * 3 * * * instead of 0 3 * * * and your job doesn't run at 3am — it runs every minute for the whole 3am hour, sixty times. The next-run list shows 03:00, 03:01, 03:02 and the mistake becomes obvious in a second. This tool warns you outright when an expression fires more than a few dozen times a day, because that is almost never what anyone meant.

The day-of-week trap

When both day-of-month and day-of-week are restricted, cron combines them with OR, not AND. So 0 0 1 * 1 runs on the 1st of every month and every Monday — not "only Mondays that fall on the 1st". Almost everyone gets this backwards, so the tool flags it when your expression hits that case. It also handles steps (*/15), ranges (1-5), lists (1,15), names (MON, JAN) and shorthands like @daily.

Why does my job run every minute?
The minute field is an asterisk. * 3 * * * runs 60 times during the 3am hour; you wanted 0 3 * * *.
Do day-of-month and weekday combine with AND?
No — with OR, when both are restricted. 0 0 1 * 1 runs on the 1st and on every Monday.
Which timezone are the times in?
Your browser's local zone — shown above the list. Your server is probably on UTC; check before trusting it.

Related: RegEx Tester · JWT Decoder · Data Converter