Skip to content

Every day at noon cron: what 0 12 * * * means and how to schedule a midday job

Runs in your browser — nothing you paste leaves this page. How we prove that

Cron Expression Tester playground

Example

Five fields — minute, hour, day of month, month, day of week. Macros like @daily are supported too.

Results update as you type — press Enter to run now.

Timezone
fig. 04 — cron-expression-tester · scheduling Valid
Result

At 12:00.

Minute0
Hour12
Day of month*
Month*
Day of week*
Next runs
  • Computed in your browser, in your timezone.

`0 12 * * *` fires once a day at 12:00 in the cron daemon's timezone. The engine reads it as: At 12:00.

Reading 0 12 * * *

Cron hours run 0–23, so 12 is noon and midnight is 0; there is no AM/PM. Minute 0 pins the start to the top of that hour, and the wildcard date fields make it daily. Writing 0 0 12 * * by mistake puts the 12 in the day-of-month field and runs once a month, on the 12th, at midnight; field order matters more than anything else in cron.

The parser on this page reads it as: At 12:00. The next run times in the panel above are computed in your browser, in your own timezone, so they are not printed in this text.

A midday job in practice

Midday schedules usually exist for people rather than machines: a lunchtime digest email, a status report posted to a chat channel, a reminder. 0 12 * * * /opt/bots/standup-digest --channel ops >> /var/log/digest.log 2>&1 is a typical line. Because the audience is human, the timezone matters more than for a backup, and noon on a UTC server is 17:30 in India and 08:00 or 07:00 in New York depending on daylight saving.

Noon is also safely clear of every daylight saving transition, so the run is never skipped or repeated; it just moves by an hour relative to UTC twice a year if the server follows local time.

Running the same job twice a day

Hours accept lists, so 0 0,12 * * * runs at midnight and noon, and 0 */12 * * * is the same thing. If the job might still be running when the next one starts, the usual guard applies: flock -n /run/lock/digest.lock before the command.

systemd, Kubernetes and GitHub Actions

systemd: OnCalendar=*-*-* 12:00:00, and a timer can name its zone directly, for example OnCalendar=*-*-* 12:00:00 Europe/London. Kubernetes uses schedule: "0 12 * * *" with an optional timeZone. GitHub Actions treats 0 12 * * * as 12:00 UTC. Related: every day at midnight, and every weekday at 09:00 if the job should skip weekends.

FAQ

Questions, answered.

Tap a question to expand the answer.

Restrict the day-of-week field: 0 12 * * 1-5 runs at 12:00 Monday to Friday.

No. Cron uses a 24-hour clock with hours 0 to 23, so noon is 12, 1pm is 13 and midnight is 0.

More free, private DevOps tools.

The Cron Expression Tester is one tool in OpsCanopy — a growing canopy of browser-based validators, converters and testers that never touch a server.

New to Linux?  Read the Linux guide →

42 free tools, every one offline-capable — opscanopy.com works with no signup and nothing uploaded.

Scheduling on Linux? Pair this with the Cron to systemd Converter, or browse the full tools directory.

Not affiliated with or endorsed by any cron implementation. Format names are used only to describe what this tool reads. OpsCanopy is free and open.