Cron syntax explained
A standard cron expression has five fields separated by spaces. Read it from left to right: minute, hour, day of month, month and day of week. A job runs whenever the current time matches every field.
| Field | Allowed values | Example |
|---|---|---|
| Minute | 0 to 59 | 30 means half past the hour |
| Hour | 0 to 23 | 14 means 2 PM |
| Day of month | 1 to 31 | 1 means the first day of the month |
| Month | 1 to 12 or JAN to DEC | 6 or JUN means June |
| Day of week | 0 to 6 or SUN to SAT (7 is also Sunday) | 1-5 means Monday to Friday |
Special characters
| Character | Meaning | Example |
|---|---|---|
| * | Every value | * in the hour field runs every hour |
| , | A list of values | 1,15 runs on the 1st and 15th |
| - | A range of values | 9-17 means 9 AM through 5 PM |
| / | A step | */10 in minutes runs every 10 minutes |
Shortcuts such as @daily, @weekly, @monthly and @hourly also work in the tool above.
Common cron expression examples
Select any example to load it into the generator and see its next run times.
| Expression | Meaning |
|---|---|
| * * * * * | Every minute. |
| */5 * * * * | Every 5 minutes. |
| */30 * * * * | Every 30 minutes. |
| 0 * * * * | Every hour, on the hour. |
| 0 */6 * * * | Every 6 hours, on the hour. |
| 0 0 * * * | At 00:00, every day. |
| 30 2 * * * | At 02:30, every day. |
| 0 9 * * 1-5 | At 09:00, on weekdays (Monday through Friday). |
| 0 9,17 * * 1-5 | At 09:00 and 17:00, on weekdays (Monday through Friday). |
| */15 9-17 * * 1-5 | Every 15 minutes, between 09:00 and 17:59, on weekdays (Monday through Friday). |
| 0 8 * * 1 | At 08:00, on Monday. |
| 0 0 * * 0 | At 00:00, on Sunday. |
| 0 0 1 * * | At 00:00, on day 1 of the month. |
| 0 12 1,15 * * | At 12:00, on days 1 and 15 of the month. |
| 0 0 1 1 * | At 00:00, on day 1 of the month, in January. |
Common cron mistakes
- Forgetting the time zone. Servers and cloud schedulers often run in UTC, so a job set for 09:00 may run at a different local time.
- Setting both day fields. When day of month and day of week are both set, the job runs when either matches, not only when both do.
- Using * in the minute field by accident.
* 9 * * *runs 60 times between 09:00 and 09:59, not once. - Adding a seconds field. Some tools use six fields, but standard cron uses five.
Where cron schedules are used
Cron drives scheduled reports, data syncs, backups, price and stock monitoring, cleanup jobs and CI/CD pipelines. Reliable scheduled jobs also need logging, retries and alerts, which I cover in the monitoring and observability blueprint. If you want scheduled workflows built and maintained for you, see my business process automation services.