Cron Expression Generator

Build, explain, and validate cron schedules visually. Pick presets or tweak each field — see the human-readable meaning and the next run times instantly.

Human-readable explanation

🕒
Advertisement
Next run times use your local timezone:

Next 5 run times

Common presets

Click a preset to load it instantly.

What is a Cron Expression?

A cron expression is a compact string used by the cron job scheduler — built into Unix, Linux, and macOS — to describe when a command should run. Instead of writing code that sleeps and checks the clock, you describe the recurring schedule with a handful of symbols and let the operating system fire your script at exactly the right moment.

The classic format has five fields separated by spaces: minute hour day-of-month month day-of-week. Reading left to right, each field narrows down when the job runs. A single asterisk (*) in a field means “every possible value,” so * * * * * runs every minute of every day. Modern schedulers such as Quartz, Spring, and AWS EventBridge add an optional leading seconds field (and sometimes a trailing year field); this generator supports both the 5-field and 6-field flavors.

The five fields at a glance

Field Allowed values Special characters
Minute 0–59 * , - /
Hour 0–23 * , - /
Day of month 1–31 * , - / ? L
Month 1–12 or JAN–DEC * , - /
Day of week 0–6 or SUN–SAT * , - / ? L

Special characters explained

  • *every value. An asterisk means “all.” In the hour field it means every hour.
  • ,list of values. 1,15,30 means minutes 1, 15, and 30.
  • -range of values. 9-17 means 9 through 17, inclusive.
  • /step values. */15 means every 15 units; 0-30/10 means 0, 10, 20, 30.
  • ?no specific value (used to avoid conflicting day fields, common in Quartz).
  • Llast. L in the day-of-month field means the last day of the month.

How to Use This Cron Generator

This tool turns the cryptic cron syntax into something you can see and understand. There are three ways to use it:

  1. Start from a preset. Click one of the common schedules — “Every minute,” “Every day at midnight,” “Every Monday at 9am,” and more — and the fields fill in automatically.
  2. Build visually. Each field has quick mode buttons (Every, At, Between, Every step). Type a value like 30, a range like 9-17, or a step like */10. The expression and explanation update live.
  3. Parse an existing expression. Paste a cron string from a config file or a tutorial into the “Parse” box to see what it means and when it will next fire.

As you edit, the generator shows you a plain-English summary of the schedule (for example, “At 09:30 AM, only on Monday”) and calculates the next five run times in your local timezone. When you are happy, click Copy Expression and paste it straight into your crontab -e file, a Kubernetes CronJob, a GitHub Actions schedule, or any other system that speaks cron.

Common Cron Examples

Expression Meaning
* * * * * Every minute
*/5 * * * * Every 5 minutes
0 * * * * Every hour, on the hour
0 0 * * * Every day at midnight
0 2 * * * Every day at 2:00 AM
0 0 * * 0 Every Sunday at midnight
0 9 * * 1-5 At 9:00 AM, Monday through Friday
0 0 1 * * At midnight on the first day of every month
30 4 1 * * At 4:30 AM on the 1st of each month
0 0 1 1 * At midnight on January 1st (yearly)
*/15 9-17 * * 1-5 Every 15 minutes during business hours on weekdays

Where Cron Expressions Are Used

Cron started life as a Unix daemon, but the syntax has become the lingua franca for describing recurring schedules across the whole software stack. You will run into cron expressions in many places:

  • Linux & macOS crontab — the original scheduler, edited with crontab -e.
  • CI/CD pipelines — GitHub Actions schedule triggers and GitLab CI schedules both use cron.
  • Cloud schedulers — AWS EventBridge, Google Cloud Scheduler, and Azure Functions timers all accept cron-like rates.
  • Application frameworks — Spring @Scheduled, Laravel Task Scheduling, Celery beat, and Node.js packages like node-cron.
  • Container orchestration — Kubernetes CronJob resources run pods on a cron schedule.
  • Databases & CMS — WordPress WP-Cron, Magento, and many backup tools rely on cron.

Tips for Writing Reliable Cron Jobs

Cron is simple, but a few gotchas catch people out. Keep these in mind and your scheduled tasks will run reliably:

  • Avoid the midnight rush. Everyone sets jobs to 0 0 * * *. Stagger busy times with 17 0 * * * or 30 1 * * * to spread load.
  • Remember the environment. Cron runs with a tiny environment and rarely a shell. Always use absolute paths and set PATH if you need it.
  • Mind day-of-month vs day-of-week. When both are restricted (not * or ?), standard cron fires on a match of either, not both. Use this tool's explanation to double-check the logic.
  • Watch the timezone. System cron uses the server's timezone. Cloud schedulers often default to UTC. This generator previews runs in your local browser timezone, shown above.
  • Test the next-run preview. Before deploying, check the “Next 5 run times” list to confirm the schedule fires when you expect.

Frequently Asked Questions

What does */5 * * * * mean?

It means “every 5 minutes.” The */5 is a step value: starting from 0 and stepping by 5 each time, so the job fires at minutes 0, 5, 10, 15, … 55 of every hour.

What does 0 9 * * 1-5 mean?

It means “at 9:00 AM, Monday through Friday.” Minute is 0, hour is 9, the day-of-week range 1-5 covers Monday (1) to Friday (5).

How do I run a job every Sunday?

Use 0 0 * * 0 for midnight every Sunday. In cron, Sunday can be either 0 or 7.

What is the difference between 5-field and 6-field cron?

Standard Unix cron uses 5 fields (minute, hour, day, month, weekday). Quartz and many cloud schedulers add a leading seconds field for finer control. Use the toggle above the field grid to switch between 5-field and 6-field modes.

Does cron support seconds?

Standard Unix cron does not support seconds — its smallest unit is one minute. Quartz, Spring, and some cloud schedulers do support an optional leading seconds field.

Is my data sent anywhere?

No. This cron generator runs entirely in your browser. Your expressions never leave your device, which makes it safe to use even with internal schedules.

Start Building Your Schedule

Scroll back to the top, pick a preset or start from * * * * *, and fine-tune each field. Watch the live explanation and next-run preview update as you type, then copy the finished expression. Whether you are scheduling a database backup, a daily report, or a Kubernetes CronJob, the Caitty cron generator gets you the right syntax in seconds — free, with no signup required.

Advertisement