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
- 1Type a cron expression such as 0 9 * * 1-5, or press Sample.
- 2Choose the time zone the job runs in: your browser's, UTC, Asia/Seoul, or Asia/Tokyo.
- 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.
Related tools
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