Build and Understand Cron Schedules
Cron is the time-based job scheduler on Unix and Linux systems, and its five-field expression format has become the standard way to define recurring schedules across cloud platforms, CI/CD pipelines, container orchestrators, and monitoring tools. The syntax is compact but not intuitive — a misplaced number can shift a job from daily to hourly or miss weekends entirely. This tool lets you build expressions visually, see a plain-English description, and verify the next run times before deploying.
The Five Fields
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–6, where 0 is Sunday). Each field accepts an asterisk (every value), a single value, a comma-separated list, a dash-separated range, or a slash-based step. These can be combined:"1,15 */2 * * *" means at minutes 1 and 15 of every second hour.
Common Patterns
"0 * * * *" runs at the top of every hour."0 9 * * 1-5" runs at 9:00 AM Monday through Friday."*/10 * * * *" runs every 10 minutes."0 0 1 * *" runs at midnight on the first day of every month."30 2 * * 0" runs at 2:30 AM every Sunday. Once you recognize these patterns, reading and writing cron becomes routine. The presets above give you one-click access to the most common schedules.
Step Intervals and Ranges
The slash operator divides a range into steps."*/5" in the minute field expands to 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55. You can apply steps to a subrange:"10-40/10" means 10, 20, 30, 40. Ranges use a dash:"1-5" in the day-of-week field means Monday through Friday. Combining ranges with steps gives fine-grained control without listing every value.
Day-of-Month vs Day-of-Week Gotcha
When both the day-of-month and day-of-week fields are set to something other than *, most cron implementations treat them as an OR condition."0 9 15 * 1" runs at 9 AM on the 15th of every month and also on every Monday, not just Mondays that fall on the 15th. This catches people off guard regularly. If you need AND logic, set one field to * and add a conditional check inside the script.
Testing Before Deploying
A cron job that runs more often than intended wastes resources; one that runs less often than intended misses deadlines. The next-run preview shows the upcoming 10 execution times calculated from your device clock so you can verify the cadence before adding the expression to crontab, GitHub Actions, Kubernetes CronJob, AWS EventBridge, or any other scheduler. If the times look wrong, adjust the fields and re-check immediately.