↑↓ to navigateEnter to openEsc to close

Time & automation

Cron Expression Generator & Next Run Calculator

Build and validate five-field cron expressions, explain each field and calculate upcoming runs in local time or UTC.

Cron Expression workspace

minute · hour · day of month · month · day of week. Common step and name extensions are supported; no seconds field.

Processed locally

Your input stays in this browser tab. This tool makes no upload or API request and does not save input history.

About this cron expression

A traditional crontab schedule has five time fields followed by a command. This page works with only the five-field schedule: minute, hour, day of month, month and day of week.

The parser follows POSIX day matching: when both day-of-month and day-of-week are restricted, a date matches when either field matches. It also supports common Unix extensions for slash steps, English month or weekday names and Sunday as 7.

Cron expressions control scheduled tasks across servers, CI/CD pipelines, and automated jobs. Yet the five-field syntax is notoriously error-prone: off-by-one mistakes, misunderstood field ranges, and daylight-saving surprises crash in production. This free cron expression generator turns natural language intent into valid cron syntax and calculates upcoming runs so you see exactly when jobs will execute.

Generate expressions from presets (hourly, daily, weekdays) or build custom schedules using minute, hour, day of month, month, and day of week fields. The validator explains what each field means in plain English, catches common mistakes, and supports POSIX extensions like slash-separated steps and English weekday names. Calculate the next 10, 50, or custom number of run times in your local timezone or UTC—essential before deploying production schedules.

Real-world edge cases trip up many schedulers: daylight-saving transitions, the interaction between day-of-month and day-of-week when both are specified, and dialect differences across cron implementations. This tool follows POSIX standards and documents where extensions apply, helping you verify behavior matches your target scheduler. Test your expression against real dates, see the exact run times before they happen, and catch problems during development rather than in production.

How to use this tool

  1. 01

    Enter all five fields

    Use an asterisk for every value, a comma for lists, a hyphen for inclusive ranges and a slash after an asterisk or range for the supported step extension.

  2. 02

    Choose how to display time

    Calculate in the current browser timezone or UTC. The start field itself is entered as browser-local wall time.

  3. 03

    Verify on the target system

    Compare the generated schedule with your cron implementation before deploying because extensions and daylight-saving behavior vary.

Worked examples

Weekdays at 09:00

Input
0 9 * * MON-FRI
Result
Minute 0, hour 9, every day of month and month, Monday through Friday

Every 15 minutes during working hours

Input
*/15 9-17 * * MON-FRI
Result
09:00, 09:15, 09:30 … 17:45 on weekdays

Limits and edge cases

  • This is a five-field Unix-style dialect. Quartz tokens ?, L, W and #, a seconds or year field, @daily aliases and commands are not accepted.
  • Slash steps, names such as MON and Sunday 7 are common extensions and are not part of the smallest portable POSIX grammar.
  • If neither day field contains an asterisk, day-of-month and day-of-week use OR matching: 0 9 1 * MON runs on the first and on Mondays. If either contains an asterisk expression such as */2, both expanded sets must match, following common Cronie behavior.
  • Daylight-saving transitions can skip or repeat local wall times, and cron implementations differ. UTC schedules avoid DST but may not match a desired local clock time all year.

Standards and references

Common questions

Why does this cron tool reject six fields?

The page deliberately uses the common five-field schedule. In an actual crontab, text after those fields is the command; some non-POSIX schedulers instead add a seconds field.

Are the next run times guaranteed on my server?

No. They are a browser calculation for the documented dialect. Confirm timezone, daylight-saving behavior and supported extensions in the scheduler that will execute the job.