Cron Expression Explainer

Build or explain a five-field cron schedule and preview the next runs in local time.

Inputs stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Explain controls

Showing an example. Edit to see your own.

Five fields in order: minute, hour, day of the month, month, day of the week.

Each run is printed in this browser's local time zone.

Processed in your browser. Your inputs stay on this device.

How to use Cron Expression Explainer

  1. Paste the five-field expression, for example */15 9-17 * * 1-5.
  2. Read the field table, which shows what each field asks for and what that means in words.
  3. Check the next run times, calculated with this browser's clock and time zone.
  4. Fix anything the page marks as unsupported, then paste the expression into crontab as usual.

Example: Cron Expression Explainer

Check a weekday office-hours schedule before adding it to crontab.

You add
Cron expression */15 9-17 * * 1-5, runs to show 5.
You get
Five weekday run times between 09:00 and 17:59, each on a quarter hour, with a field table that reads minute as every 15th minute, hour as 9 through 17, and day of the week as Monday through Friday.

Options

The five fields
Minute, hour, day of the month, month and day of the week, in that order. A seconds field, a year field, names such as JAN or MON, and the @daily shortcuts are not part of this subset and are refused with a message that says why.
Local time
The preview is built from this device's clock and time zone. A server in another zone runs the same expression at a different wall-clock time, which is the most common reason a schedule fires when nobody expected it.
Guided builder
Open Build an expression with controls. For each field, choose every value, specific values, a range or every N values, then use the expression. Existing five-field validation applies. If both day fields are restricted, a match in either field runs the job.

Supported inputs and limits

The page accepts the standard five-field subset: numbers, *, ranges such as 9-17, steps such as */15 or 10-50/5, and comma lists. It refuses a seconds field, a year field, month or weekday names, and the L, W, # and ? operators, because those behave differently between cron implementations. The preview is calculated in this browser's local time zone and stops after the selected three, five or eight matching runs or one year, whichever comes first. It explains the expression; it does not connect to a server, read a crontab, or prove that a job is running.

Where your input is processed

This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Reading a cron line left to right

A cron line asks five questions in order: which minute, which hour, which day of the month, which month, and which day of the week. Each answer is a set, written as one number, a range, a list, or a step that walks through a range. The job runs on every minute that satisfies all five sets at once, with one exception: when both day fields are restricted, a match in either field is enough. That exception explains most schedules that fire more often than their author expected. Local time adds the second trap, since a server in another zone runs the same expression at a different hour.

Questions about Cron Expression Explainer

Why was my six-field expression refused?

A six-field expression adds seconds, which only some cron implementations accept. This page sticks to the five-field form so an explanation here matches a standard crontab. Remove the seconds field and paste it again.

How do the day-of-month and day-of-week fields combine?

In the usual cron rule, when both fields are restricted the job runs on days that match either one. The field table states which case applies, and it matters: 0 0 1 * 1 runs on the first of the month and on every Monday, not only on a Monday that is also the first.

Why do the preview times not match my server?

The preview uses this device's time zone. Servers usually run in UTC or in the owner's local time, so compare the zones before you trust a wall-clock time. Convert a run time with the time zone converter if you need to compare them directly.

Does the preview handle daylight saving changes?

The times come from the browser's clock, so they follow the local offset as it changes, including the hour that repeats or disappears at a switch. Cron itself only knows the clock and zone it is given, so read the preview as a picture of local time rather than a promise about a particular server.

Can it explain @daily or @reboot?

No. Those shortcuts belong to a particular cron implementation, and this page stays with the five-field form so the explanation holds wherever it is used.

Project manager: Tony Hines · Content updated 30 September 2026 · Report a problem