cron expression · plain english
Run a cron job every 2 hours
Fires at 00:00, 02:00, 04:00, 06:00, 08:00, 10:00, 12:00, 14:00, 16:00, 18:00, 20:00, 22:00 — 12 fires per day on even hours.
intermediate
POSIX / Jenkins / Quartz / AWS
0 */2 * * *
run a cron job every 2 hours.
Next 5 fire times
Computed live in your local timezone. The cron expression itself is timezone-agnostic — these times reflect your browser clock.
Cross-system syntax variants
Same intent, different schedulers. Use this table when migrating between systems.
| System | Expression | Note |
|---|---|---|
| Standard cron (POSIX) | 0 */2 * * * | step notation in hour field |
| Cron (verbose alt) | 0 0,2,4,6,8,10,12,14,16,18,20,22 * * * | equivalent explicit list |
| Jenkins | H H/2 * * * | H/2 in hours field — fires every 2 hours at random minute |
| Quartz (Java) | 0 0 0/2 * * ? | 6-field, hour-step |
| AWS EventBridge | rate(2 hours) | non-aligned; cron(0 0/2 * * ? *) if you want even-hour alignment |
Common pitfalls
- `*/2` in hour field starts at hour 0 (midnight). If you want odd-hour cadence (01, 03, 05), use `1-23/2` instead.
- Even-hour jobs cluster all together — your 00:00 cron is competing with `@hourly`, `@daily`, and `*/15` simultaneously.
- DST: spring-forward skips one fire (02:00→03:00 means the 02:00 even-hour fire never happens that day).
Use cases
- Backup rotation across availability zones
- Twice-per-day-style reports without timing constraint
- Rate-limited API scrapes (60-min refresh windows × 2)
- Container vulnerability re-scan
Translate any cron expression
cronwtf takes any cron string and returns plain-English description plus the next 5 fire times in your timezone. Standard 5-field, Jenkins H, Quartz 6-field — all supported.
Open cronwtf
Related cron schedules
how to run cron daily at midnight · cron during business hours only (9-5, weekdays) · cron every night at 3 am · cron: every hour (top of hour)