Parse and understand cron schedule expressions
At 9:00 AM, on Monday through Friday
Cron Parser takes a standard cron expression and translates it into a plain-English schedule so you can see exactly when a job will run. Paste an expression like "*/15 9-17 * * 1-5" and the tool decodes each of the five fields (minute, hour, day-of-month, month, day-of-week), expands operators such as *, ranges (1-5), steps (*/15), and lists (1,15,30), and returns a readable summary along with the next upcoming run times.
It is built for developers, DevOps engineers, and sysadmins who write crontab entries, Kubernetes CronJobs, or CI/CD schedules and want to confirm the timing before deploying. Everything runs in your browser, so it is handy for quickly sanity-checking a cron line copied from a config file, a Jenkins job, or a cloud scheduler.
A standard cron expression has five space-separated fields, read left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 and 7 both mean Sunday). Each field accepts an asterisk (*) meaning "every value," a specific number, a comma-separated list like "1,15,30," a range like "9-17," and a step like "*/5" (every fifth value) or "0-30/10." The parser expands each field into the concrete set of matching values and then describes the combined schedule.
To compute the next run times, the tool walks forward from the current time, testing each candidate minute against all five field sets; a time matches only when every field is satisfied. Note the day-of-month and day-of-week interaction: in standard cron, when both fields are restricted (neither is *), the job runs when EITHER matches, not both. For example, "0 0 13 * 5" fires on the 13th of the month and on every Friday. Some fields also support named values like JAN-DEC and SUN-SAT, which the parser normalizes to their numeric equivalents before evaluating.
The parser targets the classic five-field Unix/Vixie cron format (minute, hour, day-of-month, month, day-of-week). Six-field variants that add a leading seconds field, used by some schedulers like Quartz or Spring, may not parse correctly here.
The slash is a step operator. "*/15" in the minute field means every 15 minutes starting at 0, so it fires at minutes 0, 15, 30, and 45. You can also apply steps to a range, like "0-30/10" for minutes 0, 10, 20, and 30.
In standard cron, if both the day-of-month and day-of-week fields are restricted (not *), the schedule matches when either condition is true. This OR behavior often causes extra runs, so keep one of the two fields as * unless you specifically want that combined behavior.
In the day-of-week field, 0 is Sunday. The value 7 is also accepted as Sunday for compatibility, and the days run 0=Sunday through 6=Saturday.
Yes, it is completely free with no sign-up. Parsing happens entirely in your browser using client-side JavaScript, so your cron expressions are never uploaded or stored on a server.
This tool focuses on the five-field numeric syntax. Shorthand macros such as @yearly, @monthly, @daily, @hourly, and @reboot are shortcuts your cron daemon expands, and are best entered as their equivalent five-field expressions (for example, @daily equals "0 0 * * *").
Common causes are a value outside a field's range (like minute 60 or month 13), too many or too few fields, or an unsupported character. Check that you have exactly five fields separated by single spaces and that each number falls within its allowed range.