cron is the time-based job scheduler of Unix and Unix-like systems: a daemon that wakes up regularly and runs commands at times its users have specified in advance. The cron(8) manual page describes the program, traditionally named crond, as “a daemon to execute scheduled commands.” It searches for crontab files, “examines all stored crontabs and checks each job to see if it needs to be run in the current minute,” and runs the ones that are due. A backup is run nightly, a report mailed every Monday, a cache cleared every hour, all without a human present.
The schedule for each command lives in a crontab (cron table) file. Each active line has five time-and-date fields followed by the command to run. The crontab(5) manual page lists the fields and their allowed values: minute (0-59), hour (0-23), day of month (1-31), month (1-12, or names), and day of week (0-7, where 0 or 7 is Sunday, or use names). A field may hold a single value, a list, a range, or an asterisk meaning “any.” This compact five-column grammar is one of the most recognizable pieces of syntax in system administration.
An early cron shipped with Unix in the 1970s, but the version that became the common ancestor of today’s implementations was rewritten by Paul Vixie in the 1980s. The man pages carry his name and email in their AUTHOR sections, and the crontab(5) page notes that its format follows “the V7 standard, with a number of upward-compatible extensions.” This “Vixie cron” lineage runs through the cronie project that maintains cron on many current Linux distributions, alongside other descendants.
cron is a clean expression of the broader Unix idea that the system should do routine work on its own. It does not know or care what the scheduled commands do; it only knows when to run them. The commands are ordinary programs and shell scripts, and the environment they run in is deliberately spare, which is a frequent source of surprise when a job that works at the terminal fails under cron because an expected variable or path is not set.
For tasks that should run once at a future time rather than on a repeating schedule, Unix offers companion tools such as at and batch. cron covers the recurring case: the same command, on the same calendar pattern, indefinitely. Decades after its creation it remains the default answer to the question of how to make a Unix machine do something every night.
The five-field crontab line has outlived most of the systems it was written for. It appears in container orchestration, in cloud function schedulers, and in countless application frameworks that borrowed the syntax wholesale, so that “a cron expression” now names a concept far beyond the original daemon.