CalculatorsConvertersDeveloperTextAll toolsDirectory
Submit your tool Sign in
Theme
Home/Answers/Developer
How-to

How do I figure out what a cron expression means?

Short answer

Paste the expression into a browser-based cron parser and it translates the five fields into plain English, like "0 3 * * 1" meaning 3:00 AM every Monday, along with the next run times. It is the fastest way to check a schedule before it fires at the wrong hour, and it runs entirely in your browser.

Five fields, read left to right

A standard cron expression has five fields: minute, hour, day of month, month, and day of week. An asterisk means every value, slashes give steps so */15 in the minute field means every 15 minutes, and commas and dashes give lists and ranges. The notation is compact but easy to misread, which is why translating it to plain English plus a list of upcoming run times catches mistakes before they ship.

The classic gotchas

Two things bite people repeatedly. First, in classic cron, if both the day-of-month and day-of-week fields are restricted, the job runs when either one matches, not both. Second, cron runs in the timezone of the machine or scheduler, so a job written for 3 AM local time fires at a different wall-clock hour on a UTC server. A parser that shows concrete next-run timestamps makes both problems visible.

Step by step

  1. Paste the expression. Paste the cron expression into the parser.
  2. Read the translation. The tool explains the schedule in plain English, locally in your browser.
  3. Check the next runs. Verify the upcoming run times match what you intended, or use the builder to compose a new schedule.

Frequently asked questions

What do the five fields mean?

In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, Sunday is 0).

What does */5 mean?

A step value: every 5 units of that field. In the minute field it means every 5 minutes.

What timezone does cron use?

The timezone of the system or scheduler running it, which is often UTC on servers. Always check before assuming local time.

Related answers