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. 1 Friday 23 October 2026 00:00 UTC
  2. 2 Friday 23 October 2026 12:00 UTC
  3. 3 Saturday 24 October 2026 00:00 UTC
  4. 4 Saturday 24 October 2026 12:00 UTC
  5. 5 Sunday 25 October 2026 00:00 UTC

See these in your own timezone, or change the schedule →

Good to know

Typical uses: Twice-daily backups, syncing with a partner system, refreshing reports.

Copy and paste

crontab -e Crontab
0 */12 * * * /path/to/script.sh
.github/workflows/scheduled.yml GitHub Actions
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.

routes/console.php Laravel
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.