cron expression · plain english
Cron first day of every month
Fires at 00:00 on the 1st of every month — 12 fires per year. Standard 'monthly' schedule for billing, reports, and rotation.
beginner
POSIX / Jenkins / Quartz / AWS
0 0 1 * *
cron first day of every month.
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 0 1 * * | minute=0, hour=0, day-of-month=1 |
| Cron (shortcut) | @monthly | vixie-cron alias for `0 0 1 * *` |
| Jenkins | H H 1 * * | minute and hour hashed; DOM stays 1 |
| Quartz (Java) | 0 0 0 1 * ? | 6-field; ? for DOW when DOM is set |
| systemd timer | OnCalendar=monthly | = *-*-01 00:00:00 |
| AWS EventBridge | cron(0 0 1 * ? *) | Quartz-flavor |
Common pitfalls
- 1st-of-month at midnight is a load spike on shared hosts (billing systems, log rotators). Push to 03:00 or hash with H.
- DST handover doesn't matter for monthly (months always have a 1st), but TZ migration mid-month can shift the fire by hours.
- `0 0 1 * *` and `0 0 1 1 *` look similar but differ: first = monthly, second = annual on January 1st.
Use cases
- Monthly subscription renewal sweep
- Billing report generation
- Monthly metrics rollup
- License compliance audit
- Cold-storage rotation
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 every friday at 5 pm (end of work week) · cron every quarter (jan, apr, jul, oct 1st) · cron: every 15 minutes · cron: every day at noon (12:00)