Cron schedules are compact but easy to misread: one wrong field and a nightly job runs every minute, or never. This tool explains any standard five-field cron expression in plain English and lists the exact times it will run next, so you can check a schedule before it goes into a crontab, Kubernetes CronJob or CI pipeline.
How it works
The five fields are minute (0–59), hour (0–23), day of the month (1–31), month (1–12 or JAN–DEC) and day of the week (0–7 or SUN–SAT, where both 0 and 7 mean Sunday). A job runs whenever the current time matches every field.
* means every value. A comma lists values (1,15), a dash gives a range (9-17), and a slash sets a step: */15 in the minute field means every 15 minutes, and 0-30/10 means minutes 0, 10, 20 and 30.
When both day of the month and day of the week are restricted, standard cron runs the job if either one matches, not both. 0 9 1 * 1 runs at 09:00 on the 1st of each month and also every Monday, which surprises many people.
Run times are shown in the scheduler's own clock. Most servers and cloud schedulers use UTC unless configured otherwise, so a 0 9 * * * job runs at 09:00 UTC, which is 14:00 in Pakistan and 12:00 in Saudi Arabia.
A worked example
*/15 9-17 * * 1-5 means every 15 minutes between 09:00 and 17:59, Monday through Friday. Starting Thursday 1 October 2026, it runs at 09:00, 09:15, 09:30 and so on up to 17:45: 36 times each weekday, which works out to 792 runs over the next 30 days.
Questions people ask
What does * * * * * mean in cron?
Every minute of every hour of every day. Each * means "any value" for its field, so nothing restricts when the job runs.
How do I run a cron job every 5 minutes?
Use */5 * * * *. The */5 in the minute field means every fifth minute starting from 0: :00, :05, :10 and so on.
How do I schedule a job for weekdays only?
Put 1-5 in the last field. For example, 0 9 * * 1-5 runs at 09:00 Monday through Friday. Use MON-FRI if your system accepts names.
Why does my cron job run at the wrong time?
Usually the scheduler's timezone. Servers and managed schedulers often run in UTC. Check the system or scheduler timezone setting, or convert the time you want into UTC before writing the expression.
Does this work for Quartz or AWS cron expressions?
This tool reads standard five-field cron. Quartz and Spring add a seconds field at the start, and AWS EventBridge adds a year field and uses ? differently. Remove the extra field to check the rest of the schedule here.