A cron expression is a five-field syntax — minute hour day-of-month month day-of-week — used by the Unix cron daemon to schedule when a recurring job runs. It's a de facto standard (there's no single RFC; behavior follows the traditional Vixie cron implementation and its crontab(5) man page) shared by nearly every Unix-like scheduler, and imitated by tools far beyond the original daemon — CI pipelines, Kubernetes CronJobs, and cloud schedulers all accept the same five-field syntax.
Each field accepts a value, a range, a list, a step, or a wildcard:
0 and 7 mean Sunday)* — any value, — a list (1,15)- — a range (9-17)/ — a step (*/15 = every 15 units)A job runs only in the minute where all five fields match the current time simultaneously. When both day-of-month and day-of-week are restricted (not ), most cron implementations run the job if either* condition matches — a frequent source of confusion. Many modern schedulers also support non-standard shorthand like @daily or @hourly, which are convenience aliases, not part of the original five-field grammar.
Example:
30 2 * * 1-5 → 02:30, every weekday (Monday–Friday)
*/15 * * * * → every 15 minutes
0 0 1 * * → midnight on the 1st of every month
0 0 13 * 5) triggers on the OR of both, not the AND most people expect.0 and 7 for Sunday is common when porting expressions between systems.