X Xerobit

Cron Schedule Examples — Common Cron Expressions for Any Interval

Cron expressions schedule recurring jobs. Here's a reference of common cron schedules: every minute, hourly, daily, weekly, monthly, and business hours — with explanations for...

Mian Ali Khalid · · 5 min read
Use the tool
Cron Builder
Build and parse cron expressions with human-readable explanations.
Open Cron Builder →

Cron expressions define recurring job schedules using five fields: minute, hour, day-of-month, month, and day-of-week. Here’s a practical reference for the most common scheduling patterns you’ll need.

Use the Cron Builder to build and validate cron expressions visually.

Cron format

* * * * *
│ │ │ │ └── Day of week (0–7, Sunday=0 or 7)
│ │ │ └──── Month (1–12)
│ │ └────── Day of month (1–31)
│ └──────── Hour (0–23)
└────────── Minute (0–59)

Special characters:

  • * — every value in the field
  • , — list of values (1,15,30)
  • - — range (1-5)
  • / — step (*/5 = every 5)

Common schedule reference

Every minute

* * * * *

Use for: health checks, very frequent polling.

Every 5 minutes

*/5 * * * *

Use for: frequent sync jobs, webhook retries.

Every 15 minutes

*/15 * * * *
0,15,30,45 * * * *   (equivalent)

Every 30 minutes

*/30 * * * *
0,30 * * * *         (equivalent)

Every hour (at :00)

0 * * * *

Use for: hourly reports, session cleanup, cache invalidation.

Every hour at :30

30 * * * *

Use for: offset from on-the-hour to spread load.

Every 2 hours

0 */2 * * *

Every 6 hours

0 */6 * * *
0 0,6,12,18 * * *   (equivalent)

Daily at midnight (00:00)

0 0 * * *

Use for: daily aggregation, database backups, report generation.

Daily at 6 AM

0 6 * * *

Use for: morning digest emails, daily batch imports.

Daily at 11:30 PM

30 23 * * *

Use for: end-of-day processing, before-midnight reports.

Twice daily (midnight and noon)

0 0,12 * * *

Business hours only (9-5, every hour)

0 9-17 * * 1-5

1-5 = Monday through Friday. Runs at 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00.

Every weekday at 9 AM

0 9 * * 1-5

Every Monday at 8 AM

0 8 * * 1

Use for: weekly summary emails, weekly cleanup jobs.

Every Monday at midnight

0 0 * * 1

Every Sunday at 3 AM

0 3 * * 0

Use for: weekly backups (run when load is lowest).

First day of every month

0 0 1 * *

Use for: monthly billing, monthly reports.

Last day of the month

Cron has no “last day” symbol directly. Use the 28th as a safe approximation (always exists):

0 0 28 * *

Or use a script that checks if tomorrow is the 1st:

0 0 * * * [ $(date -d tomorrow +%d) -eq 1 ] && /path/to/script.sh

First Monday of every month

Cron can’t express this directly. Workaround:

0 0 1-7 * 1

This runs every Monday in the first 7 days of the month, which is always the first Monday.

Quarterly (January, April, July, October)

0 0 1 1,4,7,10 *

Use for: quarterly reports, quarterly data exports.

Yearly (January 1st at midnight)

0 0 1 1 *

Use for: annual reports, year-start resets.

Every weekday at 9 AM and 5 PM

0 9,17 * * 1-5

Every 10 minutes during business hours

*/10 9-17 * * 1-5

System cron shorthand (@keywords)

Many cron implementations support @ shortcuts:

ShorthandEquivalentMeaning
@reboot(on startup)Run once on system boot
@yearly0 0 1 1 *Once a year
@annually0 0 1 1 *Same as @yearly
@monthly0 0 1 * *Once a month
@weekly0 0 * * 0Once a week (Sunday)
@daily0 0 * * *Once a day (midnight)
@midnight0 0 * * *Same as @daily
@hourly0 * * * *Once an hour
# System crontab entries:
@daily /usr/local/bin/backup.sh
@weekly /usr/local/bin/weekly-report.sh
@reboot /usr/local/bin/start-service.sh

Six-field cron (with seconds)

Some systems (Quartz, GitHub Actions, AWS EventBridge) support a 6-field format with seconds as the first field:

* * * * * *
│ │ │ │ │ └── Day of week
│ │ │ │ └──── Month
│ │ │ └────── Day of month
│ │ └──────── Hour
│ └────────── Minute
└──────────── Second
0/30 * * * * *  → Every 30 seconds
0 0 12 * * ?    → Every day at noon (Quartz syntax, ? = no specific value)
0 15 10 ? * MON-FRI  → 10:15 AM every weekday (Quartz)

GitHub Actions schedule examples

on:
  schedule:
    # Every day at 8 AM UTC:
    - cron: '0 8 * * *'
    
    # Every Monday at 9 AM UTC:
    - cron: '0 9 * * 1'
    
    # Every 6 hours:
    - cron: '0 */6 * * *'

Note: GitHub Actions uses UTC. Add/subtract hours for your timezone.


Related posts

Related tool

Cron Builder

Build and parse cron expressions with human-readable explanations.

Written by Mian Ali Khalid. Part of the Dev Productivity pillar.