DevToolbox
Quick Reference

Cron Schedule Examples

20+ copy-paste cron expressions with plain-English explanations. Covers every minute, hourly, daily, weekly, and monthly schedules — plus syntax rules and special strings.

Parse your cron expression →

Cron Syntax Overview

A standard cron expression consists of five space-separated fields. Each field controls a different unit of time.

*   *   *   *   *
Minute
0–59
30 = at :30
Hour
0–23
9 = 9 AM
Day of month
1–31
15 = 15th
Month
1–12
3 = March
Day of week
0–7
1 = Monday

Day of week: 0 and 7 both represent Sunday. 1=Monday through 6=Saturday.

Special Characters

These four characters let you express ranges, lists, and step values within any field.

*Wildcard

Matches every possible value for that field.

  • * in minute = every minute
  • * in hour = every hour
,List separator

Specifies multiple distinct values.

  • 1,3,5 in day-of-week = Mon, Wed, Fri
  • 6,12,18 in hour = 6 AM, noon, 6 PM
-Range

Specifies a continuous range of values.

  • 1-5 in day-of-week = Mon through Fri
  • 9-17 in hour = 9 AM through 5 PM
/Step

Specifies a step value within a range. */n means every n units.

  • */5 in minute = every 5 minutes
  • */2 in hour = every 2 hours

Common Cron Schedule Examples

Copy any expression directly into your crontab, CI/CD config, or scheduler. All expressions use standard 5-field cron syntax unless noted.

ExpressionDescriptionCommon use case
* * * * *Every minutePolling, health checks, near-real-time processing
*/5 * * * *Every 5 minutesFrequent data sync, metric collection
*/10 * * * *Every 10 minutesCache warming, lightweight monitoring
*/15 * * * *Every 15 minutesModerate data sync, session cleanup
*/30 * * * *Every 30 minutesReport generation, feed updates
0 * * * *Every hour at :00Hourly summaries, rate limit resets
0 0 * * *Every day at midnightDaily database cleanup, log rotation
0 6 * * *Every day at 6:00 AMMorning data import, overnight batch completion
0 9 * * *Every day at 9:00 AMDaily email digests, morning reports
0 18 * * *Every day at 6:00 PMEnd-of-day summaries, daily backups
0 0,12 * * *Twice a day (midnight and noon)Bi-daily data sync, periodic snapshot
0 6,18 * * *Twice a day (6 AM and 6 PM)Morning and evening batch jobs
0 9 * * 1Every Monday at 9:00 AMWeekly kickoff email, weekly report generation
0 0 * * 0Every Sunday at midnightWeekly database vacuum, weekly archive
0 0 * * 1-5Every weekday at midnightBusiness-day cleanup, overnight processing
0 8 * * 1-5Every weekday at 8:00 AMMorning briefing emails, business-hours batch start
*/15 9-17 * * 1-5Every 15 min during business hours (weekdays)Active-hours polling, SLA monitoring during business hours
0 2 * * 0Every Sunday at 2:00 AMWeekly maintenance window, full backups
0 0 1 * *First day of every month at midnightMonthly invoicing, subscription renewals, monthly reports
0 9 15 * *15th of every month at 9:00 AMMid-month statements, payroll processing
0 0 L * *Last day of every month at midnightMonth-end reporting (requires Quartz or extended cron)
0 0 1 1,4,7,10 *Quarterly (first of Jan, Apr, Jul, Oct)Quarterly reports, financial summaries, quarterly cleanup
0 0 1 1 *Once a year on January 1stAnnual data archiving, yearly report generation
0 0 * * 1#1First Monday of every monthMonthly team briefings (requires extended cron)

Special Strings

Most cron implementations support shorthand strings as replacements for common expressions. These are more readable than the numeric equivalent.

StringEquivalentDescription
@yearly0 0 1 1 *Run once a year at midnight on January 1st
@annually0 0 1 1 *Alias for @yearly
@monthly0 0 1 * *Run once a month at midnight on the first of the month
@weekly0 0 * * 0Run once a week at midnight on Sunday
@daily0 0 * * *Run once a day at midnight
@midnight0 0 * * *Alias for @daily
@hourly0 * * * *Run once an hour at the beginning of the hour
@rebootRun once at system startup (not a time-based schedule)

Verify your cron expression

Paste any cron expression and see a field-by-field breakdown of exactly what it does.

Parse your cron expression →

Cron FAQ

Common questions about cron syntax, scheduling, and platform support.

What are the five fields in a cron expression?+

A standard cron expression has five fields separated by spaces: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where both 0 and 7 are Sunday). For example, '0 9 * * 1-5' means every weekday at 9:00 AM.

What does */ mean in cron?+

The */ notation means 'every N units'. For example, */5 in the minute field means every 5 minutes, */2 in the hour field means every 2 hours, and */3 in the month field means every 3 months. It is shorthand for a step over a range.

What is the difference between 0 and 7 for day of week in cron?+

Both 0 and 7 represent Sunday in cron. The values 1 through 6 represent Monday through Saturday. The duplication of Sunday (0 and 7) is a historical quirk and both are widely supported. Using 0 is the most common convention.

How do I run a cron job at multiple specific times?+

Use a comma-separated list in the relevant field. For example, '0 6,12,18 * * *' runs at 6 AM, 12 PM, and 6 PM daily. '0 9 * * 1,3,5' runs at 9 AM on Monday, Wednesday, and Friday.

What does @reboot mean in cron?+

@reboot is a special cron string that runs the job once when the system starts. It is equivalent to running a command at system boot. It is supported by most modern cron implementations including Vixie cron (used on most Linux distributions).

Does cron support seconds?+

Standard Unix cron does not support a seconds field — the minimum granularity is one minute. Some job schedulers like Quartz (Java), Spring's @Scheduled, and AWS EventBridge support a six-field format with seconds as the first field. Always check your specific scheduler's documentation.