How to Read a Cron Expression

Learn what each of the five cron fields means, how stars, ranges, lists, and steps work, and how to read the schedule and next run times of any crontab line.

5 min read Updated Jul 2026

Quick Answer

A cron expression is a five-field pattern that says when a scheduled job runs. This cron expression parser turns cron to english: it gives the cron schedule as plain text, counts how often it fires, and shows the cron next run time. Paste a line like */15 * * * * and you get the "cron expression explained" in a sentence, plus the next five runs. It reads any line you inherit or write, and unlike a crontab generator it never sends your input anywhere. Some people call this a cron translator or crontab parser.

Try The Cron Expression Parser →

What the Five Cron Fields Mean

To read what a cron expression means, take the fields left to right. What each of the five cron fields means is fixed: minute (0 to 59), hour (0 to 23), day-of-month (1 to 31), month (1 to 12 or names like JAN), and day-of-week (0 to 6, where 0 and 7 are both Sunday). A star in a field means every value it can take. So 30 9 * * 1 reads as minute 30, hour 9, any day, any month, on Monday: it runs at 09:30 every Monday.

Each cron field accepts more than a single number. How a star, range, list, and step change a cron field is the heart of the syntax. A range like 1-5 covers 1 through 5. A list like 0,30 picks just those values. And cron step values, written with a slash such as */15, mean every 15th value from the minimum. The tool expands cron ranges and steps into the exact set of values before working out the schedule. From that set it can also find the next run time of a cron job, stepping forward from now until it hits the first matching minute.

Examples

Every 15 minutes. For example, */15 * * * * runs every 15 minutes, which is 96 times a day.

A daily backup. For example, 0 3 * * * runs at 03:00 every day, a common slot for an overnight job.

Weekdays only. For example, 0 9 * * 1-5 runs at 09:00 Monday through Friday, using a range in the day-of-week field.

Star vs Value, Step vs Range

Two comparisons clear up most confusion. A star versus a specific value is the difference between "every" and "exactly one": * in the hour field means all 24 hours, while 9 means only 09:00. A step value versus a plain range is subtler. A plain range like 0-30 in the minute field matches every minute from 0 to 30. Add a step, 0-30/10, and it thins that range to 0, 10, 20, and 30. On its own, */10 applies the step across the whole field. Reading these correctly is the difference between a job that runs once and one that runs dozens of times.

Common Mistakes