About this tool
Scheduled test runs, nightly regressions and data clean-up jobs all depend on cron expressions that are easy to misread. This tool translates an expression into plain English and, more usefully, calculates the actual next run times in the time zone you choose, so you can confirm a job really fires at 02:00 local time rather than 02:00 UTC. The calculator follows Vixie cron rules, including the often-surprising one that when both day-of-month and day-of-week are restricted, a day matches if either field matches. It also flags DST gaps where a local time does not exist. Presets include GitHub Actions schedules, which always use 5-field syntax evaluated in UTC.
How to use it
- Type or paste an expression, or choose a preset.
- Pick 5 fields for standard cron, or 6 fields if your scheduler has a leading seconds field.
- Select the time zone the scheduler runs in and how many upcoming runs to list.
- Read the description and next run times; errors explain which field is wrong.
Cron Expression Explainer FAQ
Why does "0 0 13 * 5" run every Friday and not only on Friday the 13th?
In standard cron, if both day-of-month and day-of-week are restricted (neither starts with *), the job runs when either one matches. To run only on Friday the 13th you need a script check inside the job.
What time zone does GitHub Actions use for schedules?
The schedule event is evaluated in UTC, with 5-field POSIX syntax and a minimum interval of five minutes. Runs can be delayed at busy times, especially at the top of the hour, so pick an odd minute for nightly jobs.
Are Quartz expressions supported?
Only the subset shared with standard cron. Quartz uses 1-7 for Sunday to Saturday and adds L, W and #, which this tool reports as unsupported rather than guessing.