Nobody reads */15 9-17 * * 1-5 correctly at a glance. Every expression here comes with a description, so you can generate a set of schedules and check that your parser agrees with what the words say.
What you can control
- Three flavours: Unix five-field, Quartz with a seconds field, and the AWS EventBridge
cron(...)wrapper. - Plain-English descriptions for every expression, generated from the fields rather than looked up.
- Presets for the common shapes — sub-hourly, daily, weekly, monthly — plus a fully random mode.
- Random mode produces ranges, steps and lists, which is where most cron parsers stop being correct.
What this is not
Quartz and AWS both use six fields but place them differently, and AWS uses a year field where Quartz uses seconds. Check which one your scheduler expects before pasting.
Questions
What do the five fields mean?
Minute, hour, day of month, month, day of week — in that order. The day-of-week field runs 0 to 6 with Sunday as 0 in most implementations.
Why does Quartz have six fields?
It adds seconds at the front, which Unix cron has no concept of. It also requires ? in either day field to mark it as unspecified.
What happens if both day fields are set?
In Unix cron they are OR'd, so 0 0 1 * 1 runs on the first of the month and on every Monday. That surprises almost everyone the first time.