Cron expression
Every 12 hours
0 */12 * * *
Runs twice a day, at midnight and at noon.
Runs per month
≈ 60
Next run (UTC)
Fri 00:00
On CronEngine
Runs on the free plan
What each part means
| Minute | 0 | at minute 0 |
| Hour | */12 | every 12 hours |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | * | every day of the week |
Next runs
- 1 Friday 23 October 2026 00:00 UTC
- 2 Friday 23 October 2026 12:00 UTC
- 3 Saturday 24 October 2026 00:00 UTC
- 4 Saturday 24 October 2026 12:00 UTC
- 5 Sunday 25 October 2026 00:00 UTC
See these in your own timezone, or change the schedule →
Good to know
- Identical to 0 0,12 * * *. For two runs at other times, list the hours yourself, as in 0 9,21 * * *.
- If one of the two runs is skipped, the next chance is twelve hours later, so make sure you hear about a failure.
Typical uses: Twice-daily backups, syncing with a partner system, refreshing reports.
Copy and paste
0 */12 * * * /path/to/script.sh
on:
schedule:
- cron: '0 */12 * * *'
GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy. How to start it on time.
Schedule::command('your:command')->twiceDaily(0, 12);
Variations
| 0 9,21 * * * | Twice a day, at 09:00 and 21:00 |
| 0 9,17 * * * | Twice a day, at 09:00 and 17:00 → |
Questions
What is the cron expression for every 12 hours?
0 */12 * * *. Runs twice a day, at midnight and at noon.
Can GitHub Actions run every 12 hours?
Yes, with cron: '0 */12 * * *'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.
More schedules: hours
← All cron schedules · Cron cheat sheet · Cron expression generator