Cron Expression Examples: Cheat Sheet with 20+ Real Schedules
A cron expression is a string of 5 fields that defines a schedule. Get it wrong and your job runs at 3am on a Sunday instead of midnight on a weekday. This cheat sheet covers every common pattern. Use Mizakii's Cron Expression Generator to build, validate, and see the next 5 run times for any expression.
The 5 Fields
┌─── minute (0–59)
│ ┌─── hour (0–23)
│ │ ┌─── day of month (1–31)
│ │ │ ┌─── month (1–12)
│ │ │ │ ┌─── day of week (0–7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
Special characters:
*— every value,— list of values (e.g.1,3,5)-— range (e.g.9-17)/— step (e.g.*/15= every 15 units)
Cron Expression Examples
Every N minutes / seconds
| Expression | Meaning |
|------------|---------|
| * * * * * | Every minute |
| */2 * * * * | Every 2 minutes |
| */5 * * * * | Every 5 minutes |
| */10 * * * * | Every 10 minutes |
| */15 * * * * | Every 15 minutes |
| */30 * * * * | Every 30 minutes |
Hourly
| Expression | Meaning |
|------------|---------|
| 0 * * * * | Every hour (at :00) |
| 30 * * * * | Every hour at :30 |
| 0 */2 * * * | Every 2 hours |
| 0 */6 * * * | Every 6 hours |
| 0 */12 * * * | Twice a day (midnight and noon) |
Daily
| Expression | Meaning |
|------------|---------|
| 0 0 * * * | Daily at midnight |
| 0 6 * * * | Daily at 6am |
| 0 9 * * * | Daily at 9am |
| 0 17 * * * | Daily at 5pm |
| 0 23 * * * | Daily at 11pm |
Weekdays and weekends
| Expression | Meaning |
|------------|---------|
| 0 9 * * 1-5 | 9am Monday–Friday |
| 0 9 * * 1 | 9am every Monday |
| 0 0 * * 6,0 | Midnight Saturday and Sunday |
| 0 0 * * 6 | Midnight every Saturday |
| 30 8 * * 1-5 | 8:30am weekdays |
Monthly and yearly
| Expression | Meaning |
|------------|---------|
| 0 0 1 * * | Midnight on the 1st of every month |
| 0 0 15 * * | Midnight on the 15th of every month |
| 0 0 1 1 * | Midnight on 1 Jan (once a year) |
| 0 0 L * * | Last day of every month (some platforms support L) |
Specific time combinations
| Expression | Meaning |
|------------|---------|
| 0 8-17 * * 1-5 | Every hour from 8am–5pm, weekdays |
| 0 0,12 * * * | Midnight and noon every day |
| 0 9,13,17 * * 1-5 | 9am, 1pm, and 5pm on weekdays |
@Shorthand Strings
Most cron implementations accept these aliases instead of the 5-field syntax:
| Shorthand | Equivalent | Meaning |
|-----------|------------|---------|
| @yearly | 0 0 1 1 * | Once a year, midnight 1 Jan |
| @annually | 0 0 1 1 * | Same as @yearly |
| @monthly | 0 0 1 * * | Midnight on the 1st of each month |
| @weekly | 0 0 * * 0 | Midnight every Sunday |
| @daily | 0 0 * * * | Midnight every day |
| @midnight | 0 0 * * * | Same as @daily |
| @hourly | 0 * * * * | Start of every hour |
| @reboot | (special) | Once at startup (Linux cron only) |
Timezone Gotchas by Platform
Cron by default runs in the server's local timezone — which is often UTC in cloud environments.
Linux crontab
Set CRON_TZ at the top of the crontab:
CRON_TZ=America/New_York
0 9 * * 1-5 /usr/bin/script.sh
GitHub Actions
Always UTC. No timezone setting. Convert your target time to UTC before writing the expression:
on:
schedule:
- cron: '0 14 * * 1-5' # 9am ET = 14:00 UTC (during EST)
AWS EventBridge (CloudWatch Events)
Always UTC. Set the expression in the console — note AWS uses 6-field cron syntax with an additional year field:
cron(0 14 ? * MON-FRI *)
Kubernetes CronJob
Kubernetes 1.27+ supports .spec.timeZone:
spec:
schedule: "0 9 * * 1-5"
timeZone: "America/New_York"
Earlier versions use UTC only.
Common Mistakes
Off-by-one on day-of-week — some systems use 0=Sunday, others 1=Monday. Always check your platform's docs. Linux cron uses 0 and 7 both for Sunday.
Mixing up fields — beginners sometimes write 0 * * * 1-5 thinking it means "every hour on weekdays" (it does), but they often intended 0 9 * * 1-5 (9am on weekdays). The hour field is the second field, not the first.
DST shifts — a job scheduled for 0 2 * * * (2am daily) may run twice or skip entirely when clocks change. Schedule critical jobs at 1am or 3am to avoid the DST window.
No validation before deploying — always verify what you wrote. Paste it into Mizakii's Cron Generator to see the next 5 actual run times before deploying.
Build and Validate Cron Expressions
Mizakii's Cron Expression Generator lets you:
- Build schedules visually (no guessing field order)
- Paste an existing expression to validate it
- See the next 5 exact run times instantly
- Reference the full cheat sheet in one place
Free, no signup, works in any browser.
