CRON Expression Syntax — Fields, Wildcards, and Common Errors

💡A cron expression is a schedule made of ordered time fields: minute, hour, day of month, month, and day of week. Use ToolDock CRON Parser to verify what each field means before shipping a job.

Pattern Examples

Every 15 minutes

❌ Wrong

15 * * * * node jobs/aggregate.js

✅ Fixed

*/15 * * * * node jobs/aggregate.js

A literal `15` means only minute 15, not every 15 minutes.

Every Sunday at 03:00

❌ Wrong

0 3 * * * /srv/app/maintenance.sh

✅ Fixed

0 3 * * 0 /srv/app/maintenance.sh

You need a day-of-week value to target Sunday.

First day of month at 06:05

❌ Wrong

5 6 * * 1 ruby sync_flags.rb

✅ Fixed

5 6 1 * * ruby sync_flags.rb

The third field targets the calendar day, not weekday 1.

Test Your Schedule

Real-World Usage

App maintenance jobs

0 3 * * 0 /srv/app/maintenance.sh

Weekly maintenance relies on correct day-of-week placement.

Analytics batch pipeline

*/15 * * * * node jobs/aggregate.js

Step values trigger a job every 15 minutes.

Feature flag sync

5 6 1 * * ruby sync_flags.rb

Monthly sync depends on the day-of-month field, not day-of-week.

Related Guides

Frequently Asked Questions

What are the five fields in a cron expression?

The five standard fields are minute, hour, day of month, month, and day of week, in that exact order.

What does `*/5` mean in cron?

It means every five units of that field, such as every five minutes in the first field.

Why do cron expressions fail so often?

Teams often confuse day-of-month with day-of-week, or they assume a literal value means a repeating interval.

All tools run in your browser. Your data never leaves your device.