Cron Expression Builder

Build cron expressions visually with dropdowns and presets. Get human-readable descriptions and preview the next 5 run times instantly.

* * * * *
Every minute

Next 5 run times

    About Cron Expression Builder

    Our Cron Expression Builder is a free, fully client-side tool that helps developers and sysadmins create and understand cron schedule expressions without memorizing the arcane five-field syntax. Use dropdown selectors for minute, hour, day-of-month, month, and day-of-week, or pick from common presets like "every minute," "daily at midnight," or "weekdays at 9am."

    What Is a Cron Expression?

    A standard cron expression has five fields separated by spaces: minute hour day-of-month month day-of-week. Each field accepts a number, an asterisk (*) meaning "every," ranges (1-5), step values (*/15), and lists (0,15,30,45). Our builder focuses on the common single-value-per-field case and always shows you a plain-English description so you know exactly when your job will run.

    Key Features

    Everything runs in your browser — no data is sent anywhere.

    How to Use the Cron Expression Builder

    1. Choose a preset schedule from the common patterns (every minute, every hour, daily, weekly, monthly) or build a custom schedule from scratch using the visual selectors.
    2. Configure each of the five cron fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12 or JAN-DEC), and day of week (0-6 or SUN-SAT). Each field supports specific values, ranges, lists, step values, and wildcards.
    3. Read the human-readable description that updates in real time as you modify the expression. This translates the cryptic cron syntax into plain English so you can verify your schedule is correct.
    4. Check the next run times preview to see when the schedule will actually execute. Copy the generated cron expression and paste it into your crontab file, CI/CD pipeline, or scheduling system.

    Understanding Cron Syntax and Scheduling

    Cron is a time-based job scheduler in Unix-like operating systems, originally created for Version 7 Unix in 1979. Users schedule jobs (commands or scripts) to run at fixed times, dates, or intervals using cron expressions. A standard cron expression consists of five fields separated by spaces: minute, hour, day of month, month, and day of week. For example, 30 2 * * * runs at 2:30 AM every day, 0 */6 * * * runs every 6 hours, and 0 0 * * 0 runs at midnight every Sunday. The asterisk (*) means 'every value' for that field, while specific numbers pin the schedule to exact times.

    Each cron field supports several operators beyond simple values. A comma-separated list (1,15,30) runs at each listed value. A hyphen range (1-5) runs at every value in the range. A slash step (*/15 or 0-30/10) runs at intervals — */15 in the minute field means every 15 minutes. Special strings provide shortcuts: @reboot runs once at startup, @daily (or @midnight) runs at midnight, @weekly runs at midnight on Sunday, @monthly runs at midnight on the first of each month, and @yearly (or @annually) runs at midnight on January 1st. Quartz Scheduler and Spring Framework extend cron with an optional sixth seconds field at the beginning and a seventh year field at the end.

    One common source of confusion is the interaction between day-of-month and day-of-week fields. When both fields are restricted (neither is *), the job runs when either condition is met — an OR relationship, not AND. For example, 0 0 1 * 1 runs on the 1st of the month OR on Mondays, not only when both coincide. Another gotcha is time zones: cron jobs execute in the server's local time zone. If your server runs in UTC but your team thinks in Eastern Time, schedules will be off by the offset. For systems like Kubernetes CronJobs, AWS EventBridge, or GitHub Actions, always verify the expected time zone. This builder helps avoid these pitfalls by showing the next execution times in plain language.

    Frequently Asked Questions

    What is a cron expression?
    A cron expression is a string of five fields (minute hour day-of-month month day-of-week) that defines a recurring schedule for automated tasks on Unix-like systems.
    Does this tool support ranges and step values?
    This builder focuses on single values and wildcards per field for simplicity. For advanced syntax like */15 or 1-5, you can edit the generated expression and the description will still attempt to interpret it.
    How are next run times calculated?
    All calculations happen client-side in JavaScript. The tool iterates forward minute-by-minute from the current time, checking each field against candidate timestamps until five matches are found.
    Is my schedule data sent to a server?
    No. Everything runs entirely in your browser. No data leaves your device.
    What do the 5 fields in a cron expression mean?
    From left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-6 where 0=Sunday). An asterisk (*) in any field means 'every value' for that field.
    How do I run a cron job every N minutes?
    Use the step operator: */5 for every 5 minutes, */15 for every 15 minutes, */30 for every 30 minutes. The expression '*/10 * * * *' runs at 0, 10, 20, 30, 40, and 50 minutes past every hour.
    What happens when both day-of-month and day-of-week are specified?
    When both fields are set to specific values (neither is *), cron treats them as an OR condition. The job runs if either the day-of-month OR the day-of-week matches. This is a common source of confusion.
    What time zone does cron use?
    Standard cron uses the server's local time zone. For cloud platforms like Kubernetes or AWS EventBridge, check the platform documentation — many default to UTC. Always verify the time zone to avoid scheduling surprises.

    Related Tools