Every 6 Hours
0 */6 * * * 0 0 */6 * * ? 0 */6 * * * 0 */6 * * ? * 0 0 */6 * * * 0 */6 * * * Runs every 6 hours at the top of the hour — 00:00, 06:00, 12:00, 18:00. 4 invocations per day.
Use in your stack
# Run every 6 hours
0 */6 * * * /usr/local/bin/quarter-day-job.sh
{ "cron": "0 0 */6 * * ?", "timezone": "UTC" }
apiVersion: batch/v1
kind: CronJob
metadata:
name: quarter-day
spec:
schedule: "0 */6 * * *"
timeZone: "UTC"
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: my-image:latest
restartPolicy: OnFailure
cron(0 */6 * * ? *)
@Scheduled(cron = "0 0 */6 * * *", zone = "UTC")
public void every6Hours() { /* ... */ }
on:
schedule:
- cron: '0 */6 * * *'
Next runs
Pick a timezone to see when this expression fires next.
Next 10 runs
- 012026-07-03T18:00:00.000Z
- 022026-07-04T00:00:00.000Z
- 032026-07-04T06:00:00.000Z
- 042026-07-04T12:00:00.000Z
- 052026-07-04T18:00:00.000Z
- 062026-07-05T00:00:00.000Z
- 072026-07-05T06:00:00.000Z
- 082026-07-05T12:00:00.000Z
- 092026-07-05T18:00:00.000Z
- 102026-07-06T00:00:00.000Z
Variations
Common use cases
- Quarter-day summary reports.
- Refreshing short-lived OAuth tokens or signed URLs.
- Batch syncing between systems that change slowly.
- Periodic cache compaction or partial reindexing.
Gotchas
- AWS EventBridge: `0 */6 * * ? *`. Quartz: `0 0 */6 * * ?`.
- Aligns to UTC midnight by default — if your server is in a non-UTC zone, the wall-clock times shift. Pin the timezone explicitly if alignment matters.
0 */6 * * * is the quartered-day cadence. Four runs per day, evenly spaced at 6-hour intervals. Common for jobs that need to “stay current” without the operational overhead of more frequent runs.
Frequently asked questions
What does `0 */6 * * *` mean?
Minute `0` and hour `*/6` mean "at minute 0 of every 6th hour starting from 0." So the job fires at 00:00, 06:00, 12:00, and 18:00 — 4 invocations per day.
Is `0 */6 * * *` the same as `0 0,6,12,18 * * *`?
Yes — functionally identical. The `*/6` is shorthand for the comma-separated list `0,6,12,18`. Either form is accepted by every cron dialect.
How do I shift this to fire at 03:00, 09:00, 15:00, 21:00 instead?
Use an explicit list: `0 3,9,15,21 * * *`. Step values starting from non-zero offsets require a range — `0 3-21/6 * * *` would also work (fires at 3, 9, 15, 21). Either form expresses "every 6 hours but offset by 3 from midnight."
Browse all cron patterns
Every schedule Cronuru documents, with its expression and code snippets for six dialects.