Cron Expression Parser Developer Tool

Translate a cron expression into plain English and see its next scheduled run times.

Reading someone else's cron expression, or double-checking your own before it ships, usually means mentally walking through five terse fields one at a time. This free cron parser is a developer tool that translates a standard 5-field cron expression into a plain-English description and computes its next several run times, entirely in your browser.

Expression

Minute
Hour
Day
Month
Weekday

Next 5 runs (your local timezone)

    Runs entirely in your browser — no data is sent anywhere.

    The five fields

    A standard cron expression is five space-separated fields, each describing when that unit of time is allowed to fire: minute hour day-of-month month day-of-week. Each field accepts a wildcard (*, meaning "every value"), a single number, a comma-separated list (1,15,30), a range (9-17), or a step (*/15 for "every 15 units", or 1-31/2 for "every 2nd day starting at 1"). Day-of-week uses 0 for Sunday through 6 for Saturday, and some cron implementations also accept 7 as an alias for Sunday.

    The day-of-month / day-of-week "OR" trap

    The one rule that trips up almost everyone: if both the day-of-month and day-of-week fields are restricted to something other than *, the two are combined with OR, not AND. 0 0 1 * 1 doesn't mean "the 1st, if it's a Monday" — it means "midnight on the 1st of every month, and every Monday," which fires far more often than most people expect when they first write an expression like this. If only one of the two fields is restricted, it behaves the way you'd intuitively expect, since the other field's wildcard doesn't add a second condition.

    Cron vs Laravel's fluent scheduler

    Laravel's Schedule facade wraps most common cron patterns in readable method calls — ->daily(), ->hourlyAt(17), ->weekdays() — specifically so you rarely need to hand-write a raw expression. But ->cron('*/15 9-17 * * 1-5') is still there as an escape hatch for anything the helper methods don't cover, and it's exactly this raw string that gets parsed here. See the task scheduling guide for the full list of fluent frequency methods and how Laravel actually runs the schedule.

    A note on "next run" accuracy

    The next-run times above are computed by walking forward minute-by-minute from right now, in your browser's local timezone, checking each candidate minute against all five fields (respecting the OR rule above). This matches how a real cron daemon evaluates a schedule, but it doesn't account for daylight saving transitions the way a server explicitly configured with a fixed timezone would — if a schedule needs to survive a clock change without skipping or double-firing, see the Timezones section of the scheduling guide.