DeskKit

time

Cron expression explainer

Translate a crontab line into English and see the next 10 run times.

Runs 100% in your browser. Nothing you paste is uploaded, stored, or sent to a server.

Or build one

Meaning

Next 10 run times

    How to use

    1. Paste a standard 5-field expression (minute, hour, day of month, month, day of week), or build one with the generator fields.
    2. Read the plain-English description. DeskKit supports lists, ranges, steps, and the usual JAN–DEC / SUN–SAT names.
    3. Choose a time zone to preview the next 10 matching instants. Times are calculated on your device from the clock you pick.
    4. Copy the expression back into crontab, GitHub Actions, systemd timers, or a job scheduler.

    Cron expressions are short, but they are easy to misread. A single off-by-one in the day-of-week field is the difference between a weekday deploy and a Sunday-morning page. This tool turns a 5-field Unix crontab line into a sentence you can check with a teammate, then lists the next ten times it would fire.

    Everything happens in your browser. The expression never leaves the page, which matters if you are debugging a production schedule that hints at internal job names. Use it when you inherit a crontab, when you write a GitHub Actions schedule, or when you need to confirm that “every 5 minutes” is really */5 and not 5 * * * *.

    Examples

    Every 5 minutes

    */5 * * * * — the most common polling schedule. Minute is a step field; the other four fields are wildcards, so the job runs all day.

    Weekdays at 09:00

    0 9 * * 1-5 — minute 0, hour 9, any calendar day, any month, Monday through Friday. In standard cron, a restricted day-of-week is enough; you do not also have to list dates.

    First of the month at midnight

    0 0 1 * * — useful for monthly invoices or report rollups. Remember that cron has no “last day of month” token in the classic 5-field dialect.

    How the five fields work

    A classic crontab has five fields: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC), and day of week (0–7 or SUN–SAT, where both 0 and 7 mean Sunday). Each field can be a single number, a comma-separated list, a range (1-5), a step (*/15 or 0-30/5), or a star for “any”.

    When both day-of-month and day-of-week are restricted (not star), Unix cron uses OR: the job runs if either field matches. That surprises people coming from systems that AND the two fields. DeskKit follows the Unix rule so the next-run list matches what Vixie cron and most Linux boxes actually do.

    GitHub Actions, GCP Cloud Scheduler, and many CI products speak the same 5-field language. Quartz and some Java schedulers add seconds or years — those extra fields are not parsed here on purpose, so you do not get a false sense of compatibility.

    FAQ

    Does this support the sixth “seconds” field?

    No. The explainer targets the 5-field Unix dialect used by crontab, GitHub Actions, and most Linux hosts. If you have a 6- or 7-field Quartz expression, drop the seconds/year fields before pasting.

    Are next run times in UTC?

    UTC is the default, because most servers store cron in UTC. Change the time zone dropdown to preview wall-clock times in New York, London, Berlin, or any IANA zone your browser knows.

    Why do day-of-month and day-of-week combine with OR?

    That is the historical Vixie cron rule. An expression such as 0 0 1,15 * 5 runs at midnight on the 1st, the 15th, and every Friday. DeskKit mirrors that behavior so the preview matches production.

    Is my expression uploaded?

    No. Parsing, English descriptions, and next-run math all run in JavaScript on your machine. There is no API call.

    DeskKit is a static site. Interactive tools require JavaScript.