Cron Expression Generator
Validate a five-field cron expression, describe it, and list its next run times.
- Runs locally in your browser
- No upload required
Try it
Supported formats
Privacy
Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.
Upcoming run times for a five-field cron expression, evaluated in UTC from an explicit or current reference instant.
How it works
- Split the expression into the five standard fields.
- Expanded ranges, lists, steps, and month/day names into value sets.
- Scanned forward minute by minute (bounded to one year) for matching UTC instants.
- Cron uses UTC and runs the day-of-month and day-of-week rules with OR semantics when both are restricted.
Methodology
- Parse the five fields (minute, hour, day-of-month, month, day-of-week) using the POSIX crontab field grammar, including lists, ranges, steps, and names.
- Evaluate each candidate instant against the fields in UTC; when both day fields are restricted, match if either matches.
- Stop after one year if no instant matches, rather than looping forever.
Time model
- Time source: UTC.
- Timezone: Cron fields are evaluated in UTC and run times are rendered in UTC with a Z offset. UTC is the default and is stated on the page and in the interactive result.
- Locale: Month and weekday names are the English POSIX three-letter names; no locale-specific names are accepted.
- Daylight saving: UTC has no daylight-saving transitions; daylight-saving shifts in other zones are ignored.
- Reference date: Optional reference instant. When omitted, the current instant is read from the visitor's environment at runtime; runs are still evaluated and reported in UTC.
Usage
- Enter a five-field cron expression (minute hour day-of-month month day-of-week).
- Choose how many upcoming runs to list.
- Read the description and the next run times.
Examples
These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.
Every 15 minutes on weekday business hours
{
"expression": "*/15 9-17 * * MON-FRI",
"count": 3,
"reference": "2026-01-05T08:00:00.000Z"
}First of each month at midnight
{
"expression": "0 0 1 * *",
"count": 2,
"reference": "2026-01-15T00:00:00.000Z"
}Limitations
Reading a cron field
A field is a comma list of items. Each item is a single value, a range (1-5), a step (*/15 or 1-30/5), or a wildcard. Month and day-of-week accept three-letter names.
Why UTC matters
Many schedulers interpret cron in the server's local time. This tool uses UTC explicitly so that the listed run times are unambiguous.
Frequently asked questions
- When do day-of-month and day-of-week combine?
- When both fields are restricted, cron matches if either matches (OR). When only one is restricted, that one must match.
- Why is there no result for 31 February?
- If no instant matches within a year the tool reports an empty run list rather than looping forever.
Sources
- POSIX crontab specification — The Open Group
Send feedback
Tell us if this tool helped, report a problem, or suggest a tool. Only the message you type is sent — never the input you used in the tool.
Was this tool useful?
Prefer to write to us directly? See the contact page.