Hourly
0 */12 * * *
Run twice a day, 00:00 and 12:00.
This preview is live: the table below shows the actual next run times for 0 */12 * * * in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.
What 0 */12 * * * means
0 */12 * * * fires at midnight and noon, twice a day, twelve hours apart. It is the simplest twice-daily schedule and reads clearly: the */12 step lands on hours 0 and 12 only.
Twice-daily is a frequent choice for digests and reconciliation jobs that want a morning and an evening pass, or for syncs where once a day is too stale but hourly is overkill. If you want specific times rather than midnight/noon, list them: 0 6,18 * * *.
Field-by-field breakdown
Unix cron has five fields. Here is what each one is doing in this expression:
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | minute = 0 |
| Hour | */12 | every 12 (step) across hour |
| Day of month | * | every day-of-month |
| Month | * | every month |
| Day of week | * | every day-of-week |
Every 12 hours in every scheduler
The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target, the field count and day-of-week numbering differ between them.
| Scheduler | Expression | Copy |
|---|---|---|
| Unix / crontab | 0 */12 * * * | |
| GitHub Actions | 0 */12 * * * | |
| Kubernetes CronJob | 0 */12 * * * | |
| Vercel Cron | 0 */12 * * * | |
| Quartz | 0 0 */12 * * * * | |
| Spring | 0 0 */12 * * * | |
| AWS EventBridge | 0 */12 * * * * |
When you would use 0 */12 * * *
- Morning and evening digest emails or Slack summaries.
- Twice-daily reconciliation between two systems of record.
- Refreshing exchange rates or other slow-moving reference data.
The gotcha worth knowing
0 */12 * * * is locked to 00:00 and 12:00. For an asymmetric twice-daily schedule (say 09:00 and 17:00) you must enumerate the hours, the step form cannot express uneven gaps.
People also search for
0 */12 * * * FAQ
What does the cron expression 0 */12 * * * mean?
0 */12 * * * means: Run twice a day, 00:00 and 12:00. 0 */12 * * * fires at midnight and noon, twice a day, twelve hours apart. It is the simplest twice-daily schedule and reads clearly: the */12 step lands on hours 0 and 12 only.
How do I write "every 12 hours" in GitHub Actions?
Use 0 */12 * * * in the schedule's cron field. 0 */12 * * * is locked to 00:00 and 12:00. For an asymmetric twice-daily schedule (say 09:00 and 17:00) you must enumerate the hours, the step form cannot express uneven gaps.
How do I write "every 12 hours" for AWS EventBridge?
EventBridge uses six fields with a required year and a ? placeholder in one day field: 0 */12 * * * *. Wrap it as cron(0 */12 * * * *) in the console or CloudFormation.
What is the Quartz equivalent of 0 */12 * * *?
Quartz is seconds-first with a trailing year, so the equivalent is 0 0 */12 * * * *. Remember Quartz numbers Sunday as 1, the opposite of Unix.
Related cron patterns
More cron tools
Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.