Cron Generator

Build a cron expression with dropdowns, or paste one to read it in plain English with its next five run times.

Build an expression

Weekdays

Cron expression

0 9 * * *

Explain an expression

In plain English

Next 5 runs (your local time)


    Common examples

    ExpressionMeaning
    * * * * *Every minute
    */5 * * * *Every 5 minutes
    0 * * * *Every hour, on the hour
    0 9 * * 1-5At 09:00, Monday to Friday
    30 8 * * 0At 08:30 every Sunday
    0 0 1 * *Midnight on the 1st of each month
    0 0 * * 0Midnight every Sunday
    15 14 1 * *At 14:15 on the 1st of each month

    The five cron fields

    A cron expression is five fields separated by spaces: minute hour day-of-month month day-of-week. Each field takes a number, a * for "any", a step like */10, a range like 1-5, a list like 1,15,30, or a combination. The builder above assembles a valid expression from dropdowns so you never have to remember the order; the explainer goes the other way, turning any expression into a sentence and showing exactly when it will next fire.

    Reading the special characters

    • * - every value for that field
    • */5 - every 5th value (a step)
    • 1-5 - an inclusive range, Monday to Friday in the weekday field
    • 1,15 - a list of specific values
    • 0-30/10 - a range with a step, so 0, 10, 20, 30

    The day-of-month and day-of-week trap

    The one rule that catches everyone: when both the day-of-month and the day-of-week fields are set to something other than *, cron runs the job when either matches, not both. So 0 0 13 * 5 runs at midnight on the 13th of every month and on every Friday - it is not limited to Friday the 13th. The next-run predictions above use this same OR rule, so what you see is what your server will actually do.

    Scheduling a build or a data export? Pair this with the Unix timestamp converter for log wrangling, the JSON formatter for config files, and the time zone converter when your server clock is not local.

    Frequently asked questions

    What order are the five cron fields in?
    Minute, hour, day-of-month, month, day-of-week, left to right. So 0 9 * * 1 means minute 0, hour 9, any day, any month, on Monday - that is 9am every Monday.
    What does */5 mean?
    A slash sets a step. */5 in the minute field means every 5th minute (0, 5, 10 and so on). You can combine it with a range too: 0-30/10 means minutes 0, 10, 20 and 30.
    How do day-of-month and day-of-week interact?
    When both are restricted (neither is *), standard cron runs the job if EITHER matches. So 0 0 1 * 1 fires on the 1st of the month and on every Monday, not only when the 1st is a Monday.
    My expression has six fields - is that wrong?
    A six-field expression adds seconds at the front. Standard Unix cron uses five fields and ignores seconds. The explainer here spots a six-field input, tells you, and reads it as the last five fields.
    Are the next run times in my time zone?
    Yes. The predicted run times are computed in your browser using your local time zone, the same way your own machine would schedule them.