Every 12 Hours
0 */12 * * * 0 0 */12 * * ? 0 */12 * * * 0 */12 * * ? * 0 0 */12 * * * 0 */12 * * * Runs every 12 hours at the top of the hour — 00:00 and 12:00 every day. 2 invocations per day.
Use in your stack
# Run twice a day, at midnight and noon
0 */12 * * * /usr/local/bin/half-day-sync.sh
# Equivalent comma form
0 0,12 * * * /usr/local/bin/half-day-sync.sh
{ "cron": "0 0 */12 * * ?", "timezone": "UTC" }
apiVersion: batch/v1
kind: CronJob
metadata:
name: half-day-sync
spec:
schedule: "0 */12 * * *"
timeZone: "UTC"
jobTemplate:
spec:
template:
spec:
containers:
- name: sync
image: my-image:latest
restartPolicy: OnFailure
cron(0 */12 * * ? *)
@Scheduled(cron = "0 0 */12 * * *", zone = "UTC")
public void twiceDaily() { /* ... */ }
on:
schedule:
- cron: '0 */12 * * *'
Next runs
Pick a timezone to see when this expression fires next.
Next 10 runs
- 012026-07-04T00:00:00.000Z
- 022026-07-04T12:00:00.000Z
- 032026-07-05T00:00:00.000Z
- 042026-07-05T12:00:00.000Z
- 052026-07-06T00:00:00.000Z
- 062026-07-06T12:00:00.000Z
- 072026-07-07T00:00:00.000Z
- 082026-07-07T12:00:00.000Z
- 092026-07-08T00:00:00.000Z
- 102026-07-08T12:00:00.000Z
Variations
Common use cases
- AM/PM data syncs.
- Half-day summary reports (midnight + midday).
- Rotating temporary credentials twice a day.
- Lightweight maintenance jobs that need a daytime + overnight run.
Gotchas
- Equivalent to `0 0,12 * * *` — comma form may read more clearly.
- Timezone matters more than usual here — "midnight and noon" is meaningful, but only in the timezone you actually mean.
- AWS EventBridge: `0 */12 * * ? *`. Quartz: `0 0 */12 * * ?`.
0 */12 * * * is the twice-a-day cadence. AM and PM, midnight and noon. A predictable, low-cost schedule for jobs that need to run in both halves of the day but don’t justify hourly or quarterly cadence.
Frequently asked questions
What does `0 */12 * * *` mean?
Minute `0` and hour `*/12` mean "at minute 0 of every 12th hour starting from 0." So the job fires at 00:00 and 12:00 — twice a day.
Is `0 */12 * * *` the same as `0 0,12 * * *`?
Yes — functionally identical. Many teams prefer the comma form `0 0,12 * * *` because it makes the two firing times explicit and easier to scan. Either is accepted by every cron dialect.
How is this different from `0 12 * * *`?
`0 12 * * *` fires once a day at noon. `0 */12 * * *` fires twice a day, at midnight AND noon. The `*/12` step is what doubles the frequency.
Browse all cron patterns
Every schedule Cronuru documents, with its expression and code snippets for six dialects.