cronuru
Pattern

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
  1. 012026-07-04T00:00:00.000Z
  2. 022026-07-04T12:00:00.000Z
  3. 032026-07-05T00:00:00.000Z
  4. 042026-07-05T12:00:00.000Z
  5. 052026-07-06T00:00:00.000Z
  6. 062026-07-06T12:00:00.000Z
  7. 072026-07-07T00:00:00.000Z
  8. 082026-07-07T12:00:00.000Z
  9. 092026-07-08T00:00:00.000Z
  10. 102026-07-08T12:00:00.000Z

Variations

0 */6 * * *

Every 6 hours

0 0,12 * * *

Twice daily (explicit)

0 0 * * *

Once daily at midnight

0 12 * * *

Once daily at noon

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.