The cron expression to run a job every 12 hours is 0 */12 * * *. Preview upcoming executions in any timezone and copy it straight into your scheduler.
0minute*/12hour*day*month*weekdayIn Plain English
What your cron expression actually means.
Upcoming Executions
Preview the next 50 times this schedule will trigger.
About 0 */12 * * *
0 */12 * * * fires at minute 0 of every 12 hours, starting at midnight. Since 12 divides 24 evenly, every gap in the day is the same length.
Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:
| Field | Position | Matches |
|---|---|---|
0 | minute | 0 |
*/12 | hour | 0, 12 |
* | day of month | every day |
* | month | every month |
* | day of week | every day of the week |
New to cron? Read the syntax reference or the FAQ.
Use it in crontab or GitHub Actions
Both snippets are ready to paste. A crontab runs in the server's local timezone; GitHub Actions always evaluates schedules in UTC. For Kubernetes, AWS EventBridge, or Vercel, use the export menu in the calculator above.
crontab
# On the hour, every 12 hours, every day 0 */12 * * * /path/to/command
GitHub Actions workflow
# On the hour, every 12 hours, every day
# Note: GitHub Actions always runs schedules in UTC.
on:
schedule:
- cron: '0 */12 * * *'