vasilenko.info

Cron expression parser

/en/tool/cron-parser/ works Calculated in the browser

Paste a schedule expression — the tool will explain in Russian when the job runs and show the next runs in two columns: based on the server clock in the selected time zone and your clock. It supports five Unix fields, six or seven Quartz and Spring fields, plus L, W, and the # sign. You do not have to write the expression by hand: there is a builder and about 50 ready-made schedules, along with ready-to-use snippets for crontab, Kubernetes, GitHub Actions, systemd, and AWS EventBridge. Everything is calculated in the browser.

promoTwenty years of notes on websitesHow we did it in 2008 and what still works today.Open

Cron expression

Parsing happens on your device: neither the expression nor the commands are sent anywhere.

Dialect

In Quartz and Spring, the first field is seconds, and L, W, and the hash sign are parsed as extensions. Their weekday numbering differs: in Quartz, Sunday is 1; in Unix and Spring, it is 0.

Cron runs according to the clock on the machine where it is installed. Select its time zone to recalculate the runs, while your local time remains visible next to it so you don't have to calculate the difference mentally.

Asterisks, ranges, lists, slash steps, English month and weekday abbreviations, and aliases such as @daily. In Quartz and Spring, L, W, and the hash sign are also supported.

When it runs

Done Unix

Upcoming runs
On the server Your time
    Next run
    In
    Runs per active day
    Active days over 12 months
    Runs over 12 months

    The browser does not know the server's time zone, so your own time zone was entered first. Change it to the server's, and all dates will be recalculated. Nothing is sent anywhere: your browser does the calculations.

    Field breakdown

    What each field contains, how it expands, and how many values it produces.

    Field, original entry, list of values, and count
    Field Entered Values Count

    Time conversion

    Monthly run map

    The number in each cell shows how many times the task runs that day according to the server's clock. An empty cell means there are no runs that day.

    Five weeks ahead
    Mon Tue Wed Thu Fri Sat Sun Per week

    Builder and ready-made schedules

    Choose a ready-made schedule or build your own with the mouse. The expression is sent to the field above immediately and parsed by the same code, so you don't have to construct it mentally.

    More than once an hour

    Hourly

    Daily

    Weekly

    Monthly and less often

    Minutes
    Hours
    Day of month
    Month
    Day of week

    Ready-made configs

    The same schedule for places where it is usually transferred manually. Conversion to UTC is already done where a time zone cannot be set.

    Inserted into a crontab line, a Kubernetes container, a GitHub Actions step, and a systemd unit. It does not affect schedule parsing.

    crontab line for crontab -e
    cronjob.yaml Kubernetes CronJob
    .github/workflows/cron.yml GitHub Actions, always UTC
    systemd timer and unit
    AWS EventBridge schedule expression

    Full crontab

    Paste the file as is—with comments, variables, and commands. Each line will get a plain-English description and its next run time, and lines that run simultaneously will be marked.

    Lines starting with # and assignments like PATH=… are skipped. Aliases such as @daily are parsed the same way as regular entries.

    Empty

    Line by line: schedule, command, meaning, and next run time
    Line Schedule Command Meaning Next run
    promoCalculate ROI at the same timeCampaign payback based on spend and revenue.Open

    How to use it

    1. First, set the server time zone—the one where cron runs. Everything else is calculated in that zone, while your local time appears in a second column, so you no longer have to keep the difference in mind.

    2. Paste the schedule line without the command. If you would rather not write the line yourself, choose a ready-made one from the “Builder” section or assemble it field by field using the switches.

    3. Check the plain-English description and the list of runs. The list is the most important part: it shows not what you intended, but what the expression actually produces.

    4. Review the field breakdown. It shows how each entry was expanded and how many values remain in it. Errors in a step or range are visible there.

    5. Check the month view. A gap such as “no run on the 31st in April” appears as a cell without a number before you even finish reading the warnings.

    6. If the time zone observes daylight saving time, read the separate block. It states which run will disappear in spring and which hour will repeat in fall.

    7. Take the generated files in pieces: a crontab line, a CronJob for Kubernetes, a workflow for GitHub Actions (the time is already converted to UTC there), a systemd timer, and an AWS EventBridge expression. Download everything together as one file.

    8. Paste an entire crontab into the last section. It will parse every line and show which jobs start in the same minute.

    promoBrowser task listNo account required—everything is stored on your device.Open

    The formula and what it includes

    minute hour day of the month month day of the week

    Fields are joined with “and”: all conditions must match at once. There is one exception: the day of the month and the day of the week. In ordinary cron and Spring, when both are set, they are joined with “or,” and the job runs on either type of day. Quartz does not work this way and requires one of the two fields to be a question mark.

    Example breakdown: */15 9-18 * * 1-5 in the Europe/Moscow time zone

    The input data is the same as the default field values: you can calculate it mentally and confirm that the tool is telling the truth.

    1. Four runs per hour: 60 ÷ 15 = 4.

    2. There are ten hours in the range from 9 through 18 inclusive.

    3. Runs per day: 4 × 10 = 40 runs.

    4. There are about 260 weekdays in a 12-month window: 52 weeks plus a remainder, with 5 weekdays in each week.

    5. If you are in Yekaterinburg, the same runs appear in the second column from 11 a.m. to 8 p.m.—two hours later because the server runs on Moscow time.

    6. In GitHub Actions, you would have to write the same schedule as 6-15 instead of 9-18 because its time is always UTC. The converted version is ready in the configs section.

    That gives 40 runs per day and about 10,400 per year. Plain English: every 15 minutes from 9 a.m. to 6 p.m. on weekdays.

    Frequently asked questions

    promoAll toolsForty-four tools, all running in your browser.Open

    Related tools

    6

    MD5 and SHA hashes

    Calculates MD5, SHA-1, SHA-256, and SHA-512 hashes for a string or file.

    Open

    Password generator

    Creates passwords of the required length and assesses how difficult they are to crack.

    Open

    Timestamp converter

    Converts Unix time to a date and back, taking the time zone into account.

    Open