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

CharacterMeaningExample
*Every value* * * * * = every minute
,List of values0 9,12 * * * = 9 AM and noon
-Range of values0 9-17 * * * = every hour 9 AM–5 PM
/Step values*/5 * * * * = every 5 minutes
LLast day (day/month)L * * * = last day of month
#Nth occurrence* * * * 2#1 = first Monday
WNearest weekday0 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.