Cron every 2 hours
0 */2 * * *At 0 minutes past the hour, every 2 hours, every day.
Next runs · UTC
- —
- —
- —
- —
- —
Calendar
September 2026 · UTC
0 runs
About this tool
0 */2 * * *. The minute pin keeps the firing at the top of the hour; the hour step */2 selects every even hour. Twelve runs per day at 00:00, 02:00, 04:00, …, 22:00.The cron expression for every 2 hours
0 */2 * * *
The minute is pinned to 0 (top of the hour); the hour step */2 selects every even hour: 00, 02, 04, …, 22. Twelve firings per day. To fire on odd hours instead, use 0 1-23/2 * * *.
See the dedicated guide for the full breakdown: Cron every hour.
Paste it into the editor above to see the next runs on a calendar.
When to run a job every 2 hours
- Syncing data between two systems every 2 hours without hammering either side.
- Rotating logs, cleaning temporary files, or compacting a database.
- Digest emails and status reports that would be noise if sent more often.
Run this cron anywhere
0 */2 * * * is five-field cron syntax. It works as is in:
- Linux
crontab-0 */2 * * * /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 1-23/2 * * *- every 2 hours starting from 01:00 (odd hours)0 */2 * * 1-5- every 2 hours on weekdays only30 */2 * * *- every 2 hours at xx:30 (00:30, 02:30, 04:30, …)
Gotchas when running every 2 hours
- Anchored at midnight - The hour step starts at 0, so
0 */2 * * *runs at 00:00, 02:00 and so on regardless of when you installed it. Shift the phase with a range, for example0 1-23/2 * * *. - 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.
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
Timing
How many times per day does 0 */2 * * * run?
Twelve times, at every even hour from 00:00 through 22:00. The phase resets at midnight and does not begin two hours after deployment. Expression: 0 */2 * * *
Does 0 1-23/2 * * * preserve twelve daily runs?
Yes. It selects all twelve odd hours from 01:00 through 23:00, shifting the midnight-aligned schedule by one hour without changing daily run count. Expression: 0 1-23/2 * * *
How do I run every 2 hours at 30 minutes past?
Use 30 */2 * * *. It preserves the even-hour alignment but moves each run to 00:30, 02:30, and so on. Expression: 30 */2 * * *
Days and months
How do I run every 2 hours during weekday business hours?
Use 0 9-17/2 * * 1-5. It fires at 09:00, 11:00, 13:00, 15:00, and 17:00 from Monday through Friday. Expression: 0 9-17/2 * * 1-5
How do I keep the two-hour cadence all day on weekdays only?
Use 0 */2 * * 1-5. It runs at every even hour on Monday through Friday and pauses on weekends. Expression: 0 */2 * * 1-5
Timezones and DST
Does a two-hour cron cadence stay two hours apart during DST?
It depends on the scheduler. Vixie/cronie can skip or double a selected local hour; GitHub advances a nonexistent time; EventBridge Scheduler skips spring and runs once in the overlap. UTC-only Vercel and Cloudflare retain twelve evenly spaced daily runs.
Timezone and DST referencePlatforms
What is the AWS EventBridge expression for every 2 hours?
Use cron(0 0/2 * * ? *). EventBridge uses minute first, includes a year field, requires ? in one day field, and wraps the expression in cron(...). Expression: 0 0/2 * * ? *
What is the Quartz expression for every 2 hours?
Use 0 0 0/2 * * ?. Quartz adds seconds first, then minute and hour; this fires at second and minute zero of every even hour. Expression: 0 0 0/2 * * ?
Can GitHub Actions and Vercel Hobby run every 2 hours?
GitHub Actions can because two hours exceeds its five-minute minimum. Vercel Hobby cannot because it permits only once-daily cron; Vercel Pro supports more frequent schedules.
Cron dialect matrixDebugging
Will cron replay a missed two-hour run?
No. Standard cron resumes at the next matching even hour, so persist a checkpoint when every two-hour processing window must be recovered.
Crontap
Can Crontap run an HTTP job every 2 hours?
Yes. Crontap can run the two-hour schedule with retries; keep the endpoint idempotent in case an attempt is repeated.
Schedule API callsGeneral
What is the cron expression for every 2 hours?
0 */2 * * *. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job every 2 hours; AWS EventBridge and Quartz need the six-field form.
How can I verify this cron actually runs every 2 hours?
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 */2 * * * 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