Cron Expression Descriptor

Paste a cron expression and see it translated to plain English, plus the next 10 fire times in your local timezone. Supports 5-field Unix cron and 6-field cron with seconds.

Try:

Next 10 fire times — your local timezone

    Anatomy of a cron expression

    A standard Unix cron expression has five fields separated by single spaces. Left to right they are:

    ┌──────────── minute (0-59)
    │ ┌────────── hour (0-23)
    │ │ ┌──────── day of month (1-31)
    │ │ │ ┌────── month (1-12 or JAN-DEC)
    │ │ │ │ ┌──── day of week (0-7 or SUN-SAT; 0 and 7 = Sunday)
    │ │ │ │ │
    *  *  *  *  *

    Field syntax

    • * — every value in the allowed range.
    • 5 — exactly 5.
    • 1-4 — range: 1,2,3,4.
    • 1,3,5 — specific list.
    • */10 — every 10 units starting at the minimum. In the minute field that's 0,10,20,30,40,50.
    • 5-30/5 — step within a range: 5,10,15,20,25,30.
    • MON-FRI — symbolic weekdays (case-insensitive). Months accept JAN-DEC.

    The day-of-month vs day-of-week trap

    When both the day-of-month and day-of-week fields are specific (not *), Vixie cron and POSIX cron evaluate them with an OR: the job fires if either matches. So 0 0 15 * MON fires on the 15th of every month and on every Monday. Many developers expect AND, which is the wrong intuition. If you need AND semantics (e.g. "the 15th only if it's a Monday"), use a single field and handle the rest in your script. Quartz cron (Java) uses ? in one of the two to disambiguate.

    Predefined aliases

    Most cron implementations accept these shortcuts:

    • @yearly / @annually = 0 0 1 1 *
    • @monthly = 0 0 1 * *
    • @weekly = 0 0 * * 0
    • @daily / @midnight = 0 0 * * *
    • @hourly = 0 * * * *
    • @reboot — run once at cron daemon start (not a schedule; no next-fire-time).

    Timezone considerations

    The cron daemon uses the server's system timezone by default. On cloud VMs and containers this is usually UTC. If you need a specific timezone (e.g. a financial data pipeline that must run at 06:00 Jakarta time), either convert to UTC before writing the crontab, set CRON_TZ=Asia/Jakarta in the crontab header (Linux cron ≥ 3.0pl2), or use systemd timers which support OnCalendar=... with explicit TZ. The next-run preview on this page uses your browser's local timezone.

    Related tools