Cron Expression for Every 12 Hours

Every 12 hours, twice a day
0 */12 * * *

Cron reads this as: minute 0, past every 12th hour.

Next 5 runs

These times are in your browser's local time zone. Cron itself uses the server's zone, which on most cloud hosts is UTC. If the difference matters here, see time zones & DST.

When to use this schedule

It runs at midnight and noon. Use it for a daily job that gets one retry from the schedule itself, or to sync with a partner system that publishes twice a day.

What to watch out for

Both runs land on busy hours. Midnight is when the nightly jobs across a fleet start, and noon is peak load for many systems. 0 3,15 * * * keeps the same twelve-hour spacing in much quieter windows. If the two runs are not interchangeable, write them as separate crontab lines with separate log destinations so you can tell them apart.

The crontab line

0 */12 * * * /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1

Send the output to a log you will read. By default cron mails it, and on a host with no mail transport that mail is silently dropped. See the crontab guide for the surrounding syntax.

Related schedules

Variations on every 12 hours
ExpressionSchedule
0 0,12 * * *Same schedule, written as a list
0 3,15 * * *Every 12 hours, in quieter hours
0 0 * * *Once a day

Build your own

If this page doesn't cover the schedule you need, compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library has sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.