Cron expressions look cryptic until you break them down. Once you know what each position means, they’re intuitive. Here’s a practical reference with the most common patterns developers actually use.
Cron Format: 5 Fields
A cron expression has 5 fields, left to right:
┌──────────── minute (0–59)
│ ┌────────── hour (0–23)
│ │ ┌──────── day (1–31)
│ │ │ ┌────── month (1–12)
│ │ │ │ ┌──── day of week (0–6, Sun=0)
│ │ │ │ │
* * * * *
Common Patterns Reference
Run Every Minute
* * * * *
Every minute of every hour, every day. Use sparingly — this can overwhelm your system.
Run Every 5 Minutes
*/5 * * * *
The */5 means “every 5 units.” Works for any field.
Run Every Hour
0 * * * *
At minute 0 of every hour. At 1:00, 2:00, 3:00, etc.
Run Twice Daily (9 AM and 5 PM)
0 9,17 * * *
Comma-separated values: at 9:00 and 17:00 every day.
Run Every Day at Midnight
0 0 * * *
Minute 0, hour 0 (midnight), every day.
Run Every Day at 9:30 AM
30 9 * * *
Minute 30, hour 9, every day.
Run Every Weekday at 8 AM
0 8 * * 1-5
Mon–Fri at 8:00. 1-5 is a range.
Run Every Monday at 6 PM
0 18 * * 1
Minute 0, hour 18 (6 PM), Monday (1).
Run Every First of the Month at Midnight
0 0 1 * *
Day of month = 1. Triggers at midnight on the 1st.
Run Every Quarter (1st of Jan, Apr, Jul, Oct)
0 0 1 1,4,7,10 *
Day 1 of months 1, 4, 7, and 10.
Run Every 15 Minutes During Business Hours
*/15 9-17 * * 1-5
Every 15 minutes, 9 AM to 5 PM, Monday through Friday.
Run Every Sunday at 2 AM
0 2 * * 0
Sunday = 0. Good for weekly maintenance tasks.
Special Characters
| Character | Meaning | Example |
|---|---|---|
* | Every value | * * * * * = every minute |
, | List of values | 0 9,12 * * * = 9 AM and noon |
- | Range of values | 0 9-17 * * * = every hour 9 AM–5 PM |
/ | Step values | */5 * * * * = every 5 minutes |
L | Last day (day/month) | L * * * = last day of month |
# | Nth occurrence | * * * * 2#1 = first Monday |
W | Nearest weekday | 0 9 15W * * = nearest weekday to 15th |
Real-World Examples
Data Sync Every Hour
0 * * * *
At the top of every hour.
Database Backup Daily at 2 AM
0 2 * * *
Run once a day at 2 AM — low traffic window.
Send Weekly Digest Every Monday at 9 AM
0 9 * * 1
Every Monday at 9:00.
Cleanup Job Every Sunday at 3 AM
0 3 * * 0
Sunday = 0. Good for log rotation or cache clearing.
Monthly Report on the 1st at 6 AM
0 6 1 * *
First of every month at 6:00 AM.
Summary
Cron has 5 fields: minute, hour, day, month, day-of-week. Use * for every, , for lists, - for ranges, and / for steps. Common patterns: 0 * * * * (hourly), 0 9 * * * (daily at 9 AM), 0 9 * * 1-5 (weekdays at 9 AM).
Build any cron expression with the Cron Expression Generator — describe what you want in plain text and copy the result.