Aarunya AppsAarunya Apps
πŸ› οΈ Developer10 min readΒ·August 12, 2026

The Complete Guide to Cron Expressions for Developers

Cron expressions are one of those things that look cryptic at first but follow a simple pattern. Once you know the five fields, you can read and write any schedule without Googling it.

The five fields

# β”Œβ”€β”€β”€β”€β”€ minute (0–59)
# β”‚ β”Œβ”€β”€β”€β”€β”€ hour (0–23)
# β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€ day of month (1–31)
# β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€ month (1–12 or JAN–DEC)
# β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€ day of week (0–7, 0 and 7 = Sunday, or SUN–SAT)
# β”‚ β”‚ β”‚ β”‚ β”‚
  * * * * *

The special characters

  • * β€” any value ("every")
  • , β€” list of values: 1,15 = on the 1st and 15th
  • - β€” range: 9-17 = 9am through 5pm
  • / β€” step: */5 = every 5 units

20 patterns you'll actually use

0 * * * *      # Every hour on the hour
*/15 * * * *   # Every 15 minutes
0 9 * * 1-5   # 9am weekdays
0 9 * * MON   # Every Monday at 9am
0 0 * * *     # Midnight every day
0 0 1 * *     # Midnight on the 1st of each month
0 0 1 1 *     # Midnight on Jan 1st (yearly)
0 */6 * * *   # Every 6 hours
30 8 * * 1    # 8:30am every Monday
0 9,17 * * *  # 9am and 5pm daily
0 0 * * 0     # Midnight every Sunday
0 12 * * 5    # Noon every Friday
0 0 15 * *    # Midnight on the 15th
*/30 9-17 * * 1-5  # Every 30min, 9am–5pm weekdays
0 0 * 1,7 *   # Midnight in Jan and Jul

Platform differences

GitHub Actions uses standard 5-field cron but runs on UTC. The minimum interval is 5 minutes (GitHub throttles more frequent schedules). Note that scheduled workflows may be delayed by up to an hour during heavy load.

AWS EventBridge uses a 6-field format adding a year field, and requires either day-of-month or day-of-week to be ? (not both specified): 0 9 ? * MON *.

Kubernetes CronJobs use standard 5-field cron in UTC by default. Add timeZone: "America/New_York" to the CronJob spec to use a local timezone (requires Kubernetes 1.27+).

Common mistakes

  • Forgetting UTC β€” most systems run cron in UTC. 0 9 * * * fires at 9am UTC, which is 2:30pm IST or 4am PST.
  • Both DOM and DOW β€” in most implementations, specifying both day-of-month and day-of-week creates OR logic, not AND.
  • Minimum interval β€” GitHub Actions won't reliably run more often than every 5 minutes. Use a queue or event-driven trigger instead.

Unsure what a cron expression means? Paste any expression into the Aarunya Cron Explainer β€” it translates the expression to plain English, shows the next 8 run times, and generates platform snippets for GitHub Actions, Kubernetes, AWS EventBridge, and systemd.

Try the related tool

Cron Explainer β€” free, runs 100% in your browser.

Open Cron Explainer β†’

Enjoyed this? Get notified when Pro launches.