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

Times are evaluated in UTC. Leave blank to start from the current time (UTC).

Results are calculated in your browser.

Supported formats

Input
text, number
Output
text

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

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

  1. 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.
  2. Evaluate each candidate instant against the fields in UTC; when both day fields are restricted, match if either matches.
  3. 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

  1. Enter a five-field cron expression (minute hour day-of-month month day-of-week).
  2. Choose how many upcoming runs to list.
  3. 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

jsonSelect to copy
{
  "expression": "*/15 9-17 * * MON-FRI",
  "count": 3,
  "reference": "2026-01-05T08:00:00.000Z"
}

First of each month at midnight

jsonSelect to copy
{
  "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

  1. POSIX crontab specification — The Open Group