CRON EXPRESSION GENERATOR

Build a schedule, read it back in plain English, and see exactly when it runs next — all in your browser.

Every minute.

Fields

Common schedules

Next runs

    Field reference

    Field structure

    Field order across dialects
    Field orderUnix: minute hour day-of-month month day-of-week. Quartz prepends seconds and appends an optional year. AWS EventBridge appends a required year and has no seconds.

    Wildcards & ranges

    Wildcard and range syntax
    *Any value — every minute, every hour, and so on.
    */nEvery n units, starting from the lowest. */15 in the minute field means minutes 0, 15, 30 and 45.
    a-bAn inclusive range. 1-5 in the day-of-week field means Monday through Friday.
    a,b,cA list of specific values. 0,30 in the minute field means on the hour and on the half hour.

    Names & numbering

    Month and day-of-week naming
    NamesMonths accept JAN–DEC; days of the week accept SUN–SAT. Case-insensitive.
    Day-of-week numberingUnix: 0–6 with 0 (and 7) meaning Sunday. Quartz and AWS: 1–7 with 1 meaning Sunday.

    Dialect-specific extras

    Quartz and AWS EventBridge extras
    ? (Quartz & AWS)“No specific value.” Exactly one of day-of-month or day-of-week must be ?; the other one carries the schedule.
    L, W, # (Quartz)Last day, nearest weekday, and “nth weekday”. This tool describes them but does not yet compute next run times for expressions that use them.

    Jenkins pipelines also accept an H “hash” token that spreads load across the interval — paste a plain expression here and add H back in Jenkins. Kubernetes CronJob schedules use the standard Unix five-field syntax.

    Why Use This Cron Generator?

    • Plain-English description of any expression
    • The next eight run times, in any timezone
    • Unix, Quartz and AWS EventBridge syntax
    • Edit the expression or the fields — they stay in sync
    • Runs entirely in your browser

    What Cron Is Used For

    • Scheduling backups, reports and cleanup jobs
    • Triggering CI pipelines and deployments on a timer
    • Kubernetes CronJob and systemd timer schedules
    • Quartz jobs in Spring and other Java frameworks
    • AWS EventBridge and Lambda scheduled rules

    About this cron expression generator and parser

    A cron expression is a compact schedule such as */15 * * * *, and it is easy to get wrong. This free online cron generator lets you build an expression from its fields and decode an existing one into plain English, and it shows the next run times in any timezone so you can confirm the job really fires when you expect.

    It supports standard Unix cron as well as Quartz and AWS EventBridge syntax. Everything runs in your browser and nothing is uploaded.

    Frequently Asked Questions

    Everything you might want to know about cron expressions and this generator.

    A cron expression is a short string of fields that describes a repeating schedule — for example 0 9 * * 1-5 means “at 09:00, Monday through Friday.” It's used by the Unix cron daemon and by many schedulers that copied its syntax.
    In order: minute (0–59), hour (0–23), day of the month (1–31), month (1–12), and day of the week (0–6, where 0 is Sunday). A field can be a single value, a list, a range, a */n step, or * for “any.”
    Quartz (used by Spring and much of the Java world) adds a leading seconds field and an optional trailing year field, so a typical expression has six or seven fields. It also numbers the days of the week 1–7 with 1 as Sunday, and requires exactly one of day-of-month or day-of-week to be ?. Switch the Syntax selector to Quartz and this tool adjusts.
    AWS EventBridge (and the old CloudWatch Events) uses six fields: minute, hour, day of month, month, day of week, and a required year. Like Quartz it uses ? and numbers days of the week from 1 (Sunday). Remember that EventBridge always schedules in UTC unless you use a one-time or rate expression instead.
    They default to your browser's timezone. Use the Timezone selector to see the schedule in whatever zone the server actually runs in — the tool re-interprets the whole expression in that zone, daylight saving included.
    It's a step. In the minute field, */5 fires at minutes 0, 5, 10, 15 and so on — every five minutes. */2 in the hour field means every other hour.
    In classic Unix cron, if both day-of-month and day-of-week are restricted, the job runs when either matches, not both. So 0 0 1,15 * 1 runs on the 1st, the 15th, and every Monday. This tool follows that rule.
    No. Parsing, the description and the run-time calculation all happen in your browser. Nothing is uploaded, stored or logged.