Cron Expression Parser and Generator

Build cron expressions field by field or from presets, read the plain-English translation and see exactly when the next runs will happen.

Cron expression

Field-by-field builder

Syntax: * any value · , list · - range · / step (e.g. */10).

Next 10 runs (local time)

    Use via API

    Describes a cron expression and lists the next runs.

    GEThttps://enhanced.dev.br/api/v1/utils/cron
    Query string parameters
    QueryTypeDescription
    expression *string5- or 6-field cron expression.
    count1–50Number of runs. Default: 10.
    tzstringIANA time zone, e.g. "America/New_York". Default: "UTC".
    lang"pt" | "en"Description language. Default: "pt".

    Request example

    curl "https://enhanced.dev.br/api/v1/utils/cron?expression=*%2F15+9-18+*+*+1-5&count=3&tz=America%2FSao_Paulo"

    Response

    {
      "ok": true,
      "data": {
        "expression": "*/15 9-18 * * 1-5",
        "tz": "America/Sao_Paulo",
        "description": "A cada 15 minutos, entre 09:00 e 18:59, de segunda-feira a sexta-feira",
        "next": [
          "2026-10-26T12:00:00.000Z",
          "2026-10-26T12:15:00.000Z",
          "2026-10-26T12:30:00.000Z"
        ]
      },
      "meta": {
        "version": "v1"
      }
    }
    • Errors return { ok: false, error: { code, message } } with an HTTP 4xx/5xx status.
    • Free, no API key required. Limited to 120 requests per minute per IP.
    • CORS enabled: call it straight from the browser on any domain.

    How to use

    1. Type a cron expression or pick a preset.
    2. Read the plain-language description to confirm the intent.
    3. Adjust minute, hour, day of month, month and day of week in the field builder.
    4. Check the list of the next 10 runs in your local time.

    Use cases

    • Scheduling jobs in crontab, Kubernetes CronJobs, GitHub Actions or Vercel Cron.
    • Reviewing existing schedules before a deploy.
    • Confirming how steps (*/15) and ranges (9-18) behave.

    Technical concepts

    The five fields

    A standard cron expression has five space-separated fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12) and day of week (0-6, with Sunday as 0 or 7). Some implementations accept a leading sixth field for seconds.

    Operators

    * matches any value, a comma builds lists (1,15), a hyphen defines ranges (1-5) and a slash defines steps (*/10 = every 10). Names such as MON or JAN are also accepted.

    Day of month OR day of week

    In classic cron, when both day of month and day of week are restricted, the job runs if either one matches, not only when both match. This behavior surprises many developers.

    Time zones

    crontab uses the server's time zone; managed services such as GitHub Actions use UTC. The next runs shown here use your browser's time zone.

    Frequently asked questions

    How do I schedule something every 30 seconds?

    Standard cron has one-minute resolution. Use an implementation with a seconds field (*/30 * * * * *) or two entries with sleep 30.

    What is the difference between 0 and 7 for day of week?

    Both mean Sunday in most implementations.

    Do expressions like @daily work?

    Shortcuts such as @daily, @hourly and @reboot are crontab extensions; in this tool use the equivalent five-field form, such as 0 0 * * *.

    Related tools