cron expression · plain english
Cron on the 15th of each month
Fires at midnight on the 15th of every month — exactly 12 times per year. Common for bi-weekly-style schedules anchored to mid-month, or for systems with 1st-and-15th payroll-style cadence.
intermediate
POSIX / Jenkins / Quartz / AWS
0 0 15 * *
cron on the 15th of each 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 15 * * | DOM = 15 |
| Cron (1st + 15th pair) | 0 0 1,15 * * | for full bi-monthly schedule |
| Jenkins | H H 15 * * | minute/hour hash, DOM fixed |
| Quartz (Java) | 0 0 0 15 * ? | 6-field |
| AWS EventBridge | cron(0 0 15 * ? *) | Quartz-flavor |
Common pitfalls
- If your business uses 1st-and-15th cadence, use `0 0 1,15 * *` (single line) NOT two separate cron entries — keeps logic atomic.
- Mid-month is NOT a 15-day gap from 1st-of-month. February's 1st-and-15th are 14 days apart; January is 14, March is 14 (or 17 in leap years), etc. Code accordingly.
- TZ migration moves the fire — if you switch host TZ from EST to UTC mid-month, the 15th fire shifts by 5 hours.
Use cases
- Bi-monthly billing cycle (1st + 15th)
- Mid-month forecast adjustment
- Mid-month inventory reconciliation
- Scheduled performance reviews
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 year on january 1st · cron every 30 minutes (half-hourly) · cron twice daily (midnight and noon) · cron on the first day of every month