Skip to content

Cron expression generator and tester

Write or check a cron expression: plain-English translation, next run times in your time zone and ready-made templates.

  • Free
  • No sign-up
  • No file uploaded
  • Windows, Mac, Android, iPhone

Loading the tool…

About this tool

Build a cron schedule field by field or paste an existing expression: the tool translates it into a clear sentence and lists its next eight runs in your time zone. Ideal for checking a crontab, a GitHub Actions schedule or a Kubernetes CronJob before deploying it.

When to use it

Scheduling a server job

Nightly backup, temp file cleanup, a report sent on Monday morning: compose the expression and check it fires at the right moments before adding it to your crontab.

Configuring CI or the cloud

GitHub Actions (on.schedule), GitLab CI, Kubernetes CronJob, AWS EventBridge and Vercel Cron use the same five-field syntax. Test it here, keeping in mind these services run in UTC.

Understanding a legacy expression

A line like */15 9-17 * * 1-5 in an old project? Paste it to read “every 15 minutes past hour 9–17, on Monday–Friday” and see actual dates.

How to use

  1. Type an expression or pick a template.
  2. Read its plain-English translation.
  3. Check the next runs and copy it.

How it works

A cron expression has five fields: minute, hour, day of month, month and day of week. Each accepts a value, a list (1,15), a range (1-5), a step (*/10) or the star for “every value”. English names (JAN, MON) and shortcuts such as @daily or @hourly are recognised.

For the next runs, the tool walks through the coming days and keeps the minutes that satisfy every field. It applies cron's special rule: if both day of month and day of week are restricted, matching either one is enough. Dates are computed in your device's time zone.

Tips for best results

  • Servers and cloud services often run cron in UTC: shift the hours accordingly.
  • Avoid running every job at exactly midnight: pick an arbitrary minute (17 3 * * *) to spread the load.
  • “0 0 1 * 1” does not mean “the first Monday of the month” but “the 1st of the month AND every Monday”.
  • For a job every 90 minutes, cron is not enough: use two lines or a richer scheduler.
  • Add a comment above each crontab line with the description given by the tool.

Common problems and fixes

“5 fields expected”

Some tools (Quartz, Spring) use 6 or 7 fields with seconds and year. Classic crontab has only 5: remove the seconds field.

My job runs at a shifted time

The server is probably not in your time zone. Check with the date command on the machine, or convert to UTC.

It never fires

The requested date may not exist (30 February) or comes around rarely (29 February). The list of next runs shows it immediately.

Frequently asked questions

Is Sunday 0 or 7?

Both: cron accepts 0 and 7 for Sunday. Monday is 1, Saturday 6.

Are seconds supported?

No, standard cron syntax stops at the minute. For second-level precision, you need another scheduler (systemd timers, Quartz).

What is the difference between */5 and 0/5?

None for minutes: both mean every 5 minutes starting at 0. 5/15 starts at 5: 5, 20, 35, 50.

Can I use day names in other languages?

No, cron only knows English abbreviations (MON, TUE…). The tool translates them in the description.

Related searches

Still stuck?

Ask on the forum: the category, the tool, your device sheet and the test result will be filled in for you.