Skip to content
Processing locally — files never leave your device

Cron Expression Parser

Translate cron expressions to plain English and preview the next several scheduled runs.

At minute(s) 0,15,30,45, hour(s) 9,10,11,12,13,14,15,16,17, on Mon, Tue, Wed, Thu, Fri.

  • 6/22/2026, 9:00:00 AM
  • 6/22/2026, 9:15:00 AM
  • 6/22/2026, 9:30:00 AM
  • 6/22/2026, 9:45:00 AM
  • 6/22/2026, 10:00:00 AM

How to use Cron Parser

  1. Type or paste a 5-field cron expression: minute, hour, day-of-month, month, day-of-week.
  2. Read the plain-English explanation generated underneath the input.
  3. Check the next 5 scheduled run times, shown in your browser's local timezone.
  4. Pick a preset (hourly, daily, weekly) to fill the input with a common pattern you can then edit.
  5. Tweak one field at a time and watch the next-run preview change to confirm the cadence you want.

How cron expressions work

Cron is the scheduling syntax behind almost every Unix-like system, CI pipeline, and serverless scheduler. A single line of five space-separated fields tells the scheduler exactly when to run a job. The syntax is terse and easy to misread, which is why a parser that turns it back into plain English is so useful.

The five fields

A standard cron expression has five fields, always in this order:

┌───────────── minute        (0 - 59)
│ ┌───────────── hour         (0 - 23)
│ │ ┌───────────── day-of-month (1 - 31)
│ │ │ ┌───────────── month      (1 - 12)
│ │ │ │ ┌───────────── day-of-week (0 - 6, Sun=0)
│ │ │ │ │
* * * * *

Every field accepts * to mean "any value". A bare * in all five fields runs the job once a minute, forever.

Operators inside a field

  • * — every valid value for that field.
  • 5 — a single literal value.
  • 1-5 — an inclusive range (Monday through Friday in the day-of-week field).
  • */10 — a step: every 10th value starting at the field minimum.
  • 0,30 — a list of specific values.

Common patterns

*/5 * * * *     every 5 minutes
0 * * * *       at the top of every hour
0 9 * * *       every day at 09:00
0 9 * * 1-5     weekdays at 09:00
0 0 1 * *       midnight on the 1st of each month
30 2 * * 0      02:30 every Sunday

The day-of-month / day-of-week gotcha

When both the day-of-month and day-of-week fields are restricted, POSIX cron runs the job if eitherone matches. The expression 0 0 13 * 5 therefore fires on the 13th of every month andon every Friday — not only on Friday the 13th. Leave one of the two fields as * to avoid the surprise.

Timezones and resolution

Cron evaluates in the timezone of the daemon or platform — commonly UTC in cloud environments. The smallest interval it can express is one minute; sub-minute scheduling needs an extended scheduler with a seconds field. Always confirm the timezone your runner uses before trusting a daily or hourly schedule in production.

Related dev tools

  • JSON Formatter — tidy the config or job definition your cron lives in.
  • Regex Tester — test patterns used alongside scheduled scripts.
  • UUID Generator — generate unique IDs for scheduled job runs.
  • Time Converter — convert intervals between seconds, minutes, hours, and days.

Frequently asked questions

Which cron syntax does this support?
Standard 5-field cron: minute, hour, day-of-month, month, day-of-week. It supports * (any value), N (a literal), N-M (an inclusive range), N/X (a step), and comma lists such as 1,5,15. Day-of-week 0 and 7 both mean Sunday.
What does each field cover?
Minute is 0–59, hour is 0–23 (24-hour clock), day-of-month is 1–31, month is 1–12 (or names like JAN), and day-of-week is 0–6 starting at Sunday (or names like MON). The fields are separated by spaces and always appear in that order.
How do the day-of-month and day-of-week fields interact?
In POSIX cron, if both day-of-month and day-of-week are restricted (neither is *), the job runs when EITHER matches — they are OR-ed, not AND-ed. So "0 0 13 * 5" runs on the 13th of every month AND on every Friday, which surprises many people.
What does the step syntax mean?
A slash defines a step within a range. "*/15" in the minute field means every 15 minutes (0, 15, 30, 45). "0-30/10" means 0, 10, 20, 30. The number after the slash is the interval; the part before it is the range to step through.
What about Quartz, AWS EventBridge, or Vixie cron extensions?
Some platforms add a leading seconds field (Quartz, AWS use 6 or 7 fields) or non-standard L, W, and ? tokens. This tool sticks to portable POSIX cron — if you have a 6-field expression, drop the seconds field before parsing it here.
Why are next-run times shown in my local timezone?
We compute upcoming runs against your browser's clock so you can sanity-check the cadence visually. In production, cron is evaluated in the daemon or platform timezone (often UTC), so confirm your server is set to the timezone you expect before relying on the schedule.
Does cron understand "every 2 hours" or "twice a day"?
Cron has no natural-language scheduling — you express frequency with steps and lists. "Every 2 hours" is "0 */2 * * *". "Twice a day at 9am and 9pm" is "0 9,21 * * *". This parser turns those expressions back into English so you can verify them.
What is the shortest interval cron can express?
Standard 5-field cron resolves to the minute, so once per minute ("* * * * *") is the floor. Anything sub-minute requires a scheduler with a seconds field (Quartz) or an external loop. This tool assumes minute resolution.

More tools you might find useful in the same flow.

Built by Muhammad Tahir · About