Cron Expression Validator & Explainer — Free
Runs 100% in your browser — your files never leave your device.
A cron string is compact but easy to misread before deploying a scheduled job. Enter the minute, hour, day-of-month, month, and day-of-week fields to validate the syntax and see a plain-English description of when it runs.
How it works
- 1
Enter a five-field cron
- 2
Fix any validation error
- 3
Read and copy the schedule
About this tool
The five fields, decoded
A cron line reads minute, hour, day-of-month, month, day-of-week — each field a number, a list, a range, or a step. The generator builds the expression from plain-English choices, so the classic syntax errors (mixing up day-of-month and day-of-week, off-by-one hours) never happen.
The expressions everyone reuses
Every minute: * * * * *. Daily at midnight: 0 0 * * *. Every hour on the half hour: 30 * * * *. Weekdays at 9: 0 9 * * 1-5. First of the month: 0 0 1 * *. The generator produces these and the less memorable ones — quarterly, third Tuesday, every six hours.
Test before you schedule
Cron runs in the server's timezone — a 9 AM schedule built in one timezone fires at another. Verify the expression against the target machine's clock, and remember cron does not catch up: a job missed while the server was down simply did not run.
Frequently asked questions
What is the difference between day-of-month and day-of-week?
They filter independently unless both are restricted — cron ORs them when both have values, which surprises everyone. Restrict only one, or read your cron implementation's documentation carefully.
Why did my job run at the wrong hour?
Timezone. Cron uses the system clock, and servers default to UTC. Check the server's timezone, or shift the hours in the expression to match.
Can cron run a job every 90 minutes?
Not directly — cron fields cannot express 90 minutes. Step values (*/2, */3) divide hours evenly; for 90-minute cycles, use a scheduler that supports intervals beyond the hour.