ToolWren logo ToolWren
ToolWrenGuides › How to Read a Cron Expression (with Examples)

How to Read a Cron Expression (with Examples)

Data · Developers · Updated 14 August 2026

Cron is the scheduling syntax used by Linux, CI pipelines, cloud functions and countless apps to run tasks automatically. A cron expression looks intimidating — 0 9 * * 1-5 — but it is really just five fields in a fixed order. Once you know the order, they are easy to read.

The five fields

A standard cron expression has five space-separated fields, always 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). So 0 9 * * 1-5 reads as "at minute 0 of hour 9, every day of the month, every month, on days 1 through 5 (Mon–Fri)" — i.e. 9:00 am on weekdays. Paste any expression into our cron expression explainer to see it translated into plain English.

The special characters

Four symbols do most of the work. * means "every" (every minute, every hour, and so on). A comma lists values (1,15,30). A hyphen gives a range (1-5). And a slash sets a step — */15 in the minute field means "every 15 minutes". Combining them covers almost any schedule you need.

Common examples

A few you will see constantly: * * * * * runs every minute; 0 * * * * runs at the top of every hour; 0 0 * * * runs once a day at midnight; 0 0 * * 0 runs weekly on Sunday; and */5 * * * * runs every five minutes. When in doubt, check it with the cron tool before deploying — a wrong field can mean a job runs far more (or less) often than you intended.

Watch out for the two "day" fields

The most common cron mistake is the overlap between day of month and day of week. If you set both to something other than *, most cron implementations run the job when either matches, not both — which can trigger it on unexpected days. Keep one of them as * unless you specifically want that behaviour.

Timezones and timestamps

Cron runs in the server's timezone, so a "9 am" job may fire at a different local time than you expect. When debugging when a job last ran or will run next, the Unix timestamp converter helps translate log times, and the date add/subtract and date difference tools help you reason about intervals.

More guides