Cron Expression Generator

Build a crontab schedule with simple dropdowns, or type any expression to see it explained in plain English. Preview the next run times in your local time or UTC before you ship it.

Minute
*
Every minute
Hour
*
Every hour
Day (month)
*
Every day
Month
*
Every month
Day (week)
*
Every weekday

This schedule means

Every minute.

Quick presets

Build it field by field

Pick from the menus to build your schedule, or type directly into the expression box above — the two stay in sync.

Next 5 runs

The five cron fields, and the operators that fill them

A crontab line is five fields separated by spaces, read left to right. Each field accepts a value, a list, a range, or a step.

Position Field Allowed values Notes
1Minute0–59Minute of the hour
2Hour0–2324-hour clock, 0 is midnight
3Day of month1–31Combined with day of week using OR
4Month1–12JAN–DEC names also work
5Day of week0–70 and 7 are both Sunday; SUN–SAT names work
*Every value (a wildcard for the whole field)
,A list of values, e.g. 1,15,30
-A range of values, e.g. 9-17
/A step, e.g. */5 for every 5th value

Common cron examples

Click any example to load it into the generator above.

Build a schedule, read it back, and confirm the run times.

The generator works both ways: build with the menus, or type an expression and have it explained. Either way you see exactly when it will fire.

  1. 1

    Choose a quick preset to start, or set each field with the dropdown menus. The expression box updates instantly, and the coloured field cards show how each part is interpreted.

  2. 2

    Prefer to type? Edit the expression directly. The plain-English summary rewrites as you type, and invalid expressions are flagged immediately with a clear reason, so you never deploy a broken schedule.

  3. 3

    Check the next five run times. Toggle between your local timezone and UTC, because cron on a server almost always runs in the server's timezone — usually UTC. This is the step that catches most scheduling mistakes.

  4. 4

    Copy the expression and paste it into your crontab, CI pipeline, Kubernetes CronJob, or any scheduler that uses standard cron syntax.

Where cron expressions are used

The same five-field syntax drives schedulers across the whole stack.

Servers & scripts

The classic use: a Linux or macOS crontab that runs backups, log rotation, cleanup jobs, or report generation at fixed times.

CI/CD & automation

GitHub Actions, GitLab CI, and Jenkins all use cron syntax to trigger scheduled builds, nightly tests, and dependency checks.

Containers & cloud

Kubernetes CronJobs, AWS EventBridge rules, and serverless schedulers accept the same expressions to run tasks on a recurring basis.

Frequently Asked Questions

What is a cron expression?

A cron expression is a compact string of five fields — minute, hour, day of month, month, and day of week — that tells a scheduler when to run a job. For example, 0 9 * * 1-5 means "at 09:00, Monday through Friday." It comes from the Unix cron daemon and is now the de facto standard for time-based scheduling across servers, CI systems, and cloud platforms.

Why does my job run more often than expected with both a day of month and a day of week?

This is the single most common cron surprise. In standard Unix cron, when both the day-of-month and day-of-week fields are restricted (neither is *), the job runs whenever either condition is true, not when both are. So 0 0 13 * 5 runs at midnight on the 13th of every month and on every Friday. This generator shows a warning whenever both fields are set, and the next-run preview reflects the correct OR behaviour.

What timezone does cron run in?

Cron runs in the timezone of the machine it lives on. On most servers and in most cloud environments that is UTC, which can be several hours off from your local time. That mismatch is a frequent cause of "my job ran at the wrong time" bugs. Use the Local / UTC toggle in the next-runs panel to preview both, and confirm the schedule against the timezone your scheduler actually uses.

Does this tool support seconds or the Quartz six-field format?

This generator uses standard five-field Unix cron, which is what Linux crontab, GitHub Actions, Kubernetes CronJobs, and most modern schedulers expect. Quartz (used by some Java frameworks) adds a leading seconds field and a trailing year field for a six- or seven-field format, and uses ? in the day fields. If your scheduler is Quartz-based, keep that difference in mind when copying expressions across.

Do shortcuts like @daily and @hourly work?

Yes. You can type the named shortcuts @hourly, @daily (or @midnight), @weekly, @monthly, and @yearly (or @annually). The generator expands them to their five-field equivalents so you can see exactly what they mean and when they run.

Is my data sent anywhere?

No. Everything runs in your browser. Parsing, the plain-English translation, and the next-run calculations all happen on your device with no network requests, so your schedules never leave your machine.