Cron · Seconds minutes hours day month weekday [year]
Six-field cron dialects
Quartz, Spring, AWS EventBridge and Jenkins extend cron with seconds or other fields, and they do not agree on order.
Key facts
| Quartz | Seconds minutes hours day month weekday [year] |
|---|---|
| Quartz weekday | 1 = Sunday … 7 = Saturday |
| Spring | Six fields with seconds first |
| AWS EventBridge | Minutes hours day month weekday year — no seconds |
| Jenkins | Five fields plus <code>H</code> for a hashed value |
| EventBridge day fields | One of day-of-month or day-of-week must be <code>?</code> |
| Five-field cron | Seconds are absent |
Find out which dialect you are writing
A six-field expression is not a five-field expression with a zero in front in every product. Quartz and Spring put seconds first; AWS EventBridge uses six fields but starts with minutes and adds a year at the end; Jenkins keeps five fields and adds the H token to spread load.
Copying 0 0 9 * * MON-FRI from a Quartz job into a five-field crontab shifts every value and produces a different schedule. The field count is the first thing to check when a migrated job fires at the wrong time.
Seconds and day rules in practice
Quartz allows ? in either day field, meaning “no specific value”, and requires it in one of them when the other is set. That removes the OR ambiguity of Vixie cron but also makes direct translation lossy. Spring's scheduler follows the same six-field idea with a different weekday convention in some versions, so the documentation for the exact version decides.
EventBridge adds rate and cron expressions with its own limits and no sub-minute cron. Jenkins' H replaces a number with a stable hash per job, which avoids every build starting at minute 0 but makes the actual time less obvious.
Frequently asked questions
Why does my six-field cron fire at the wrong time?
The first field is probably seconds, not minutes, and weekday numbering may be 1-based with Sunday first. Check the product's dialect.
Does AWS EventBridge support seconds in cron?
No. Its cron expression has six fields but starts with minutes and ends with an optional year.
What is H in Jenkins cron?
A hash token that spreads jobs across the interval instead of pinning them to a fixed value such as minute 0.