Quartz Cron to Unix Cron Converter
Paste a Quartz cron trigger expression to get the equivalent Unix cron expression — with explicit warnings whenever seconds-level precision or a year restriction can't survive the conversion.
Requires review Works only under specific conditions — read the caveats before relying on it.
- Quartz cron
0 0 9 ? * MON-FRI *- Unix cron
0 9 * * MON-FRI
Main limitation: Quartz's seconds field is dropped entirely, which is exact only when it's exactly "0" — anything else (like "0/30" for every 30 seconds) means the schedule genuinely cannot run more than once a minute under Unix cron, and this is flagged rather than silently rounded.
Examples
Weekday mornings at 9am
| Quartz cron | 0 0 9 ? * MON-FRI * |
|---|---|
| Unix cron | 0 9 * * MON-FRI |
An exact conversion — zero seconds, a wildcard year, and day names that don't need renumbering.
Last day of the month (no Unix equivalent)
| Quartz cron | 0 0 0 L * ? * |
|---|---|
| Unix cron | 0 0 L * * |
The `L` (last day of month) token is preserved literally in the output but flagged as unsupported — standard Unix cron has no field value that means "the last day of the month", so this schedule will not actually run as written; see the caveat above for common workarounds.
Caveats
Caveat
Quartz's seconds field is dropped entirely, which is exact only when it's exactly "0" — anything else (like "0/30" for every 30 seconds) means the schedule genuinely cannot run more than once a minute under Unix cron, and this is flagged rather than silently rounded.
Caveat
A specific Quartz year (e.g. "2030") has no Unix cron equivalent at all — Unix cron has no year field, so the converted schedule will recur every year instead of just once, and this is flagged as a real semantic change, not a formatting detail.
Caveat
Quartz's "?" (no specific value) becomes Unix cron's "*" automatically, since Unix cron has no "?" concept and "*" means the same thing: no restriction on that field.
Caveat
Quartz-only features with no Unix equivalent at all — L (last day), W (nearest weekday), and # (nth weekday of month) — are flagged with an explanation rather than dropped silently, since there is no cron-native workaround for them.
References
- Quartz Scheduler docs — CronTrigger Tutorial — checked 2026-07-29
- crontab(5) — POSIX cron expression format (man7.org) — checked 2026-07-29
Last verified 2026-07-29.