Skip to content

Cron Parser

Validate a classic five-field cron expression, explain its selected fields, and calculate the next five matching times.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Enter exactly five fields in minute, hour, day-of-month, month, and day-of-week order.
  2. 2.Use numeric values, * wildcards, comma lists, inclusive ranges, or steps such as */15.
  3. 3.Read the normalized expression, field summary, and next five local and UTC run times.
  4. 4.Confirm the expression against the documentation and time zone of the scheduler that will execute it.

About Cron Parser

Cron expressions are compact, but their compactness hides mistakes. A single field in the wrong position can move a task from every hour to every day, and a valid-looking day rule can behave differently than an ordinary calendar filter. Cron Parser checks the classic numeric five-field crontab format: minute, hour, day of month, month, and day of week. It accepts an asterisk wildcard, comma-separated lists, inclusive numeric ranges, and positive steps on a wildcard or range. After validation, it normalizes extra spacing, summarizes what each field selects, and calculates the next five matching instants. Results are shown in the browser's local time and also as ISO UTC timestamps so they can be compared across systems.

Each field is checked against the conventional range used by Cronie-style crontab files. Minutes run from 0 through 59, hours from 0 through 23, days of the month from 1 through 31, months from 1 through 12, and weekdays from 0 through 7. Both 0 and 7 are normalized to Sunday. Lists may combine individual values and ranges, such as 0,15,30,45 or 8-12. A step such as */10 selects every tenth value beginning at the field minimum, while 10-50/20 selects 10, 30, and 50. Descending ranges, zero steps, empty list items, values outside the field range, extra command text, and anything other than exactly five fields are rejected with a focused error.

The day fields require special attention. In traditional cron behavior, if both day of month and day of week are restricted, a time can match when either field matches. For example, a rule selecting the 21st day of the month and Monday can run on every Monday as well as on the 21st. When one day field is a wildcard, the restricted field controls the match. Cron Parser follows that documented OR behavior. It also uses UTC internally to enumerate candidate minutes, avoiding daylight-saving jumps inside the calculation, then formats results for the viewer. This makes the algorithm deterministic, but it does not change the time zone configured on the scheduler where a job will actually run.

This tool deliberately targets the portable numeric core rather than every cron dialect. It does not accept names such as JAN or MON, nicknames such as @daily, seconds or year fields, Quartz question marks, last-day syntax, hashed schedules, random ranges, or vendor-specific macros. Those features vary across Cronie, Vixie cron, systemd timers, Kubernetes, Quartz, cloud schedulers, and CI services. A five-field expression used in a six- or seven-field service can mean something else or be rejected. Always check the documentation for the exact scheduler and deployment environment.

Upcoming-run calculation scans forward by whole minutes and stops if five matches cannot be found within five years. That safety bound prevents a malformed or extremely sparse input from locking the browser. Calendar validity is handled by JavaScript Date, so day 31 naturally skips months without a 31st and February rules respect leap years. The parser does not execute commands, contact a server, or save expressions. Treat its output as a verification aid: confirm the production scheduler's time zone, daylight-saving policy, day-field semantics, and supported extensions before deploying a critical backup, billing, notification, or maintenance job.

Methodology & sources

Tokenizes exactly five fields, expands validated numeric wildcard/list/range/step syntax into unique value sets, normalizes weekday 7 to Sunday 0, applies documented day-of-month/day-of-week OR semantics, and scans bounded UTC minute instants for future matches.

Frequently asked questions

Does this parser support Quartz or six-field cron?
No. It targets classic numeric five-field crontab syntax. Quartz, cloud schedulers, and other products may add seconds, years, question marks, or different weekday rules.
What happens when both day-of-month and weekday are set?
Traditional cron matches when either restricted day field matches. The parser follows that OR behavior rather than requiring both fields.
Which time zone is used?
The next-run engine enumerates UTC instants and displays them in your browser's local time. Your actual scheduler uses its own configured time zone, which you must verify separately.

Developer Tools guides

View all