Skip to content
snip tools

Cron expression visualizer

Explain a cron expression in plain English and preview its next run times. Runs in your browser.

Runs 100% in your browser

Field breakdown

Next 5 runs (local time)

    How to read a cron expression

    1. Enter a cron expression. Type a 5-field cron string, or pick a preset.
    2. Read the explanation. See it in plain English plus a field breakdown.
    3. Check upcoming runs. The next 5 run times are listed in local time and UTC.

    Reading a cron expression

    Cron is the time-based scheduler behind countless servers, CI pipelines and background jobs. Its five fields are, in order, minute, hour, day-of-month, month and day-of-week. So */15 9-17 * * 1-5 reads as “every 15 minutes, between 9 AM and 5 PM, Monday to Friday.” The syntax is terse and easy to misread, which is exactly how a job ends up firing at the wrong time — this visualizer translates the expression to plain English, breaks down every field, and lists the actual next five run times so you can confirm a schedule before you deploy it.

    Stars, ranges, lists and steps

    Each field accepts four building blocks: * means “every value,” a range like 1-5 means an inclusive span, a list like 1,15,30 means specific values, and a step like */5 means “every 5th” (you can combine them, e.g. 0-30/10). The visualizer validates each field against its legal range — minutes 0–59, hours 0–23, days 1–31, months 1–12, weekdays 0–6 — and tells you precisely which term is out of bounds rather than failing silently.

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

    The single most surprising cron rule: when both the day-of-month and day-of-week fields are restricted (neither is *), a job runs when either matches, not both. So 0 0 1 * 1 fires on the 1st of the month and every Monday — not only on Mondays that fall on the 1st. It's a classic source of jobs running far more often than intended; the next-runs preview makes the real behaviour obvious at a glance.

    A note on time zones

    The preview here uses your browser's local time (with UTC shown alongside), but cron on a server runs in whatever zone that machine is configured for. Daylight-saving transitions can make a wall-clock schedule skip or repeat a run, so for anything sensitive prefer servers set to UTC. To turn a specific run time into a Unix timestamp, use the epoch converter.

    Frequently asked questions

    What cron format does it expect?
    Standard 5-field cron: minute, hour, day-of-month, month, day-of-week. It supports *, ranges (1-5), lists (1,15,30) and steps (*/5, 0-30/10).
    What timezone are the next runs in?
    Your browser's local timezone (also shown in UTC). Note cron itself is timezone-agnostic — the schedule runs in whatever zone the server is configured for; DST transitions can shift wall-clock times.
    How is day-of-month vs day-of-week handled?
    Per cron convention: if both are restricted (neither is *), a run fires when either matches.
    Is my expression uploaded?
    No — parsing and the schedule preview run entirely in your browser.