Kubernetes CronJob Schedule Generator
A Kubernetes CronJob runs a Job on a five-field Unix cron schedule set in spec.schedule. The cron syntax is standard, so the real questions are about timezone, concurrency, and what happens when a run is missed.
Build a schedule below and copy the spec.schedule value into your CronJob manifest.
Expression
Tip: press Ctrl+Enter to copy
Presets
Visual Builder
Description
At 09:00 AM, Monday through Friday
Kubernetes cron syntax
| Min | Hour | Day | Month | DOW |
|---|---|---|---|---|
| 0 | 9 | * | * | 1-5 |
- Five fields: Minute, Hour, Day-of-month, Month, Day-of-week — standard Unix cron.
- Set under spec.schedule in the CronJob manifest.
- Kubernetes 1.27+ supports a spec.timeZone field; without it, the schedule uses the kube-controller-manager's timezone (usually UTC).
- concurrencyPolicy (Allow, Forbid, Replace) controls overlap when a run is still going.
- startingDeadlineSeconds bounds how late a missed run may still start before it's counted as failed.
Kubernetes cron examples
Click any example to load it into the generator above.
Frequently asked questions
What timezone does a Kubernetes CronJob use?
By default the schedule is interpreted in the timezone of the kube-controller-manager, which is typically UTC. On Kubernetes 1.27 and later you can set spec.timeZone (e.g. "America/New_York") to schedule in a specific zone.
How do I stop overlapping CronJob runs?
Set spec.concurrencyPolicy to Forbid to skip a new run while the previous one is still active, or Replace to cancel the old run and start the new one. The default, Allow, lets runs overlap.
What happens if a scheduled run is missed?
If the controller was down, Kubernetes will start a missed run as long as it's within startingDeadlineSeconds (when set). If too many runs are missed, the CronJob may stop scheduling, so set a sensible deadline.