cron expression · plain english
Cron every weekday at 9 AM
Fires at 09:00 Monday through Friday — skips Saturday and Sunday. Standard 'business days only' schedule for weekday-only operations.
intermediate
POSIX / Jenkins / Quartz / AWS
0 9 * * 1-5
cron every weekday at 9 am.
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 9 * * 1-5 | DOW range 1-5 = Mon-Fri |
| Cron (named alt) | 0 9 * * MON-FRI | named-day range — more readable |
| Jenkins | H 9 * * MON-FRI | minute spread |
| Quartz (Java) | 0 0 9 ? * MON-FRI | ? for DOM, range for DOW |
| systemd timer | OnCalendar=Mon..Fri 09:00 | double-dot range |
| AWS EventBridge | cron(0 9 ? * MON-FRI *) | Quartz-flavor |
Common pitfalls
- Weekday ≠ business day. Saturdays/Sundays excluded but US/UK/JP holidays still fire. Add code-level holiday check or use a calendar service.
- DOW field 1-5 vs MON-FRI yields identical results on standard cron, but Quartz uses 1=Sunday so DOW range `2-6` is needed. Always test cross-platform.
- `0 9 * * 1-5` and `0 9 1-31 * 1-5` are different: cron's DOM and DOW are OR-combined when both specified — the second fires on weekday OR 1st-31st (= every day).
Use cases
- Daily standup reminder
- Weekday-only metrics report
- Business-hours-only API polling
- Workday queue draining
- Weekday-only support escalation check
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 a cron job every 10 minutes · how to run cron daily at midnight · cron every 15 min during business hours · cron every sunday at 2 am (weekly maintenance)