Unix Cron to Kubernetes CronJob Compatibility Checker
Kubernetes' `.spec.schedule` field uses the same 5-field cron syntax as Unix cron — this checker highlights the controller-specific behavior that a field-for-field identical expression can still hide.
Exact match Behaves identically — no caveats to know about.
- Unix cron
0 2 * * *- Kubernetes CronJob schedule
0 2 * * *
Main limitation: The optional `.spec.timeZone` field (stable since Kubernetes 1.27) controls which time zone the schedule is evaluated in; omitting it defaults to the kube-controller-manager's local time zone, which is frequently but not guaranteed to be UTC — always set `.spec.timeZone` explicitly rather than assuming the cluster default.
Examples
Daily at 2am
| Unix cron | 0 2 * * * |
|---|---|
| Kubernetes CronJob schedule | 0 2 * * * |
Identical syntax, but set `.spec.timeZone` explicitly in the CronJob manifest if "2am" needs to mean a specific local time rather than whatever zone the cluster happens to default to.
Every 5 minutes
| Unix cron | */5 * * * * |
|---|---|
| Kubernetes CronJob schedule | */5 * * * * |
Identical syntax; also review `.spec.concurrencyPolicy` if a slow job run could still be executing when the next scheduled run is due, since the cron expression alone says nothing about overlap handling.
Compatibility notes
Compatibility note
The optional .spec.timeZone field (stable since Kubernetes 1.27) controls which time zone the schedule is evaluated in; omitting it defaults to the kube-controller-manager's local time zone, which is frequently but not guaranteed to be UTC — always set .spec.timeZone explicitly rather than assuming the cluster default.
Compatibility note
CronJob has a .spec.startingDeadlineSeconds field controlling how long a missed schedule (e.g. during a controller outage) can still be started late, and a .spec.concurrencyPolicy field controlling whether overlapping runs are allowed, forbidden, or replace each other — neither has anything to do with the cron expression syntax itself, but both materially change whether "every 5 minutes" actually behaves that way under real-world disruptions.
Compatibility note
The field syntax itself is identical to standard 5-field Unix cron (via the underlying Go cron parser), so no field-count or day-of-week renumbering is needed — this page is a compatibility check, not a translation.
References
- crontab(5) — POSIX cron expression format (man7.org) — checked 2026-07-29
- Kubernetes docs — CronJob — checked 2026-07-29
Last verified 2026-07-29.