* Cron Builder

Cron expression builder and explainer

You wrote a schedule for a job and you are not certain when it will actually fire. Cron Builder puts the expression together one field at a time — minute, hour, day of month, month, day of week — reads the result back in plain English, and lists the next five runs as real dates and times.

It also flags the case where cron does not count the way most people assume. When both the day-of-month field and the day-of-week field are restricted, the job runs whenever either one matches, not only when both do. 0 0 1 * 1 fires on the 1st of every month and on every Monday — not just on Mondays that happen to be the 1st. Getting that backwards turns a schedule that runs about five times a month into one you think runs once a year.

What it handles

  • Ranges, lists and steps: 1-5, 1,15,30, */15
  • Month and weekday names: JAN, MON
  • Macros pasted straight out of a real crontab: @hourly, @daily, @midnight, @weekly, @monthly, @yearly
  • 7 as Sunday in the day-of-week field, and ? in either day field
  • Schedules that can never fire: 0 0 30 2 * is reported as having no matching date, instead of being given an invented one
  • The non-standard L, W and # extensions are rejected with a message naming the field, rather than being quietly misread

Common schedules

  • * * * * * every minute
  • */5 * * * * every 5 minutes
  • 0 * * * * at minute 0 of every hour
  • 0 0 * * * at 00:00 every day
  • 0 9 * * * at 09:00 every day
  • 0 9 * * 1 at 09:00 on Monday
  • 0 9 * * 1-5 at 09:00, Monday through Friday
  • 0 0 1 * * at midnight on the 1st of each month
  • 0 0 1 1 * at midnight on January 1st
  • 0 0 1 * 1 both day fields set — the 1st and every Monday

Everything is computed in your browser. No account, no upload, nothing sent anywhere.

Cron Builder by alftech · more tools at alftech.space

The next runs come from this page's own parser, checked against croniter and two other cron implementations. If an expression is read back wrongly, or the runs are not when your crontab would actually fire, write to a@alftech.space and I will fix it.