cron expression · plain english
Run a cron job every hour
Fires once per hour, at minute 00 (HH:00). The most common 'periodic batch' schedule. 24 fires per day, predictable timing.
beginner
POSIX / Jenkins / Quartz / AWS
0 * * * *
run a cron job every hour.
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 * * * * | minute=0, hour=*, fires at HH:00 every hour |
| Cron (shortcut) | @hourly | vixie-cron and most modern cron daemons accept @hourly |
| Jenkins | H * * * * | H picks a stable offset (e.g. always :17) to avoid the :00 stampede |
| Quartz (Java) | 0 0 * * * ? | 6-field — seconds=0, minutes=0 |
| systemd timer | OnCalendar=hourly | exact equivalent, fires at HH:00:00 |
| AWS EventBridge | rate(1 hour) | fires at deploy+1h, +2h, ... NOT minute-aligned |
Common pitfalls
- DST handover: in spring-forward TZ, the 02:00 fire is skipped. In fall-back TZ, the 01:00 fire runs twice. Use UTC if you need exact 24 fires/day.
- All `@hourly` jobs fire at exactly HH:00 — you'll see CPU spikes. On Jenkins use `H` instead.
- If your hourly job sometimes takes 30+ minutes, it competes with the next hour's runs of `*/30` jobs. Plan resource budget.
Use cases
- Hourly metrics rollup
- Slack digest of past hour
- Backup snapshot of state
- Trigger downstream workflow
- Refresh authentication tokens with 1h+ TTL
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
cron weekends only (saturday + sunday) · cron every year on january 1st · cron every 30 minutes (half-hourly) · cron every monday at 9 am