cron-builder
Build a schedule visually and get the expression for Hangfire (standard cron) or Quartz.NET (6-field, with seconds). Or paste one in to get a plain-English explanation.
Hangfire
Quartz.NET
client-side only
schedule.cron — build one
output
Pick a frequency and click Generate.
explain.cron — or paste an expression to explain
// the field-count trap
Dropping a Hangfire-style 5-field expression into a Quartz.NET trigger (or vice versa) will either throw at startup or, worse, silently run at a time you didn't intend — the fields just shift by one and get misread.
// field order reference
- Hangfire / standard cron (5 fields):
minute hour day-of-month month day-of-week - Quartz.NET (6 fields):
second minute hour day-of-month month day-of-week— a 7th optional year field can follow. - In Quartz.NET, if you specify a value for day-of-month, day-of-week must be
?, and vice versa — you can't constrain both at once.
The single most common cron bug in .NET apps isn't a wrong value — it's using the wrong number of fields for the scheduler. Hangfire uses standard 5-field Unix cron (minute, hour, day-of-month, month, day-of-week). Quartz.NET uses 6 or 7 fields, adding seconds at the front and treating day-of-week differently (1–7 = SUN–SAT, and it uses
?in either the day-of-month or day-of-week slot to mean "no specific value," since Quartz doesn't allow both to be specified at once).