/cron

Cron helper

Explain cron expressions in plain language and preview the next runs.

How it works

A cron expression has five fields: minute, hour, day of month, month and day of week. This tool translates the expression to plain language and shows the next times it will run, in your local time zone.

┌ minute ┌ hour ┌ day(month) ┌ month ┌ day(week)

About this tool

Cron is a scheduling notation used everywhere, from Linux server jobs to Kubernetes CronJobs, GitHub Actions, Cloudflare Workers and backup tools. The expression has five fields that read "minute hour day month weekday", and each field can be a single number, a list, an interval or a wildcard. This tool turns cron expressions into readable text, shows when the job will run next, and lets you build an expression click by click. That way you avoid deploying "* * * * *" only to discover that the job actually ran every minute all night long.

How to use it

  1. Enter a cron expression, for example "0 3 * * *" for every night at 03:00.
  2. Read the plain-English explanation to confirm the schedule matches your intent.
  3. Check the list of upcoming runs to catch hidden surprises like leap years, time zones or weekends.
  4. Use the shortcut buttons ("every 5 minutes", "every Monday", etc.) if you want to assemble an expression without memorising the syntax.

Examples

Every night at 03:00
Input0 3 * * *
OutputRuns at 03:00 every day
Every 15 minutes
Input*/15 * * * *
Output00, 15, 30, 45 past every hour
Weekdays at 09:00
Input0 9 * * 1-5
OutputMonday, Tuesday, Wednesday, Thursday and Friday at 09:00
Weekday 0 and 7 both mean Sunday. 1 = Monday, 6 = Saturday.

Common use cases

  • Schedule nightly backup or maintenance jobs.
  • Send Monday morning report emails.
  • Purge temporary files once an hour.
  • Trigger a Cloudflare Worker or Lambda on a fixed interval.
  • Configure Kubernetes CronJobs without leaking syntax errors into your YAML.

Frequently asked questions

How do I write "every five minutes"?
"*/5 * * * *". The wildcard in the minute field with step 5 fires at 0, 5, 10, ... every hour.
Which time zone does cron use?
Traditionally cron uses the system’s local time zone. Cloud services like GitHub Actions and Cloudflare Workers normally use UTC, check the docs. This tool shows the next runs in your local time.
What do "@reboot" and "@daily" mean?
They are shortcuts in classic cron: @reboot runs once after boot, @daily = 0 0 * * *, @hourly = 0 * * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *. Cloud services rarely support them, use the full 5-field syntax there.
What happens when the clock changes for DST?
With local time a job scheduled at 02:30 runs twice in autumn and is skipped in spring. Set critical jobs to UTC, or to times outside 02–03, to avoid surprises.

Technical background

A cron expression has five fields: minute (0–59), hour (0–23), day-of-month (1–31), month (1–12) and day-of-week (0–6, Sunday = 0). Some dialects (Quartz, used by Spring, .NET) prepend a sixth seconds field, others (AWS EventBridge) append a seventh year field. Field values can be single numbers (5), lists (1,15,30), ranges (9-17), steps (*/5) or names (JAN-DEC, MON-SUN). When both day-of-month and day-of-week are specified, classic Unix cron treats them as OR while Quartz treats them as AND. Cloudflare Workers Cron Triggers, GitHub Actions and Kubernetes CronJobs all use the classic 5-field syntax in UTC. Note that * in day-of-month combined with a specific day-of-week only fires on those weekdays, a common source of bugs for people expecting "every 15th" and "every Monday" at once.