Almost everyone who runs a backend has stared at a line like */15 9-17 * * 1-5 and half-remembered what it does. Cron’s syntax is compact, which is its great virtue and its great trap: five tiny fields encode a recurring schedule, and a single misplaced character can turn “every weekday afternoon” into “every minute, forever.” This guide reads a cron expression the way the daemon does — field by field — so the next time you meet one you can decode it on sight.

The five fields

A standard cron expression is five whitespace-separated fields, always in this order:

┌───────────── minute (0–59)

│ ┌─────────── hour (0–23)