ByteBox / Tools / Cron Explainer

Cron Expression Explainer

Understand any cron schedule in plain English with the next 10 run times.

Last updated: May 10, 2026
0 9 * * 1-5
Next 10 Runs
Common Presets

What is a Cron Expression?

Cron is a time-based job scheduler found in Unix-like operating systems including Linux, macOS, and BSD. It automates repetitive tasks such as backups, log rotation, data syncing, and system maintenance. A cron expression consists of 5 whitespace-separated fields — minute, hour, day of month, month, and day of week — that together define exactly when a task (or "cron job") should execute. Special characters like * (every), , (list), - (range), and / (step) let you create schedules as simple as "every minute" or as complex as "quarter-hourly on the first Monday of every month."

Field Reference

Minute (0–59) · Hour (0–23) · Day of Month (1–31) · Month (1–12) · Day of Week (0–6, where 0 and 7 both represent Sunday). Use * for "every possible value" in that field. Combine numbers with special characters — */5 means "every 5th unit", 1,15 means "the 1st and the 15th", and 1-5 means "the range 1 through 5". Day-of-week names are also supported in many cron implementations: SUN through SAT (three-letter abbreviations).

Cron Syntax Reference

Each of the five fields accepts a specific numeric range: minute 0–59, hour 0–23, day of month 1–31, month 1–12, and day of week 0–6 (Sunday=0). Beyond plain numbers, cron supports four special characters that compose into flexible schedules. The asterisk * acts as a wildcard meaning "every" value for that field — * in the hour field means every hour. The comma , creates a list: 1,15 in the minute field fires at minutes 1 and 15. The hyphen - defines an inclusive range: 1-5 in the day-of-week field means Monday through Friday. The step operator / skips intervals: */10 in the minute field fires every 10 minutes, and 0-30/5 fires every 5 minutes during the first half-hour only. Step values can be combined with either a wildcard or a range on the left side of the slash, giving you fine-grained control over execution timing.

Common Cron Patterns

Several scheduling patterns appear so frequently that many cron implementations provide shorthand aliases (often called cron special strings). @daily expands to 0 0 * * * — run once per day at midnight. @hourly expands to 0 * * * * — run at the start of every hour. @weekly expands to 0 0 * * 0 — run once per week at midnight on Sunday. @monthly expands to 0 0 1 * * — run at midnight on the first day of every month. @yearly (or @annually) expands to 0 0 1 1 * — run at midnight on January 1st. For raw expressions: * * * * * runs every minute, */5 * * * * every 5 minutes, 0 9 * * 1-5 weekdays at 9 AM, and 0 0 * * 1 every Monday at midnight. This tool's presets section includes all of these for one-click testing and validation.

If you work with APIs, configuration files, or structured data, check out the JSON Formatter & Validator for beautifying and debugging JSON payloads, or the Fake Data Generator for populating test databases with realistic dummy records. Both tools pair well with cron-driven development and testing workflows.