Skip to content

Cron expression explainer

Runs on your device

Read a cron schedule in plain English and see its next run times in any time zone, including UTC for GitHub Actions.

minute · hour · day of month · month · day of week

Runs at 09:00 on Monday, Tuesday, Wednesday, Thursday and Friday.

  1. Mon, 19 Oct 2026, 09:00 UTC
  2. Tue, 20 Oct 2026, 09:00 UTC
  3. Wed, 21 Oct 2026, 09:00 UTC
  4. Thu, 22 Oct 2026, 09:00 UTC
  5. Fri, 23 Oct 2026, 09:00 UTC
  6. Mon, 26 Oct 2026, 09:00 UTC
  7. Tue, 27 Oct 2026, 09:00 UTC
  8. Wed, 28 Oct 2026, 09:00 UTC

How to use Cron expression explainer

  1. Type a cron expression, or pick a common schedule.
  2. Choose the time zone your scheduler runs in: UTC for GitHub Actions and Vercel Cron.
  3. Read the schedule in plain English and check the next eight run times.

Reading a cron expression

A cron expression has five fields: minute, hour, day of the month, month, and day of the week. An asterisk means every value; a list such as 1,15 means those values; a range such as MON-FRI means every value between; and a step such as */15 means every fifteenth value. Names such as JAN and MON work in the month and weekday fields, and shortcuts such as @daily and @hourly are understood.

The tool turns the expression into a plain-English sentence, such as Runs at 09:00 on Monday, Tuesday, Wednesday, Thursday and Friday, and lists the next eight times it will fire, so you can see the schedule rather than work it out.

Time zones

The most common cron mistake is the time zone. GitHub Actions and Vercel Cron always read schedules in UTC, while a server's crontab uses the server's own time zone. Choose the zone your scheduler uses and the next runs are listed in that zone and in your own, so a job meant for 9 a.m. in Bangalore shows up as 03:30 UTC.

Daylight-saving changes are handled by the browser's time zone data, so a schedule in a zone like Europe/London shows its runs shifting by an hour when the clocks change.

Day of month and day of week

When both the day-of-month and day-of-week fields are restricted, standard cron runs the job when either matches, not only when both do. 0 0 13 * FRI therefore runs on every 13th of the month and on every Friday, not only on Friday the 13th. The next-run list makes that behaviour visible before it surprises you.

Expressions with a sixth field, usually seconds, are rejected with an explanation, because crontab, GitHub Actions and Vercel don't support them.

Privacy

Expressions are read and next runs calculated in your browser, using its built-in time zone data. Nothing is sent or saved.

Questions

Why does my GitHub Actions schedule run at the wrong hour?
GitHub Actions and Vercel Cron read schedules in UTC. Pick UTC here and the next runs show both UTC and your own time, so you can see the difference.
What if I set both a day of the month and a day of the week?
Like crontab, the schedule runs when either matches, not only when both do. 0 0 13 * FRI runs on every 13th and every Friday.
Does it support seconds?
No. Standard cron has five fields. A sixth field usually means seconds or a year, which crontab, GitHub Actions and Vercel don't support, and the tool says so.