Skip to main content
ZEKILO Dev

Cron Expression Parser

Type a cron expression to read what it means and see when it runs next.

Stays in your browserPOSIX crontabAs of 2026.10.03

Input

How to use Cron Expression Parser

  1. 1Type a cron expression such as 0 9 * * 1-5, or press Sample.
  2. 2Choose the time zone the job runs in: your browser's, UTC, Asia/Seoul, or Asia/Tokyo.
  3. 3Read the description and the next five run times, then press the Copy button on the row you need.

Cron Expression Parser options

Format
Auto decides by the number of fields: 5 fields (minute hour day month weekday, as in Unix cron, Kubernetes, and GitHub Actions), 6 fields (seconds first), or 7 fields (Quartz, with a year). Choose Quartz to read a 6-field expression with Quartz weekday numbers, where 1 is Sunday.
Time zone
The next run times are calculated and shown in this time zone: your browser's (default), UTC, Asia/Seoul, or Asia/Tokyo. Each row also shows the same moment in UTC.

Cron fields

The 5-field format comes from the POSIX crontab specification.

Field Range Notes
Minute 0 to 59
Hour 0 to 23
Day of month 1 to 31 L means the last day
Month 1 to 12, or JAN to DEC
Day of week 0 to 7, or SUN to SAT 0 and 7 are both Sunday

In every field, * means every value, 1,15 is a list, 1-5 is a range, and */15 is a step. This tool checks the number of fields and the range of each field first, so an error names the field that is wrong and the values it accepts.

Time zones on GitHub Actions and Kubernetes

A cron expression has no time zone of its own. The same 0 9 * * 1-5 runs at 09:00 in Seoul on one server and at 09:00 UTC on another. GitHub Actions schedules are evaluated in UTC unless the workflow sets timezone, so by default 09:00 in Seoul has to be written as 0 0 * * 1-5. A Kubernetes CronJob uses the controller manager’s time zone unless spec.timeZone is set.

Cron Expression Parser examples

  • Weekdays at 9:00

    Time zone Asia/Seoul, as of Friday 2026-10-02 10:00.

    Input

    0 9 * * 1-5

    Output

    At 09:00 AM, Monday through Friday
    2026-10-05 (Mon) 09:00
    2026-10-06 (Tue) 09:00
    2026-10-07 (Wed) 09:00
    2026-10-08 (Thu) 09:00
    2026-10-09 (Fri) 09:00
  • Every 15 minutes

    Time zone Asia/Seoul, as of 2026-10-02 10:07.

    Input

    */15 * * * *

    Output

    Every 15 minutes
    2026-10-02 (Fri) 10:15
    2026-10-02 (Fri) 10:30
    2026-10-02 (Fri) 10:45
    2026-10-02 (Fri) 11:00
    2026-10-02 (Fri) 11:15
  • A date that does not exist

    Input

    0 0 31 2 *

    Output

    Never runs (there is no February 31).
  • A value out of range

    Input

    0 25 * * *

    Output

    Field 2 (hour) must be 0 to 23.

Examples use the reference cases this tool is tested against.

Cron Expression Parser: frequently asked questions

Is my input sent to a server?

No. Your input and the result are processed only in this browser and are not stored. Reloading the page clears them.

What happens when both the day of the month and the day of the week are set?

In Unix cron (Vixie cron) the job runs when either one matches. 0 0 1 * 1 runs on the 1st of every month and also on every Monday. This tool shows a note when an expression sets both and calculates the run times with the same OR rule.

Which time zone does my cron job use?

The time zone of the system that runs it. A crontab on a server uses the server's time zone. GitHub Actions schedules use UTC unless a timezone is set. A Kubernetes CronJob uses the time zone of the controller manager unless spec.timeZone is set. Pick that time zone here to see the real run times.

Are @daily and @reboot supported?

@yearly, @monthly, @weekly, @daily, and @hourly are expanded to their 5-field form and handled like any other expression. @reboot runs once when the system starts, so it gets a description but no run times.

How do 5-field, 6-field, and Quartz expressions differ?

A 5-field expression starts at the minute. A 6-field expression adds seconds at the front. Quartz also has seconds, can end with a year, numbers weekdays from 1 (Sunday) to 7 (Saturday), and uses ? in the day field you leave unspecified.

How it works · Standards

  • Processed in: this browser (your device). Nothing is sent or stored.
  • Standards: POSIX crontab
  • Engine: cronstrue 3.27.0 (MIT) · croner 10.0.1 (MIT) · ZEKILO Dev field validation (in-house code)
  • The description text is produced by the cronstrue library in the language of the page.
  • Run times are counted from the moment you type. The list refreshes once a minute while the page is open.
  • Expressions that use L-n (days before the end of the month) get a description, but their run times are not calculated.
  • As of 2026.10.03
  • Changelog: 2026.10.03 First release
Open-source licenses →
Something wrong with the result? Report an issue(Your input is not attached)