Skip to main content

Cron every 4 hours

0 */4 * * *

At 0 minutes past the hour, every 4 hours, every day.

Next runs · UTC

Calendar

September 2026 · UTC

0 runs

About this tool

Run a cron every 4 hours with 0 */4 * * *. Six runs per day at 00:00, 04:00, 08:00, 12:00, 16:00 and 20:00. A common cadence for cache refreshes and twice-an-8-hour-shift jobs.

The cron expression for every 4 hours

0 */4 * * *

The hour step */4 selects 0, 4, 8, 12, 16, 20 - six firings per day. Four is a divisor of 24 so the spacing is exactly 4 hours.

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 4 hours

  • Syncing data between two systems every 4 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 */4 * * * is five-field cron syntax. It works as is in:

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 */4 * * 1-5 - every 4 hours on weekdays only
  • 30 */4 * * * - every 4 hours at xx:30 (00:30, 04:30, 08:30, …)

Gotchas when running every 4 hours

  • Anchored at midnight - The hour step starts at 0, so 0 */4 * * * runs at 00:00, 04:00 and so on regardless of when you installed it. Shift the phase with a range, for example 0 1-23/4 * * *.
  • 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-5
    Weekdays at 18:00
  • 0 0 1 * *
    Once a month, on the 1st at midnight

Cheatsheet

Full cheatsheet
FieldReq.RangeWildcards
minuteyes0-59, - * /
houryes0-23, - * /
day of monthyes1-31, - * /
monthyes1-12 or JAN-DEC, - * /
day of weekyes0-6 or names; some dialects use 0-7 or 1-7 — see Dialects, - * /

Frequently asked questions

Timing

How many runs per day does a four-hour cron produce?

Six. 0 */4 * * * selects 00:00, 04:00, 08:00, 12:00, 16:00, and 20:00, with an exact four-hour gap back to midnight. Expression: 0 */4 * * *

Open in editor
How do I offset the four-hour cadence by two hours?

Use 0 2-22/4 * * *. It fires at 02:00, 06:00, 10:00, 14:00, 18:00, and 22:00. Expression: 0 2-22/4 * * *

Open in editor
How do I run every 4 hours at 30 minutes past?

Use 30 */4 * * *. It fires at 00:30, 04:30, 08:30, and every four hours through 20:30. Expression: 30 */4 * * *

Open in editor

Days and months

How do I cover an 08:00-20:00 shift every 4 hours?

Use 0 8-20/4 * * 1-5. It fires at 08:00, 12:00, 16:00, and 20:00 on weekdays; both range endpoints are included. Expression: 0 8-20/4 * * 1-5

Open in editor
Business hours guide
How do I run every 4 hours all day on weekdays only?

Use 0 */4 * * 1-5. It runs six times on each weekday and pauses on Saturday and Sunday. Expression: 0 */4 * * 1-5

Open in editor
Weekday cron guide

Timezones and DST

Does a four-hour cron stay four elapsed hours apart during DST?

It is scheduler-specific. Vixie/cronie can skip or double a selected local hour; GitHub advances nonexistent times; EventBridge Scheduler skips spring and runs once in the overlap. UTC-only Vercel and Cloudflare preserve the six-run UTC schedule.

Timezone and DST reference

Platforms

What is the AWS EventBridge expression for every 4 hours?

Use cron(0 0/4 * * ? *). EventBridge uses six fields including year, requires ? in one day field, and wraps the expression in cron(...). Expression: 0 0/4 * * ? *

Open in editor
AWS cron guide
What is the Quartz expression for every 4 hours?

Use 0 0 0/4 * * ?. Quartz's leading seconds and minutes fields are zero, and its hour step starts at midnight. Expression: 0 0 0/4 * * ?

Open in editor
Quartz cron guide
Can GitHub Actions and Vercel Hobby run every 4 hours?

GitHub Actions can because four hours exceeds its five-minute floor. Vercel Hobby cannot because it allows cron only once per day.

Cron dialect matrix

Debugging

Will cron catch up a missed four-hour run?

No. Standard cron resumes at the next matching hour; retain a checkpoint if each four-hour data window must be processed.

Crontap

Can Crontap run an HTTP job every 4 hours?

Yes. Crontap can call an endpoint on the four-hour schedule and retry failed requests; make the endpoint idempotent.

Schedule API calls

General

What is the cron expression for every 4 hours?

0 */4 * * *. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job every 4 hours; AWS EventBridge and Quartz need the six-field form.

How can I verify this cron actually runs every 4 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 */4 * * * 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