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.
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.
*WildcardMatches every possible value for that field.
- * in minute = every minute
- * in hour = every hour
,List separatorSpecifies multiple distinct values.
- 1,3,5 in day-of-week = Mon, Wed, Fri
- 6,12,18 in hour = 6 AM, noon, 6 PM
-RangeSpecifies a continuous range of values.
- 1-5 in day-of-week = Mon through Fri
- 9-17 in hour = 9 AM through 5 PM
/StepSpecifies 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.
| Expression | Description | Common use case |
|---|---|---|
* * * * * | Every minute | Polling, health checks, near-real-time processing |
*/5 * * * * | Every 5 minutes | Frequent data sync, metric collection |
*/10 * * * * | Every 10 minutes | Cache warming, lightweight monitoring |
*/15 * * * * | Every 15 minutes | Moderate data sync, session cleanup |
*/30 * * * * | Every 30 minutes | Report generation, feed updates |
0 * * * * | Every hour at :00 | Hourly summaries, rate limit resets |
0 0 * * * | Every day at midnight | Daily database cleanup, log rotation |
0 6 * * * | Every day at 6:00 AM | Morning data import, overnight batch completion |
0 9 * * * | Every day at 9:00 AM | Daily email digests, morning reports |
0 18 * * * | Every day at 6:00 PM | End-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 * * 1 | Every Monday at 9:00 AM | Weekly kickoff email, weekly report generation |
0 0 * * 0 | Every Sunday at midnight | Weekly database vacuum, weekly archive |
0 0 * * 1-5 | Every weekday at midnight | Business-day cleanup, overnight processing |
0 8 * * 1-5 | Every weekday at 8:00 AM | Morning briefing emails, business-hours batch start |
*/15 9-17 * * 1-5 | Every 15 min during business hours (weekdays) | Active-hours polling, SLA monitoring during business hours |
0 2 * * 0 | Every Sunday at 2:00 AM | Weekly maintenance window, full backups |
0 0 1 * * | First day of every month at midnight | Monthly invoicing, subscription renewals, monthly reports |
0 9 15 * * | 15th of every month at 9:00 AM | Mid-month statements, payroll processing |
0 0 L * * | Last day of every month at midnight | Month-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 1st | Annual data archiving, yearly report generation |
0 0 * * 1#1 | First Monday of every month | Monthly 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.
| String | Equivalent | Description |
|---|---|---|
@yearly | 0 0 1 1 * | Run once a year at midnight on January 1st |
@annually | 0 0 1 1 * | Alias for @yearly |
@monthly | 0 0 1 * * | Run once a month at midnight on the first of the month |
@weekly | 0 0 * * 0 | Run once a week at midnight on Sunday |
@daily | 0 0 * * * | Run once a day at midnight |
@midnight | 0 0 * * * | Alias for @daily |
@hourly | 0 * * * * | Run once an hour at the beginning of the hour |
@reboot | — | Run 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.
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.