0 */6 * * *
Open in the generator
*/6 in the hour field expands to 0, 6, 12 and 18. The same schedule as a list is 0 0,6,12,18 * * *, which some teams prefer because the times are visible at a glance.
Midnight is a crowded slot on most servers (log rotation, backups, certificate renewals). Shifting to 0 3,9,15,21 * * * keeps a six-hour cadence while dodging the rush.
Field by field
| Value | Field | Meaning |
|---|---|---|
| 0 | Minute 0–59 | at minute 0 |
| */6 | Hour 0–23 | every 6 hours |
| * | Day of month 1–31 | every day of the month |
| * | Month 1–12 or JAN–DEC | every month |
| * | Day of week 0–7 or SUN–SAT (0 and 7 are Sunday) | every day of the week |
Next run times
Computed in your browser from the current time, so you can check the schedule against a clock you trust.
Your timezone (local)
- Needs JavaScript.
UTC (GitHub Actions, Kubernetes default)
Variations
0 3,9,15,21 * * *every 6 hours, offset by 3 · try it0 */12 * * *every 12 hours · see page0 */4 * * *every 4 hours · try it
Where this expression works
- Linux and macOS crontab: as written; times follow the system timezone.
- Kubernetes CronJob: the same five fields; UTC unless
spec.timeZoneis set. - GitHub Actions: the same syntax in UTC, minimum interval five minutes, no
@shortcuts. - AWS EventBridge: a different six-field syntax; do not paste this expression unchanged.
Full platform comparison · Cron tutorial
FAQ
Does 0 */6 * * * run six hours after the previous run?
No, it runs at fixed clock hours. Even if a run is delayed, the next one still starts at the next multiple of six.