Cron expression parser
What is a Cron Expression Parser?
Cron expressions schedule jobs on Linux servers, in Kubernetes CronJobs, GitHub Actions, cloud schedulers and countless job frameworks. They are compact but cryptic: */15 9-17 * * 1-5 is hard to read at a glance. This parser explains an expression in plain English and checks that it is valid before you deploy it.
How to use it
- Paste a cron expression.
- Read the plain-English description and any validation errors.
- Check the upcoming run times if shown, to confirm the schedule does what you intend.
The five fields
minute hour day-of-month month day-of-week
- Minute 0 to 59, hour 0 to 23, day of month 1 to 31, month 1 to 12, day of week 0 to 6 (0 or 7 is Sunday).
*any value,,list,-range,/step.
Examples
0 2 * * *: every day at 02:00.*/15 9-17 * * 1-5: every 15 minutes from 09:00 to 17:45, Monday to Friday.0 0 1 * *: at midnight on the first day of every month.30 6 * * 1: every Monday at 06:30.@dailyequals0 0 * * *;@hourlyequals0 * * * *.
Common pitfalls
- Day of month OR day of week: in standard cron, if both fields are restricted, the job runs when either matches.
0 0 13 * 5runs on every 13th and every Friday, not only on Friday the 13th. - Time zone: cron uses the server's time zone, often UTC in containers and cloud services.
- Six-field formats: Quartz and Spring add a seconds field at the start, so the same five-field expression means something different there.
Frequently Asked Questions
What does */5 mean in cron?
Every 5 units of that field. In the minute field, */5 runs at minutes 0, 5, 10 and so on.
Which time zone does cron use?
The system time zone of the machine or service running it, which is often UTC in containers and cloud schedulers.
Why does my job run more often than expected?
If you restrict both day of month and day of week, standard cron runs when either one matches.
Is Sunday 0 or 7?
Both are accepted by most cron implementations.