Cron expression for twice a day

The cron expression to run a job twice a day is 0 0,12 * * *, at midnight and noon. Swap in any two hours, then check both run times in your own timezone.

0minute
0,12hour
*day
*month
*weekday

In Plain English

What your cron expression actually means.

At 12:00 AM and 12:00 PM, every day

Upcoming Executions

Preview the next 50 times this schedule will trigger.

Calculating…

About 0 0,12 * * *

0 0,12 * * * lists two hours separated by a comma, so the job runs at midnight and again at noon. Any pair works the same way — 0 6,18 * * * runs at 6 AM and 6 PM — while 0 */12 * * * is shorthand for the midnight-and-noon pair only.

Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:

FieldPositionMatches
0minute0
0,12hour0, 12
*day of monthevery day
*monthevery month
*day of weekevery 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

# At 12:00 AM and 12:00 PM, every day
0 0,12 * * * /path/to/command

GitHub Actions workflow

# At 12:00 AM and 12:00 PM, every day
# Note: GitHub Actions always runs schedules in UTC.
on:
  schedule:
    - cron: '0 0,12 * * *'

Daily schedules

Build a custom cron expression →