Cron Next Run Calculator
Calculate the next N execution times for a cron expression from the current time.
Inputs
Standard 5-field cron syntax; supports *, ranges, steps (*/n) and comma lists
Next Run Time
2026-08-10 08:00:00 UTC
Upcoming Run Times
2026-08-10 08:00:00 UTC 2026-08-10 12:00:00 UTC 2026-08-10 16:00:00 UTC 2026-08-10 20:00:00 UTC 2026-08-11 00:00:00 UTC
Occurrences Found
5
Step by step
Values used
Cron Expression (min hour dom month dow) = 0 */4 * * *; Number of Next Occurrences to Show = 5; Start From = Now (current server time)
Day-of-month / day-of-week matching rule
A candidate day matches if: (DOM='*' AND DOW='*') OR (DOM='*' AND dow_matches) OR (dow='*' AND dom_matches) OR (dom_matches OR dow_matches) when both are restricted
Next Run Time
= 2026-08-10 08:00:00 UTC
Upcoming Run Times
= 2026-08-10 08:00:00 UTC 2026-08-10 12:00:00 UTC 2026-08-10 16:00:00 UTC 2026-08-10 20:00:00 UTC 2026-08-11 00:00:00 UTC
Occurrences Found
= 5
How it works
A cron expression's 5 fields (minute, hour, day-of-month, month, day-of-week) each define a set of matching values, and a candidate minute must satisfy all fields — except for the classic cron quirk where, if both day-of-month and day-of-week are restricted (not '*'), a match on either field alone is sufficient (an OR rather than AND between just those two fields). This calculator walks forward minute-by-minute from the current time, checking each candidate against the parsed field sets, until it finds the requested number of upcoming matches — the same effective logic the cron daemon itself uses to decide when to fire.
Formula
Day-of-month / day-of-week matching rule
A candidate day matches if: (DOM='*' AND DOW='*') OR (DOM='*' AND dow_matches) OR (dow='*' AND dom_matches) OR (dom_matches OR dow_matches) when both are restricted
Frequently Asked Questions
Why does '0 0 15 * 1' run on both the 15th of the month AND every Monday?
This is a well-known cron quirk: when both day-of-month and day-of-week are restricted to specific values (not '*'), cron treats them as an OR, not an AND. So this expression fires at midnight on the 15th of every month, and separately at midnight every Monday — not only on Mondays that happen to be the 15th.
What timezone does this calculator use for 'now'?
It calculates relative to the current server/browser time context in which this calculator runs. Real crontabs run in the timezone configured for the cron daemon (often UTC or system-local time, sometimes overridable per-job via a CRON_TZ variable in modern cron implementations) — always verify against the actual server's `date` and cron configuration for production scheduling decisions.
Does this support special cron strings like @daily or @reboot?
No — this calculator expects standard 5-field cron syntax (minute hour dom month dow). Special strings like @daily, @hourly or @reboot are shorthand supported by some cron implementations (like cron/vixie-cron) but would need to be translated to their 5-field equivalent first (e.g. @daily = '0 0 * * *') before using this calculator.