Reading a Cron Expression
A standard Unix cron expression has exactly five fields separated by spaces. From left to right: minute (0β59), hour (0β23), day of month (1β31), month (1β12), and day of week (0β6, Sunday = 0). An asterisk * in any position means "every possible value" for that field. Understanding this order is the key to reading any cron expression correctly.
Special Character Guide
Cron syntax supports four special characters that make complex schedules possible:
*Wildcard β matches every value in the field (e.g. * in hour = every hour),List β matches multiple values (e.g. 1,15 in day-of-month = 1st and 15th)-Range β matches all values from X to Y (e.g. 1-5 in day-of-week = MonβFri)/Step β matches every Nth value (e.g. */15 in minute = :00, :15, :30, :45)
Common Mistakes When Reading Cron
The most frequent source of confusion is field position. Because day-of-month (field 3) and day-of-week (field 5) look similar, it is easy to accidentally swap them. For example, 0 0 * * 1 is "midnight every Monday," while 0 0 1 * * is "midnight on the 1st of every month" β a very different schedule. Another common mistake is forgetting that setting both day-of-month and day-of-week uses OR logic on most systems: the job fires if either condition is met. Use this parser's next-run preview to confirm that your expression fires exactly when you expect.
Cron in Different Environments
While the 5-field format is universal in Unix cron, cloud schedulers may vary. AWS EventBridge uses a 6-field format with a year field and supports L (last), W (weekday), and # (nth weekday). GCP Cloud Scheduler follows standard Unix cron with timezone support. GitHub Actions uses standard 5-field cron but always runs in UTC. Kubernetes CronJob follows standard Unix cron. Always check your platform's documentation, and use this tool to verify the schedule before deploying.