Back to All Tools

Cron Expression Generator

Build a cron schedule, read it in plain English, and see when it runs next.

100% Private — Your data never leaves your browser. Everything runs locally on your device.

Build It Field by Field

Next 5 Run Times

    How to Create a Cron Expression with FreeToolPoint

    1. Start from a common schedule — Click one of the Common Schedules buttons, such as "Every 5 minutes" or "Weekdays at 9 AM". The expression, the plain-English summary, and the next run times all update at once.
    2. Adjust each field — In the "Build It Field by Field" section, pick a mode for each of the five fields: every value, every N, specific values, a range, or custom. Type the value in the box next to it and the expression at the top updates as you type.
    3. Or paste an existing expression — Paste any cron line from a crontab file, a Kubernetes CronJob, or a GitHub Actions workflow into the top box. The tool explains what it means and fills in the builder for you.
    4. Check the next run times — The list at the bottom shows the next five times the job will run. Switch between your local time and UTC to match the time zone of the server that runs the job, then click Copy.

    Why Use Our Cron Expression Generator

    Cron Syntax Cheat Sheet

    A standard cron expression has five fields separated by spaces. Each field accepts the values and special characters below.

    FieldAllowed valuesExample
    Minute0–5930 = at minute 30
    Hour0–2314 = 2 PM
    Day of month1–311,15 = the 1st and 15th
    Month1–12 or JAN–DECJAN-MAR = January to March
    Day of week0–7 or SUN–SAT (0 and 7 are Sunday)1-5 = Monday to Friday
    SymbolMeaningExample
    *Every value* * * * * = every minute
    ,A list of values0,30 = minute 0 and 30
    -A range of values9-17 = hours 9 to 17
    /A step*/10 = every 10th minute

    Where Cron Expressions Are Used

    Cron started as the job scheduler on Unix systems, where each user has a crontab file with one schedule per line. Today the same five-field format is used far beyond Linux servers. Kubernetes CronJobs, GitHub Actions scheduled workflows, GitLab CI pipelines, Vercel cron jobs, and many cloud schedulers all accept standard cron expressions.

    The most common mistake with cron is the time zone. Most servers and cloud services run cron in UTC, not in your local time. A job written as 0 9 * * * on a UTC server runs at 9 AM UTC, which may be the middle of the night where you live. Use the time zone switch above to check the next run times in UTC before you deploy.

    Another common surprise is the day-of-month and day-of-week rule. When both fields have a value, cron runs the job when either one matches, not only when both match. For example, 0 0 13 * 5 runs on every 13th of the month and also on every Friday, not only on Friday the 13th.

    Frequently Asked Questions

    What is a cron expression?

    A cron expression is a short line of five fields that tells a scheduler when to run a job. The fields are minute, hour, day of month, month, and day of week. For example, 0 9 * * 1-5 means at 09:00 every Monday to Friday. Cron is used by Linux crontab, Kubernetes CronJobs, GitHub Actions, and many cloud schedulers.

    What does */5 mean in cron?

    The slash sets a step. */5 in the minute field means every 5th minute: 0, 5, 10, 15 and so on up to 55. You can also combine a step with a range, so 0-30/10 in the minute field means minutes 0, 10, 20 and 30.

    Which time zone do cron jobs use?

    A cron job runs in the time zone of the machine or service that runs it. Many servers and cloud schedulers, including GitHub Actions, use UTC. This tool can show the next run times in your local time or in UTC, so you can check the schedule for the place where your job actually runs.

    What happens if I set both day of month and day of week?

    In standard cron, if both the day-of-month and the day-of-week fields are restricted, the job runs when either one matches. For example, 0 0 1 * 1 runs on the 1st of every month and also on every Monday. If one of the two fields starts with *, both must match. This tool follows the same rule when it lists the next run times.

    Does this tool support Quartz or cron with seconds?

    No. This tool uses the standard 5-field cron format used by Linux crontab, Kubernetes, and GitHub Actions. Quartz and Spring use 6 or 7 fields with seconds and special characters like ? and #, which are not supported here. The tool also accepts the shortcuts @hourly, @daily, @weekly, @monthly, and @yearly.