Cron Expression Explainer and Generator

Type or paste a crontab schedule to see in plain words when it runs and the exact next run times. Or build one field by field, starting from a common preset. Works for Linux cron, Kubernetes CronJobs, GitHub Actions and most schedulers.

Free · No sign-up

0–59 * , - /
0–23 * , - /
1–31 * , - / ?
1–12 or JAN–DEC
0–7 or SUN–SAT (0 and 7 = Sunday)

Next run times

    Common schedules

    Type a cron expression or pick a common schedule.

    How to use it

    1. Type or paste a cron expression in the box, or click one of the common schedules.
    2. Read the schedule in plain words below the box. Mistakes are explained right away, field by field.
    3. Check the next 10 run times. They are shown in your time zone; tick Show times in UTC to compare with a server that runs on UTC.
    4. Fine-tune single fields in the inputs below the expression. The expression updates as you type.
    5. Copy the expression into your crontab, or copy a link to share the schedule with your team.

    Why use this tool

    Plain-language explanation

    Every expression is translated into a clear sentence, such as At 09:30, on every day from Monday through Friday.

    Next 10 run times

    See exactly when the job will run next, in your local time zone or in UTC, with how far away each run is.

    Field-by-field builder

    Edit minute, hour, day, month and weekday in separate inputs with the allowed values shown next to each.

    Clear error messages

    Out-of-range values, backward ranges, wrong field counts and unsupported Quartz syntax are pointed out by field.

    Seconds and shortcuts

    Supports 6-field expressions with seconds, names like MON-FRI and JAN, and shortcuts like @daily and @reboot.

    Shareable links

    Copy a link that opens the page with your expression, handy for code reviews and tickets.

    Cron syntax at a glance

    A standard cron expression has five fields separated by spaces. The job runs when the current time matches all fields. A * means every value.

    FieldAllowed valuesExampleMeaning
    Minute0–5930At minute 30
    Hour0–239At 9 in the morning
    Day of month1–311On the 1st
    Month1–12 or JAN–DEC*Every month
    Day of week0–7 or SUN–SAT1-5Monday to Friday

    Special characters

    CharacterMeaningExample
    *Every value* in the hour field: every hour
    ,List of values0,30: at minute 0 and 30
    -Range of values1-5: Monday through Friday
    /Step*/15: every 15 minutes
    @dailyShortcutSame as 0 0 * * *

    Common cron examples

    ExpressionRuns
    */5 * * * *Every 5 minutes
    0 * * * *At the start of every hour
    0 0 * * *Every day at midnight
    30 2 * * 0Every Sunday at 02:30
    0 9 * * 1-5Weekdays at 09:00
    0 0 1 * *At midnight on the first day of every month
    0 */6 * * *Every 6 hours, at 00:00, 06:00, 12:00 and 18:00
    15 3 * * 1Every Monday at 03:15

    Pitfalls to avoid

    • Time zone: cron uses the server's time zone, which is often UTC. Kubernetes CronJobs and GitHub Actions use UTC unless you set a time zone.
    • Day of month and day of week together: 0 0 1 * 1 runs on the 1st of each month and on every Monday, not only on Mondays that fall on the 1st.
    • */7 in the minute field restarts each hour, so it runs at 0, 7, … 56 and then 0 again, which is 4 minutes later.
    • Daylight saving time: jobs between 02:00 and 03:00 local time can be skipped or run twice on the night the clocks change.
    • The % character has a special meaning in crontab lines and must be escaped as \% inside commands.

    Frequently asked questions

    What is a cron expression?

    It is a short schedule made of five fields: minute, hour, day of month, month and day of week. Cron on Linux and macOS, and many schedulers such as Kubernetes CronJobs and GitHub Actions, use it to decide when a job runs.

    Is this the same as crontab.guru?

    No. This is an independent free tool with similar goals. It also lists the next run times in your time zone or UTC, supports seconds and has a field-by-field builder, in six languages.

    How do I run a cron job every 5 minutes?

    Use */5 * * * *. The */5 in the minute field means every fifth minute, starting at minute 0.

    How do I run a job on weekdays only?

    Put 1-5 in the day-of-week field, for example 0 9 * * 1-5 for 09:00 Monday to Friday. You can also write MON-FRI.

    Is Sunday 0 or 7?

    Both. In standard cron, 0 and 7 both mean Sunday, and 1 is Monday. Some other systems, such as Quartz, count differently, with 1 as Sunday.

    How do I run a job on the last day of the month?

    Standard cron has no symbol for it. The L in some tools is a Quartz extension. A common workaround is 0 0 28-31 * * with a check in the command, such as [ "$(date -d tomorrow +\%d)" = "01" ] && your-command.

    Which time zone do the run times use?

    The list shows your device's time zone by default. Tick Show times in UTC to see them in UTC, which is what most servers, containers and cloud schedulers use.

    Does it support seconds?

    Yes. Tick the seconds option or type 6 fields, and the first field is read as seconds, as in Quartz and Spring. Standard Linux cron does not support seconds.

    Related tools

    Need something built?

    Tell us what you want to create.

    Tell us what you need built, from a simple website to a complete app, AI solution, automation, or custom system.

    Tell us what you want to build. We review every enquiry and reply by email.

    Contact

    Thanks, your enquiry is on its way.

    We will review the details and reply by email.