Cron twice a day
0 0,12 * * *At 00:00 and 12:00, every day.
Next runs · UTC
- —
- —
- —
- —
- —
Calendar
September 2026 · UTC
0 runs
About this tool
0 0,12 * * *. The hour list 0,12 selects midnight and noon. To run at other fixed clock times, change the hour list - but if the two times have different minutes, you need two cron lines (see the dedicated FAQ).The cron expression for twice a day (midnight and noon)
0 0,12 * * *
The hour list 0,12 selects midnight and noon - two firings a day. For different times that share a minute (e.g. 06:00 and 18:00), use 0 6,18 * * *. For times that don't share a minute (e.g. 08:00 and 17:30), use two separate cron lines.
See the dedicated guide for the full breakdown: Cron every day.
Paste it into the editor above to see the next runs on a calendar.
When to run a job twice a day (midnight and noon)
- Batch work such as exports, backups, and cleanup that should run twice a day (midnight and noon).
- Reports and notifications that people expect at a fixed clock time.
- Heartbeat or uptime checks where a fixed schedule is easier to reason about than an interval.
Run this cron anywhere
0 0,12 * * * is five-field cron syntax. It works as is in:
- Linux
crontab-0 0,12 * * * /path/to/script.sh - Vercel cron jobs - declare in
vercel.json. - node-cron, robfig/cron and Kubernetes CronJob.
AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields, so convert first:
- AWS EventBridge -
cron(minute hour day-of-month month ? year); see the AWS guide. - Quartz Scheduler - prepend a seconds field (
0) and replace one day field with?; see the Quartz guide.
Useful variations
0 6,18 * * *- 06:00 and 18:00 every day0 8,20 * * *- 08:00 and 20:00 every day30 9,17 * * *- 09:30 and 17:30 (same minute → one cron line works)
Gotchas when running twice a day (midnight and noon)
- Timezone and daylight saving - DST handling is scheduler-specific: Vixie/cronie can skip or double local matches; GitHub advances nonexistent local times; EventBridge Scheduler skips spring and runs once in the fall overlap. UTC-only Vercel and Cloudflare schedules are unaffected.
- Missed runs are not replayed - If the host or platform is unavailable at the scheduled minute, standard cron simply waits for the next match. Add a heartbeat or alert if a skipped run must be noticed.
Examples
- 0 18 * * *Every day at 18:00
- 0 */5 * * *Every 5 hours
- 0 18 * * 1-5Weekdays at 18:00
- 0 0 1 * *Once a month, on the 1st at midnight
Cheatsheet
Full cheatsheet| Field | Req. | Range | Wildcards |
|---|---|---|---|
| minute | yes | 0-59 | , - * / |
| hour | yes | 0-23 | , - * / |
| day of month | yes | 1-31 | , - * / |
| month | yes | 1-12 or JAN-DEC | , - * / |
| day of week | yes | 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects | , - * / |
Frequently asked questions
Syntax
Is 0 */12 * * * the same as 0 0,12 * * *?
For standard clock-aligned cron, both match midnight and noon. The explicit 0,12 list communicates those two intended times more clearly. Expression: 0 */12 * * *
Can one expression run at 08:00 and 17:30?
No. Use two entries, each with its own expression: 0 8 * * * and 30 17 * * *; combining both minutes and hours would create unwanted times.
Timing
How do I run at 06:00 and 18:00 every day?
Use 0 6,18 * * *. The comma-separated hour list creates two fixed wall-clock runs with the same minute. Expression: 0 6,18 * * *
Can twice-daily runs be unevenly spaced?
Yes. 0 8,17 * * * runs at 08:00 and 17:00, creating 9-hour and 15-hour gaps rather than equal 12-hour gaps. Expression: 0 8,17 * * *
Is twice a day always an exact 12-hour interval?
No. A list selects wall-clock times, and unequal choices produce unequal gaps; DST can also change elapsed time between local-clock runs.
Days and months
How do I run twice a day on weekdays only?
Use 0 6,18 * * 1-5. The hour list selects two times and the weekday range excludes Saturday and Sunday. Expression: 0 6,18 * * 1-5
Timezones and DST
How does DST affect a twice-daily schedule?
Behavior varies: Vixie/cronie can skip or double a local time; GitHub advances to the next valid time; EventBridge Scheduler skips spring's missing time and runs once during fall-back. UTC-only schedulers are unaffected.
DST referenceWhich timezone controls the two daily times?
The scheduler's timezone controls both. Configure an IANA timezone when 06:00 and 18:00 must follow a particular local clock.
Timezone referencePlatforms
What is the AWS form for 06:00 and 18:00 daily?
Use cron(0 6,18 * * ? *). The bare editor expression includes AWS's required year field and ? in day-of-week.
Debugging
Will cron replay one of the two daily runs after downtime?
Usually no. Standard cron waits for the next listed time, so add catch-up logic if both daily executions are required.
Crontap
Can Crontap call an endpoint twice a day?
Yes. Crontap can run 0 0,12 * * * in the selected IANA timezone and invoke an HTTP endpoint at both times.
General
What is the cron expression for twice a day (midnight and noon)?
0 0,12 * * *. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job twice a day (midnight and noon); AWS EventBridge and Quartz need the six-field form.
How can I verify this cron actually runs twice a day (midnight and noon)?
The editor above shows the next 30+ runs on a calendar in your local timezone, plus a plain-English description. If the calendar matches your intent, the cron is correct.
Does 0 0,12 * * * work on every platform?
Linux crontab, Vercel cron jobs, node-cron, robfig/cron, and Kubernetes CronJob accept the five-field form as is. AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields; see the AWS and Quartz guides for the conversion. Vercel's free Hobby plan caps the minimum frequency at once-per-day; the Pro plan removes that cap.
What happens if the previous run is still going when the next one fires?
Most schedulers will start the new run anyway, leading to overlap. To prevent this, wrap the command with flock -n /tmp/myjob.lock /path/to/script.sh on Linux, or set concurrencyPolicy: Forbid on Kubernetes CronJob. Vercel and EventBridge may overlap runs if the previous one is still executing; make the handler idempotent.
Write the cron here. Run it on Crontap.
Point Crontap at any URL. Pick any cron. Done.
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
1.9k+ teams · Free forever tier · No credit card