Cron expression generator

Build and explain cron schedules, with the next run times.

FreeRuns in your browserNo signupUpdated 2026-10-29

Field syntax

*Every value
5Exactly 5
1,15The 1st and the 15th
1-51 through 5
*/10Every 10th value, starting at 0
LLast day (day-of-month field, where supported)

In plain English

At 09:30, Monday through Friday

Times shown in UTC

Standard 5-field cron as used by Linux crontab, GitHub Actions, Vercel and most schedulers. Some systems add a seconds field at the front or run in UTC; check yours.

About this tool

How it works and how to read the result.

Need this done for you?

AI workflow automation

Automate the repetitive work between inboxes, documents and systems.

See the service

What it does

The cron expression generator lets you build a schedule from a preset or by editing the five fields, then explains the result in plain English and lists the next ten run times with the gap between them. It uses the standard five-field format understood by Linux crontab, GitHub Actions, Vercel, Render, Kubernetes CronJobs and most queue schedulers. Invalid expressions are flagged with the reason, such as a sixth field or an hour of 24. A copy button gives you the finished expression. All parsing runs in the browser using the cronstrue and cron-parser libraries.

How to use it

  1. Pick a preset that is close to what you need, such as "Weekdays at 09:30", or type an expression directly.
  2. Adjust any of the five fields. The full expression and the explanation update as you type.
  3. Read the next ten runs and confirm the gaps look right.
  4. Copy the expression into your crontab, workflow file or scheduler config.

How to read the result

Take 30 9 * * 1-5. The description reads "At 09:30, Monday through Friday", and the run list shows five consecutive weekdays at 09:30 followed by a 3-day gap over the weekend. Check it on a Friday afternoon and the first run is Monday morning, about 2.7 days away, which is the quickest way to confirm the day-of-week field.

A gap column that alternates oddly points at the OR rule between day of month and day of week. 0 9 1 * 1 lists the first of each month and every Monday, so the gaps are uneven instead of a steady 7 days.

Steps count from the field's minimum, not from now. */10 * * * * runs at :00, :10, :20 and so on, regardless of when you installed it. 0 */6 * * * runs at 00:00, 06:00, 12:00 and 18:00 in the server's timezone.

Scheduled jobs are the backbone of the AI automation work we do: nightly syncs, report generation and queue clean-ups. To express the times they log, see the Unix timestamp converter.

Questions

Frequently asked.

What do the five fields mean?

In order, minute (0 to 59), hour (0 to 23), day of month (1 to 31), month (1 to 12) and day of week (0 to 6, Sunday is 0). A star means every value, a slash gives a step, a hyphen a range, and a comma a list. All five must be present.

What happens if I set both day of month and day of week?

Standard cron runs the job when either matches, not both. So "0 9 15 * 1" runs at 09:00 on every Monday and also on the 15th of every month. Most people expect an AND, so if you need "the first Monday" use a script that checks the date.

Which timezone are the run times in?

This page shows them in your browser's timezone, named under the description. Servers usually run cron in UTC or in the system timezone, and many hosted schedulers such as GitHub Actions use UTC. Check where the job will run and convert if needed.

Your next move

Like what you see? Tell us about it.

A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.

India · Working with clients worldwide

We reply within a working day. No spam, ever.