Cron special strings: @reboot, @daily, @hourly and when to use them
Most cron daemons support eight special strings as shorthand for common schedules: @reboot, @yearly, @annually, @monthly, @weekly, @daily, @midnight, and @hourly. They're easier to read than numeric expressions but hide important details about exactly when the job runs.
How this is calculated
@reboot runs once at system startup. It's uniquely useful because there's no numeric cron expression for run once after boot. @daily and @midnight both expand to 0 0 * * *. @hourly expands to 0 * * * *. @weekly expands to 0 0 * * 0. @monthly expands to 0 0 1 * *. @yearly and @annually both expand to 0 0 1 1 *. The catch: these shortcuts only work in system-level crontabs (/etc/crontab) and user crontabs on systems running Vixie cron or cronie (most Linux distributions). They don't work in BusyBox cron (Alpine Linux, minimal containers) or on macOS (which uses launchd, not cron, by default). For portable scripts and Docker containers, use explicit 5-field expressions.
Verdict
@reboot is the one special string genuinely worth using because it has no numeric equivalent. @daily and friends are fine for personal Linux servers but avoid them in portable scripts, Dockerfiles, and anything that might run under BusyBox. Explicit expressions always work.
More Cron scenarios
Frequently asked questions
What is a Cron Job?
What do the 5 parts of a cron expression mean?
What does the asterisk (*) mean in Cron?
How do I run a task every 5 minutes?
Related tools
Unix Timestamp
Convert between Unix timestamps and human-readable dates.
Use tool ➜CHMOD Configurator
Calculate Linux file permissions using checkboxes, octal numbers, or symbolic notation.
Use tool ➜Text Encoding Converter
Convert between Text, Base64, Binary, Hexadecimal, and Decimal formats.
Use tool ➜