Developer

Cron Expression Builder

Build and decode cron expressions with a plain-English explanation and the next run times. Covers standard five-field and extended formats.

* * * * *
Run every minute

Explanation

  • Minute: 0-59
  • Hour: 0-23
  • Day of Month: 1-31
  • Month: 1-12 (or JAN-DEC)
  • Day of Week: 0-6 (Sun-Sat)

Need this built for your product?

We design, build & host secure software & APIs.

Talk to an engineer

The five fields

A standard cron expression has five fields in a fixed order: minute, hour, day of month, month, and day of week. Each accepts a number, a list separated by commas, a range with a hyphen, a step with a slash, or an asterisk for every value. Minute runs 0 to 59, hour 0 to 23, day of month 1 to 31, month 1 to 12, and day of week 0 to 6 with Sunday as 0. Some implementations also accept 7 for Sunday.

The day-of-month and day-of-week trap

This catches almost everyone once. When both the day-of-month and the day-of-week fields are restricted, standard cron treats them as OR, not AND. The expression 0 0 13 * 5 does not mean "Friday the 13th". It means the 13th of every month and also every Friday. To get one specific weekday, leave day-of-month as an asterisk. Quartz-style cron, used by Java schedulers, resolves this differently by requiring one of the two fields to be a question mark.

Steps behave differently from ranges

*/15 in the minute field means every fifteenth minute starting at zero: 0, 15, 30, 45. But */40 means 0 and 40 only, then it resets at the top of the hour, so the gap between the second and third run is 20 minutes rather than 40. Steps divide the field's range; they do not schedule a repeating interval that crosses field boundaries. Any step that does not divide evenly into 60 produces an uneven schedule.

Time zones and daylight saving

Cron typically runs in the server's local time zone. When clocks go forward, jobs scheduled in the skipped hour never run. When clocks go back, jobs in the repeated hour may run twice. For anything where a missed or doubled run matters, either run the server in UTC or use a scheduler with explicit time zone support and idempotent jobs.

Special strings

Most implementations accept shorthand: @hourly, @daily, @weekly, @monthly, @yearly and @reboot. They are clearer than the numeric equivalents for simple schedules and worth using when they fit.

Frequently Asked Questions

Privacy & Security

Built locally.

Data: None
Client-side-Side
Active
v1.0

About This Tool

This tool runs entirely in your browser. No data is sent to any server, ensuring complete privacy. Simply use the interface above to get started — no registration or login required.

Disclaimer: This tool is provided "as is" without warranty of any kind. Results are for educational and utility purposes.