Copy any pattern, paste into your crontab, GitHub Actions YAML, Kubernetes CronJob spec, or AWS EventBridge rule. Every expression links to the explainer so you can verify the next run times.
For monitoring, polling, queue consumption, and health checks.
| Cron | Meaning | Use case | |
|---|---|---|---|
| * * * * * | Every minute | Health checks, webhook polling | try → |
| */2 * * * * | Every 2 minutes | Log streaming, fast queue draining | try → |
| */5 * * * * | Every 5 minutes | Email fetching, cache clearing | try → |
| */10 * * * * | Every 10 minutes | Token refresh, analytics aggregation | try → |
| */15 * * * * | Every 15 minutes | SMS queue, currency rate updates | try → |
| */20 * * * * | Every 20 minutes | CDN cache invalidation | try → |
| */30 * * * * | Every 30 minutes | Stuck-transaction checks | try → |
| 30 * * * * | At minute 30 of every hour | Half-past-the-hour reports | try → |
| 45 * * * * | At minute 45 of every hour | 15-minute-before-hour syncs | try → |
For cron jobs that fire on or near the hour boundary.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 * * * * | Every hour, at minute 0 | Hourly metrics aggregation | try → |
| 0 */2 * * * | Every 2 hours (00:00, 02:00, …) | Periodic full-sync jobs | try → |
| 0 */3 * * * | Every 3 hours | Snapshot, report rotation | try → |
| 0 */4 * * * | Every 4 hours | External data pulls | try → |
| 0 */6 * * * | Every 6 hours (00, 06, 12, 18) | Secondary backup snapshots | try → |
| 0 */12 * * * | Twice daily (00:00 & 12:00) | Day/night batch swaps | try → |
| 0 0,6,12,18 * * * | At midnight, 6 AM, noon, 6 PM | Explicit 4× daily schedule | try → |
The most common batch-processing window. Pick an off-peak hour for heavy jobs.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 0 * * * | Daily at midnight | Clear /tmp, reset daily limits | try → |
| 0 1 * * * | Daily at 1 AM | Yesterday's traffic reports | try → |
| 0 2 * * * | Daily at 2 AM | Primary database backup | try → |
| 0 3 * * * | Daily at 3 AM | SSL renewal, log rotation | try → |
| 15 3 * * * | Daily at 3:15 AM | Log archiving to S3 Glacier | try → |
| 30 4 * * * | Daily at 4:30 AM | Cache pre-warming | try → |
| 0 6,18 * * * | Twice daily at 6 AM and 6 PM | Shift-change snapshots | try → |
| 0 9 * * * | Daily at 9 AM | Morning notifications | try → |
| 0 12 * * * | Daily at noon | Lunchtime newsletter blast | try → |
| 0 17 * * * | Daily at 5 PM | End-of-day reports | try → |
| 0 23 * * * | Daily at 11 PM | Late-night cleanup | try → |
Day-of-week field: 0 or 7 = Sunday, 1 = Monday, … 6 = Saturday.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 0 * * 0 | Every Sunday at midnight | Aggressive cleanups, defrag | try → |
| 0 0 * * 1 | Every Monday at midnight | Weekly reset, sprint start | try → |
| 0 12 * * 1 | Every Monday at noon | Weekly company newsletter | try → |
| 30 2 * * 0 | Every Sunday at 2:30 AM | Database reindexing | try → |
| 0 23 * * 6 | Every Saturday at 11 PM | Weekly security scan | try → |
| 0 0 * * 6 | Every Saturday at midnight | Code deployments, deep indexing | try → |
| 0 0 * * 1,4 | Mon and Thu at midnight | Bi-weekly SSL renewal checks | try → |
| 0 0 * * 0,6 | Weekends only (Sat & Sun) | Weekend-only maintenance | try → |
| 0 0 * * 1-5 | Every weekday (Mon–Fri) | Business-day workflows | try → |
| 0 9 * * MON-FRI | 9 AM Mon–Fri (named) | Standup reminders | try → |
For invoices, subscriptions, payroll, and end-of-month closings.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 0 1 * * | 1st of every month at midnight | Subscription billing, invoicing | try → |
| 0 0 15 * * | 15th of every month at midnight | Mid-month accounting cutoff | try → |
| 0 0 1,15 * * | 1st and 15th at midnight | Bi-weekly payroll | try → |
| 0 9 1 * * | 1st of every month at 9 AM | Monthly report email | try → |
| 0 0 28 * * | 28th of every month | Safe "near month-end" trigger | try → |
| 0 0 1-7 * 1 | First Monday of the month (approx) | Monthly all-hands meeting | try → |
| 0 0 22-28 * 5 | Last Friday of the month (approx) | Month-end deployment | try → |
| 0 0 */5 * * | Every 5 days (1, 6, 11, 16, 21, 26, 31) | Periodic cleanup | try → |
For tax filings, archival, quarter-end closings.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 0 1 1 * | Jan 1 at midnight (yearly) | Annual reset, year-end archive | try → |
| 0 0 1 */3 * | Quarterly (Jan, Apr, Jul, Oct on the 1st) | Quarterly financial close | try → |
| 0 22 31 3,6,9,12 * | End of each quarter at 10 PM | Quarter-end reconciliation | try → |
| 0 0 1 1,7 * | Jan 1 and Jul 1 (semi-annual) | Bi-annual key rotation | try → |
| 0 0 1 JAN,JUN * | Jan 1 and Jun 1 (named) | Same as above, named months | try → |
| 0 0 25 12 * | Dec 25 every year | Holiday-aware schedule reset | try → |
For real-time syncs, lead distribution, and customer-facing automations.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 9 * * 1-5 | 9 AM Mon–Fri | Morning standup reminder | try → |
| 0 17 * * 1-5 | 5 PM Mon–Fri | End-of-day reports | try → |
| 0 9-17 * * 1-5 | Hourly 9 AM–5 PM weekdays | Live CRM sync, ticket polling | try → |
| */30 9-17 * * 1-5 | Every 30 min in business hours | Real-time lead distribution | try → |
| */15 9-17 * * 1-5 | Every 15 min in business hours | Fast SLA tracking | try → |
| 0 9-18/2 * * 1-5 | Every 2 hours, 9 AM–7 PM weekdays | Periodic queue draining | try → |
| 30 17,18 * * 1-5 | 5:30 PM and 6:30 PM Mon–Fri | End-of-day double-check | try → |
| */10 8-10,16-18 * * 1-5 | Every 10 min during rush hours | Commute-hour traffic spikes | try → |
For batch jobs that need quiet servers.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0 0-5 * * * | Hourly between midnight and 5 AM | Off-peak heavy processing | try → |
| */15 0-5 * * * | Every 15 min between midnight and 5 AM | Aggressive nightly cleanup | try → |
| */15 0-5 * 10-12 * | Same, only in Oct/Nov/Dec | Q4 holiday-traffic prep | try → |
| 0 0 * * 0,6 | Every weekend day at midnight | Weekend-only batch | try → |
Shortcuts supported by most Unix-like cron daemons. Don't work in AWS EventBridge or Azure NCRONTAB.
| Macro | Equivalent | Use case | |
|---|---|---|---|
| @yearly | 0 0 1 1 * — once a year | Annual archive | try → |
| @annually | Alias for @yearly | Same as above | try → |
| @monthly | 0 0 1 * * — first of month | Monthly billing | try → |
| @weekly | 0 0 * * 0 — Sunday midnight | Weekly digest | try → |
| @daily | 0 0 * * * — midnight | Daily cleanup | try → |
| @midnight | Alias for @daily | Same as above | try → |
| @hourly | 0 * * * * — top of hour | Hourly metrics | try → |
| @reboot | At system startup | Auto-start daemons on boot | try → |
For Java Quartz Scheduler, Spring's @Scheduled, and AWS EventBridge. Not supported in standard Unix cron. See the Quartz tool.
| Cron (Quartz) | Meaning | Use case | |
|---|---|---|---|
| 0 0 0 L * ? | Last day of every month at midnight | Month-end accounting close | try → |
| 0 0 0 LW * ? | Last weekday of every month | Skips weekends for month-end | try → |
| 0 0 0 15W * ? | Nearest weekday to the 15th | Mid-month, skip weekends | try → |
| 0 0 0 ? * 2#2 | Second Monday of every month | Monthly leadership meeting | try → |
| 0 0 0 ? * 6#1 | First Friday of every month | Monthly retrospective | try → |
| 0 0 0 ? * 6L | Last Friday of every month | End-of-month deploy window | try → |
| 0 0 12 ? * MON-FRI | Noon Mon–Fri (Quartz) | Java app lunch-time job | try → |
| 0 0/30 9-17 ? * MON-FRI | Every 30 min during business hours | Java app real-time sync | try → |
Use the comma separator to fire at multiple distinct points.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 0,15,30,45 * * * * | At :00, :15, :30, :45 | Every quarter-hour (= */15) | try → |
| 0 8,12,17 * * * | 8 AM, noon, 5 PM | Three meals reminder | try → |
| 0 9,12,15 1,15 * * | 9 AM, noon, 3 PM on 1st & 15th | Payroll audit intervals | try → |
| 0 0 1,15,31 * * | 1st, 15th, 31st (skips short months) | Tri-monthly close | try → |
| 0 0 * 1,4,7,10 * | Daily at midnight in Jan/Apr/Jul/Oct | Quarter-month dailies | try → |
Ranges (-) and steps (/) compose for precise control.
| Cron | Meaning | Use case | |
|---|---|---|---|
| 10-40/15 * * * * | At minutes 10, 25, 40 (every 15 within 10–40) | Sparse within an hour | try → |
| 1-30/10 * * * * | At minutes 1, 11, 21 (every 10 in first half) | First-half-of-hour polling | try → |
| 0 1/2 * * * | At odd hours (1, 3, 5, …, 23) | Alternating with another job | try → |
| 0 9-17/2 * * 1-5 | Every 2h within 9 AM–5 PM weekdays | Periodic biz-hour checks | try → |
| 15 22 1-7 * 1 | 10:15 PM on the first Monday (approx) | Late-night monthly task | try → |
| 0 0 * 1-3 * | Daily at midnight in Q1 only | Tax-season script | try → |