Cron Expression Builder

· Free browser tool

A cron expression builder turns the five cryptic fields of a crontab line into something readable, and turns a plain schedule back into a correct cron string. Cron drives the recurring jobs that keep an SEO operation running, from nightly sitemap pings and scheduled rank checks to backup and cache-warming tasks, and a single wrong field can mean a job fires every minute instead of once a day. Reading */15 9-17 * * 1-5 at a glance is hard, so verifying it before it ships to a server matters.

This free, browser-based tool does both directions. Build mode assembles a cron string from minute, hour, day-of-month, month, and day-of-week inputs with quick presets, while decode mode parses any pasted expression into a plain-English sentence and computes the next five times it will actually run. Everything is calculated locally in your browser, so nothing you paste is sent anywhere.

Cron Expression BuilderFree · client-side
Cron expression


      
In plain English

Next 5 run times

    🔒 Private: everything runs in your browser. Nothing you paste is uploaded.

    How to use the cron expression builder

    Cron reads five space-separated fields in a fixed order: minute, hour, day-of-month, month, and day-of-week. Fill them in build mode or paste a full line in decode mode, and the description and next run times update on every keystroke.

    Understand the five fields and their special characters

    Each cron line is five fields in order: minute (0–59), hour (0–23), day-of-month (1–31), month (1–12), and day-of-week (0–6, where 0 and 7 both mean Sunday). Four operators do most of the work: an asterisk means every value, a comma builds a list like 1,15,30, a hyphen builds a range like 9-17, and a slash adds a step like */15 for every fifteenth value. The tool validates each field against its real bounds and flags the exact input that is out of range, so a typo such as minute 60 is caught immediately rather than on the server.

    Read the plain-English description before you trust the schedule

    The most common cron mistake is a schedule that looks right but fires far more often than intended, usually from a misplaced asterisk. Decode mode rewrites the expression as a sentence: */15 9-17 * * 1-5 becomes “every 15 minutes between 09:00 and 17:59 on weekdays.” That sentence is generated from the same parsed field sets used to compute run times, so the description and the schedule can never disagree. Reading the sentence out loud is the fastest way to confirm a job will not hammer a server every minute by accident.

    Check the next run times and the day-of-month or day-of-week rule

    The tool computes the next five run times by stepping forward minute by minute from now and testing each candidate against the parsed fields, which is exactly how a real cron daemon decides whether to fire. One subtlety trips up many people: when both day-of-month and day-of-week are restricted, standard cron treats them as OR, not AND, so 0 0 1 * 1 runs on the 1st of the month and on every Monday. The run-time list reflects that rule, and an impossible schedule such as February 30 simply returns no times within the search window.

    Cron expression builder frequently asked questions

    Q1What do the five fields in a cron expression mean?

    A standard cron line has five fields in a fixed order: minute (0 to 59), hour (0 to 23), day-of-month (1 to 31), month (1 to 12), and day-of-week (0 to 6, with 0 or 7 meaning Sunday). The fields are separated by single spaces, and an asterisk in any field means every valid value for that field. This tool labels each input with its allowed range so the order is never in doubt.

    Q2What does */15 mean in a cron schedule?

    The slash is a step operator, so */15 in the minute field means every 15th minute: 0, 15, 30, and 45. You can combine it with a range, so 0-30/10 means minute 0, 10, 20, and 30. A step on its own, like */5 in the hour field, means every fifth hour starting from the field minimum. The decoder expands every step into the exact values it produces so there is no guesswork.

    Q3How does the tool calculate the next run times?

    It starts from the next whole minute and steps forward one minute at a time, testing each candidate moment against the parsed minute, hour, month, and day rules, exactly as a cron daemon does. The first five matches become the next run times, shown in your browser’s local time zone. The search is capped at two years, so an impossible expression like February 30 returns no times rather than looping forever.

    Q4Why do day-of-month and day-of-week behave oddly together?

    In standard Vixie cron, when both the day-of-month and day-of-week fields are restricted, they are combined with OR rather than AND. So 0 0 1 * 1 fires at midnight on the 1st of the month and also every Monday, not only on a 1st that happens to be a Monday. The tool follows this rule in both its description and its run-time list, which is a frequent source of confusion.

    Q5Is my cron expression sent to a server?

    No. The parser, the plain-English description, and the next-run calculation all run entirely in your browser with client-side JavaScript. Nothing you type or paste is uploaded, logged, or stored, and the tool keeps working offline once the page has loaded. That makes it safe to paste schedules that reference internal hostnames, job names, or other details you would not want to leave your machine.

    Hristo Bogdanov, Head of SEO at SEO Domains

    Hristo Bogdanov

    Head of SEO @ SEO Domains · CEO & Co-founder of SEO.bo

    Hristo has spent 15+ years building aged-domain acquisition and screening workflows for SEO professionals, brand owners, and domain investors, and builds the free tooling SEO Domains publishes for practitioners.