00 — HISTORY
Born to watch the clock
Cron is older than most of the cloud. A short timeline of how a Bell Labs daemon became the schedule language you still type today.
- 1975
Bell Labs beginnings
Cron appears at AT&T Bell Laboratories — a clock daemon that wakes each minute and runs matching lines from a single system crontab. Ken Thompson is credited with the original; the name is a slip of “chrono-” (from Greek chronos, time).
- 1979
Unix V7 & multi-user cron
Ships with Version 7 Unix as a root-only service. At Purdue, researchers rebuild it for many users — sleep until the next job instead of busy-polling — then bring that design back to Bell Labs for System V.
- 1980s–90s
Everywhere Unix went
Per-user crontabs, the crontab command, and the familiar five-field syntax spread across System V, BSD, Solaris, and friends. POSIX later freezes the core language: *, lists, ranges, and steps.
- Today
Same idea, new hosts
The five-field heartbeat still powers Linux boxes — and echoes in Kubernetes CronJobs, GitHub Actions, AWS EventBridge, and Quartz. Dialects differ; the mental model does not.
01 — MODEL
Cron asks five questions every minute
It doesn't loop. Each minute the clock is checked. If every field says yes, the job runs.
- 1Is this minute allowed?
- 2Is this hour allowed?
- 3Is this day of month allowed?
- 4Is this month allowed?
- 5Is this weekday allowed?
All five yes → run. That's the entire engine.
02 — FIELDS
Left to right, always
Memorize the order once. Click a field below to see what it controls.
minute
0–59
When in the hour
03 — OPERATORS
Four symbols. That's the whole language.
Select one — see a real schedule.
*Any
Every value in this field.
Every minute, forever
04 — READING
Say it as a sentence
Fill the blanks. That's how you decode any expression in seconds.
At [minute] past [hour], on [day] of [month], if weekday is [weekday].
→ At :00 past 9, any day/month, Mon–Fri → weekdays at 9 AM
→ Every 5th minute, any hour → every 5 minutes
05 — CHEAT SHEET
The schedules you'll actually use
Click any row to copy. This is ~90% of production crons.
06 — TRAPS
What breaks in production
Syntax is easy. These are the landmines.
Timezone surprise
Crontab uses the host clock. K8s and cloud jobs are often UTC. Confirm before you ship.
Day + weekday together
On Linux, both set usually means OR, not AND. Prefer one field unless you know the dialect.
Quartz wants seconds
Spring @Scheduled is 6 fields. A Linux 5-field paste will break or fire wrong.
AWS needs ? and cron()
EventBridge: cron(…), six fields, and ? in day-of-month or day-of-week.
07 — DRILL
Write it before you peek
1 of 4 — muscle memory beats scrolling.
Backup every night at 2:30 AM
Hint: minute then hour; leave the rest as *
Build something real
Validate, preview next runs, switch platforms.
Open builder