Crontab
Cron expression builder
Every minute.
Next runs (your local time)
The five fields
In order: minute, hour, day of month, month, day of week. Each accepts
* for every value, a number, a list like 1,15, a range like
1-5, or a step like */15. Steps combine with ranges:
9-17/2 means every second hour from 9 to 17.
The day-of-month and day-of-week trap
This is the one that catches everyone. When both day fields are restricted,
cron treats them as OR, not AND. So 0 0 1 * 1 runs on
the 1st of the month and every Monday — not only on Mondays that fall on the
1st.
They behave as AND only when one of the two is *. If you want "the first
Monday of the month", cron cannot express it directly; the usual workaround is a daily
job that checks the date and exits early.
Timezones
The preview above uses your browser's timezone. The machine running the job may well be on UTC, in which case the same expression fires at a different wall-clock time — and if the server observes daylight saving, a job scheduled inside the shifted hour can run twice or not at all. For anything time-critical, prefer UTC on the server and convert deliberately.
Non-standard extensions
Some implementations add a seconds field at the front (six fields rather than five),
and many support @hourly, @daily and @reboot.
This builder targets the standard five-field syntax, which every implementation
accepts.
This tool runs entirely in your browser. Nothing you type, paste or open is sent to util.quest or anywhere else — there is no upload and no request to make one. You can disconnect from the network and it will keep working.
Translate a cron expression into plain English and see the next times it will actually fire, so you can confirm a schedule before it goes into production rather than after it misfires at 3am.
It's one of the free tools in the util.quest collection — nothing to install, and no account needed. Found a bug or want a feature? Reach out at [email protected].