Cron: Every Noon
0 12 * * * fires once a day at noon (12:00 in 24-hour time) — the hour field's 12 represents midday, not midnight. It's a common choice for midday digests, lunchtime notifications, and jobs that benefit from running when most people are actively online rather than overnight.
0 12 * * *
Examples & Variations
Common Mistakes
- Confusing 12-hour and 24-hour time — in cron's 24-hour hour field, 12 means noon and 0 means midnight; there's no AM/PM designation, so a job meant for 12 AM should use 0, not 12.
- Scheduling a noon job without considering that it now competes with peak daytime traffic, unlike an overnight job that runs in relative quiet.
- Assuming 'noon' is universal across a distributed team or user base — a noon cron job on a UTC server is a very different local time depending on where your users are.
Best Practices
- Double-check the hour field against 24-hour time whenever scheduling anything around midday — 12 is noon, 0 is midnight, easy to transpose under time pressure.
- For user-facing noon notifications, compute the schedule against the user's actual timezone rather than a single server-wide noon.
- If a noon job is resource-intensive, weigh whether it truly needs to run during peak hours or could be shifted slightly to avoid compounding with regular daytime load.
Frequently Asked Questions
- Is 12 in the hour field noon or midnight?
- Noon. Cron's hour field uses 24-hour time from 0–23, where 0 is midnight and 12 is noon — there's no AM/PM marker, so it's easy to accidentally swap them.
- How do I run a job at both midnight and noon?
- Use a comma-separated list in the hour field: 0 0,12 * * * fires at both 00:00 and 12:00 every day.
- Why would I choose noon over midnight for a daily job?
- Noon suits anything meant to reach people while they're active — reminders, digests, or checks that are more useful mid-day than buried in an overnight log. Midnight remains better for jobs that need low-traffic, uninterrupted processing time.