Cron Schedule Auditor
A cron expression describes a start, not how long a job occupies a shared worker or resource. Enter multiple five-field jobs with expected durations to see their next starts, overlapping run windows and idle gaps. The audit scans real UTC instants and matches each one in the chosen time zone, so nonexistent spring-forward wall times are omitted and repeated fall-back wall times appear twice.
Key features
- Validate a strict five-field numeric cron subset and reject unsupported macros/names/seconds
- Calculate next five starts per job with IANA time-zone wall clocks and explicit DST skip/repeat behavior
- Intersect expected fixed-duration windows to find simultaneous and partial collisions
- Merge busy intervals to identify idle gaps longer than a chosen threshold
- Download a complete bounded JSON audit of occurrences, collisions and gaps
How to use
- Load an overlap, DST or month-end example or enter one to eight cron expressions.
- Set a UTC start instant, IANA time zone, elapsed-day horizon, expected duration and idle-gap threshold.
- Run the audit; correct any unsupported field or range error shown with its job and field number.
- Compare next starts, overlap intervals and idle gaps, then inspect repeated fall-back wall times.
- Download the JSON report when you need to share the bounded calculation.
Use cases
- Spot two maintenance jobs scheduled for the same worker at once
- Find an expected idle window between recurring batch tasks
- Review a 02:30 schedule through a spring DST change
- Detect two 01:30 starts on a fall DST transition
- Check that a day-31 schedule skips short months
Frequently asked questions
Which cron syntax is accepted?
Exactly five numeric fields: minute 0–59, hour 0–23, day-of-month 1–31, month 1–12 and weekday 0–6 (Sunday 0). Use *, comma lists, inclusive ranges and */n or range/n steps. Names, Sunday 7, ?, L, W, #, macros, seconds and command text are rejected.
How are the day-of-month and weekday fields combined?
Month always has to match. If both day fields are written as non-* expressions, either day field may match (OR). With one literal *, only the other day field filters. This explicit policy avoids silently guessing other cron dialects.
What happens at daylight-saving changes?
The tool enumerates UTC minutes strictly after the chosen UTC start and matches their wall-clock fields in the selected IANA zone. A spring time that never occurs gets no run; a repeated fall time gets two runs with distinct UTC instants and offsets. This is a modeling policy, not a promise about a particular cron daemon.
What do collisions and gaps mean?
Each start occupies a half-open interval from start through start plus its expected fixed duration. Any overlap, including two jobs starting together, is a collision. Gaps are intervals with no expected job running whose length is greater than the threshold, including window edges. Actual runtimes and resource capacity are not measured.
How far ahead can I audit?
One to 62 elapsed UTC days, at most eight jobs and 5,000 occurrences; excessive collision or gap output is also rejected. The whole audit fails rather than truncating an incomplete result. Future time-zone rules may change with the browser’s IANA data.
Privacy
Schedules are calculated locally in the browser. No cron daemon is contacted, no job is executed, and input is not uploaded. Download is initiated only when you choose it.
Comments & questions