Cron Schedule Calculator

Paste a 5-field cron expression (minute hour day-of-month month day-of-week) and the calculator explains it in plain English, counts runs in the next 24 hours and 7 days, and shows the next actual run times.

Input data

Quick patterns:

Presets only fill the field β€” results after Calculate. Fields: minute (0-59) hour (0-23) day-of-month (1-31) month (1-12) day-of-week (0-7, 0=Sunday).

Results

Enter data and click Calculate.

What the 5 fields mean

FieldRangeMeaning
Minute0-59Which minute of the hour to run.
Hour0-23Which hour of the day (24h clock).
Day of month1-31A specific day of the month.
Month1-12A specific month of the year.
Day of week0-7 (0 and 7 = Sunday)A specific day of the week.

If both day-of-month and day-of-week are restricted (not *), the job runs when either one matches β€” a common gotcha in POSIX cron.

5-field vs 6-field (seconds)

This calculator expects classic 5-field cron: minute hour day-of-month month day-of-week (e.g. 0 5 * * *). Some systems (Quartz, Spring, some CI schedulers) use 6 fields with seconds first (second minute hour …). Pasting a 6-field expression fails validation β€” drop the leading seconds field or rewrite it as 5-field cron.

Common patterns

  • */5 * * * * β€” every 5 minutes, around the clock.
  • 0 * * * * β€” every hour, on the hour.
  • 0 5 * * * β€” every day at 5:00 (nightly backups).
  • 0 9 * * 1-5 β€” weekdays at 9:00 (reports, business notifications).
  • 0 0 1 * * β€” midnight on the 1st of every month (monthly billing).

Overlapping run risk

If a job takes longer than the schedule interval (e.g. */5, but the job runs for 8 minutes), the next run starts before the previous one finishes. Without a lock (lock file, distributed lock, flock), this leads to parallel copies of the same job, race conditions, and duplicate processing.

Time zone: Linux crontab vs Kubernetes CronJob

  • Classic Linux crontab runs on the system time zone (/etc/timezone) by default, though some implementations (e.g. Vixie cron) let you set CRON_TZ per line.
  • Kubernetes CronJob historically ran in UTC regardless of the node’s zone; since Kubernetes 1.24+, the .spec.timeZone field lets you set an IANA zone directly in the manifest.
  • When moving between environments, always check the effective time zone β€” the same cron pattern means a different wall-clock time in UTC versus, say, America/New_York.

Examples

  • */15 9-17 * * 1-5 β€” every 15 minutes, but only 9-17 on weekdays (business-hours monitoring).
  • 0 0 * * 0 β€” every Sunday at midnight (weekly cleanup job).
  • 30 2 1,15 * * β€” the 1st and 15th of the month at 2:30 (semi-monthly billing).

FAQ β€” cron schedules

Why aren’t "0 0 * * 1,15" and "0 0 1,15 * *" the same?
The first sets day-of-week (1=Monday; 15 is out of the 0-7 range and invalid), the second sets day-of-month (the 1st and 15th). Field order matters.
What happens when both day-of-month and day-of-week are set?
POSIX cron treats this as a logical OR β€” the job runs when either one matches, not only when both do.
How do I write "every 10 minutes"?
*/10 * * * * β€” works cleanly for any divisor of 60 (2, 3, 4, 5, 6, 10, 12, 15, 20, 30).
Can I use month/day names (JAN, MON)?
Many cron implementations support this (e.g. MON-FRI), but not all β€” this calculator expects numbers for predictability.
Why isn’t the weekly run count a multiple of the daily count?
When a pattern depends on specific weekdays or dates (e.g. weekdays only), the run count differs day to day β€” 7Γ—daily won’t always match.
What if my pattern has no run in the next ~139 days?
That’s a sign the expression is likely invalid (e.g. an impossible day/month combination) β€” check each field individually.
How do I avoid overlapping runs?
Use a lock (lock file, flock, a distributed lock in Redis/a DB) at the start of the job, and exit immediately if a previous instance is still running.
Does this calculator support six-field cron expressions with seconds?
No. It expects 5 fields (no seconds). If you have Quartz/Spring-style cron with a leading seconds field, remove that field or rewrite it as classic 5-field crontab.
Do presets run the calculation right away?
No β€” presets only fill the expression field. Click Calculate to see the result.