Cron Expression Builder

A cron expression builder and decoder. Type a five-field cron schedule and instantly get a plain-English description plus the next several times it would fire, or start from a common preset. Supports ranges, lists and step values, and explains what each of the five fields means — all computed in your browser.

minhourdommondow

At 02:30.

Next runs

  • Jul 26, 2026, 2:30 AM
  • Jul 27, 2026, 2:30 AM
  • Jul 28, 2026, 2:30 AM
  • Jul 29, 2026, 2:30 AM
  • Jul 30, 2026, 2:30 AM
  • Jul 31, 2026, 2:30 AM

Cron is a five-number sentence that says when to do something. The fields — minute, hour, day-of-month, month, day-of-week — each hold a value, a wildcard, or a small pattern, and a job fires the instant the clock matches all of them. Read left to right, “30 2 * * *” is simply: at minute 30 of hour 2, on any day, in any month, on any weekday — 02:30, daily.

The expressiveness comes from four small operators. A star is “every.” A slash adds a step, so “*/15” in the minute field is every quarter hour. A hyphen is a range, “1-5” for Monday to Friday. A comma is a list, “0,30” for the top and bottom of the hour. Combine them — “0 9-17 * * 1-5” — and you have hourly, nine to five, on weekdays, in eight characters. This tool turns whatever you type back into a sentence and shows the next few fire times, so you can see the schedule instead of trusting it.

Two traps are worth burning in. First, when both day-of-month and day-of-week are set, cron usually means OR, not AND — “0 0 1 * 1” runs on the 1st and every Monday, which surprises people every time. Second, cron has no idea what time zone you mean; the daemon uses the server’s, and daylight-saving shifts can drop or double a run. Write the pattern here, but pin the time zone where the job actually runs.

How it works

  • Decodes a five-field cron expression into plain English.
  • Shows the next several fire times from now.
  • Supports *, ranges (1-5), lists (0,30) and steps (*/15).
  • Presets for hourly, daily, weekly, monthly and weekdays.

Frequently asked questions

What are the five cron fields?

A standard cron expression has five space-separated fields, in order: minute (0–59), hour (0–23), day-of-month (1–31), month (1–12), and day-of-week (0–6, where 0 is Sunday). An asterisk means "every" value for that field. So "30 2 * * *" is minute 30, hour 2, every day, every month, every weekday — 02:30 daily. This tool reads each field and turns the whole thing into a sentence.

What do *, /, - and , mean?

An asterisk (*) matches every value. A slash sets a step: */15 in the minute field means every 15 minutes, and 0/2 in the hour field means every 2 hours from midnight. A hyphen is a range: 1-5 in day-of-week means Monday through Friday. A comma is a list: 0,30 means at minute 0 and minute 30. You can combine them, like 0,15,30,45 or 9-17 for business hours.

How is day-of-month combined with day-of-week?

This is the classic cron gotcha: when both day-of-month and day-of-week are restricted (neither is *), most cron implementations treat them as an OR, not an AND — the job runs if either matches. So "0 0 1 * 1" fires on the 1st of the month OR every Monday, not only on Mondays that fall on the 1st. If you need "the 1st only when it is a Monday," cron alone cannot express it cleanly; you check the day inside the job.

Does this account for time zones?

The next-run times shown here are computed in your browser’s local time zone. Real cron daemons run in whatever time zone the server is configured for (often UTC), and daylight-saving transitions can cause a job to skip or repeat an hour. For scheduled jobs that matter, set and document the time zone explicitly, and prefer UTC on servers to avoid DST surprises — the schedule you write here is the pattern, not the environment.