crontool
Paste a schedule, read it in English, see the next runs.

Kubernetes CronJob Schedule

A Kubernetes CronJob's spec.schedule is standard 5-field cron. The example runs every 5 minutes. Modern clusters also support a spec.timeZone field; without it, the schedule uses the kube-controller-manager's timezone (usually UTC).

The manifest

apiVersion: batch/v1
kind: CronJob
metadata:
  name: report
spec:
  schedule: "*/5 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: report
            image: myimage:latest
          restartPolicy: OnFailure

Timezone

On Kubernetes 1.27+ add spec.timeZone: "America/New_York". Without it, times are interpreted in the controller-manager's zone, which is UTC on most managed clusters.

Prevent overlap

Set spec.concurrencyPolicy: Forbid so a new run is skipped if the previous one is still running. Replace kills the old one; the default Allow lets them overlap.

Missed runs

startingDeadlineSeconds controls how late a missed job may start. If too many runs are missed (e.g. controller was down), the CronJob may stop scheduling until you clear it.

FAQ

What cron format does a Kubernetes CronJob use?

Standard 5-field cron in spec.schedule, e.g. "*/5 * * * *" for every 5 minutes. Quote the string in YAML.

How do I set the timezone of a Kubernetes CronJob?

Add spec.timeZone (Kubernetes 1.27+), e.g. "America/New_York". Otherwise the schedule uses the controller-manager's zone, typically UTC.

How do I stop Kubernetes CronJob runs from overlapping?

Set spec.concurrencyPolicy: Forbid to skip a new run while the previous is active, or Replace to cancel the old one. The default Allow permits overlap.