</> ConvertAtlas Developer Tools
Web

Understanding Cron Expressions Without the Guesswork

How the five cron fields work, the gotchas that cause jobs to fire at the wrong time, and how to read any schedule.

* * * * * min hour dom mon dow

Cron is the standard way to schedule recurring jobs on Unix systems and in countless CI and orchestration tools. Its five-field syntax is compact but famously easy to misread, and a misread schedule means a job that runs at the wrong time — often unnoticed until something important is missed or duplicated.

* * * * * min hour dom mon dow
The five cron fields, in order: minute, hour, day of month, month, day of week.

The five fields

A standard cron expression has five space-separated fields, in this order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where 0 is Sunday). An asterisk means "every" value for that field.

Special syntax

  • Asterisk (*) — every value.
  • Step (*/5) — every 5th value; in the minute field, every five minutes.
  • Range (1-5) — an inclusive range, e.g. Monday to Friday in the day-of-week field.
  • List (1,15,30) — specific values.

The classic gotchas

Two mistakes cause most misfires. First, the day-of-week numbering: 0 is Sunday, and people often assume 1 is Monday (it is) but forget Sunday can also be 7 on some systems. Second, when both day-of-month and day-of-week are set, many cron implementations run the job when either matches, not both — which can fire far more often than intended.

Try it: Cron Expression ParserTranslate cron expressions into plain English and build new schedules.

Read before you deploy

The safest habit is to translate any cron expression into plain English before shipping it. "0 9 * * 1" reads as "at 09:00 on Monday" — confirming that in words takes a second and prevents a whole class of silent scheduling bugs.