nicetool.dev logo

Cron Expression Parser

Standard 5-field cron syntax (minute hour day month weekday). Macros like @daily are supported.

“Every 15 minutes, past hour 9-17, on Monday-Friday”

*/15

Minute

0, 15, 30, 45

9-17

Hour

9-17

*

Day (month)

every

*

Month

every

1-5

Day (week)

Monday-Friday

Common
Next 10 runs

    Syntax

    *
    any value
    ,
    list of values
    -
    range of values
    /
    step values (e.g. */15)

    ┌ Minute
    │ ┌ Hour
    │ │ ┌ Day (month)
    │ │ │ ┌ Month
    │ │ │ │ ┌ Day (week)
    * * * * *

    Also supported: @yearly, @monthly, @weekly, @daily, @hourly. Names like MON-FRI and JAN are allowed.

    What is a cron expression?

    A cron expression is a string of five fields that defines a recurring schedule for crontab, Kubernetes CronJobs, GitHub Actions and many job schedulers. Each field restricts when the job runs: minute, hour, day of month, month and day of week.

    Features

    • • Plain-language explanation of any cron schedule
    • • Field-by-field breakdown with expanded values
    • • Next 10 run times in your local time zone or UTC
    • • Presets for common schedules and helpful error messages

    Works offline

    Parsing and scheduling are calculated in your browser. Tip: when both day-of-month and day-of-week are set, cron runs when either one matches.

    100% local processing.

    How to use the Cron Parser

    1. 1

      Type a cron expression with five fields: minute, hour, day of month, month and day of week. Macros like @daily, @hourly and @weekly also work.

    2. 2

      Read the plain-language description to confirm the schedule means what you intended, for example "At 09:00 on Monday through Friday".

    3. 3

      Check the list of next run times. They are shown in your local time zone, so you can see exactly when a job will fire.

    4. 4

      Use the presets and the syntax table to build common schedules quickly, then copy the expression into crontab, Kubernetes CronJob, GitHub Actions or your scheduler.

    Practical examples

    Nightly backups

    0 2 * * * runs every day at 02:00, a quiet hour for a database dump. Check the next runs to make sure it does not collide with another heavy job.

    Business hours only

    */15 9-17 * * 1-5 runs every 15 minutes from 09:00 to 17:45, Monday to Friday, which suits polling a partner API during office hours.

    Monthly reports

    0 8 1 * * runs at 08:00 on the first day of every month, a typical schedule for invoices or a usage report email.

    CI schedules

    GitHub Actions schedule triggers use the same five fields and always run in UTC. Compare the next run times with your local time to avoid surprises.

    Frequently asked questions

    What do the five fields mean?+

    In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12) and day of week (0-6, where 0 is Sunday). An asterisk means "every value".

    What does */15 mean?+

    A step value: every 15 units of that field. */15 in the minute field runs at minutes 0, 15, 30 and 45. 10-50/20 would run at 10, 30 and 50.

    Why does my job run on more days than expected?+

    When both day of month and day of week are restricted, standard cron runs the job when either one matches, not both. 0 0 1 * 1 runs on the 1st of the month and on every Monday.

    Which time zone does cron use?+

    Classic crontab uses the server time zone, many cloud schedulers and GitHub Actions use UTC, and Kubernetes lets you set timeZone on the CronJob. Always check where your job runs.

    From the blog