Cron Expression Explainer

Paste a cron expression to read it in plain English, check each field and see exactly when it will run next, in your local time or UTC. Pick a preset to start from a common schedule. Works with standard five-field crontab syntax and macros like @daily.

Cron expression
Schedule

FieldValueMeans

Next 10 runs

    How to read a cron expression

    A standard cron expression has five fields separated by spaces. From left to right they are the minute (0-59), hour (0-23), day of the month (1-31), month (1-12 or JAN-DEC) and day of the week (0-6 or SUN-SAT, where 0 and 7 both mean Sunday). A job runs whenever the current time matches every field. For example, 30 2 * * 1 runs at 02:30 every Monday.

    1. Paste or type the expressionOr click a preset such as "Weekdays 9:00" to start from a working schedule.
    2. Read the descriptionThe plain-English sentence and the field table show what each part means.
    3. Check the next runsThe next ten times the job would start, in your own time zone or in UTC, which is what most servers use.
    4. Copy the resultCopy or download the description and run times to paste into a ticket or documentation.

    Special characters

    CharacterMeaningExample
    *Every value* * * * * every minute
    ,A list of values0 8,12,18 * * * at 08:00, 12:00 and 18:00
    -A range0 9-17 * * * every hour from 09:00 to 17:00
    /A step*/10 * * * * every 10 minutes; 0 0-12/3 * * * every 3 hours until noon
    @dailyMacros: @yearly, @monthly, @weekly, @daily, @hourly@weekly is 0 0 * * 0

    The day-of-month and day-of-week rule

    When both the day-of-month and the day-of-week fields are restricted (neither is *), classic cron runs the job when either one matches, not both. So 0 12 13 * 5 runs at noon on the 13th of every month and on every Friday, not only on Friday the 13th. This surprises many people; the next-run list here follows the standard Vixie cron behaviour so you can see it.

    Time zones and daylight saving

    Cron uses the time zone of the machine or service that runs it. Most cloud schedulers, including GitHub Actions and Vercel cron jobs, use UTC. Kubernetes CronJobs use the controller's time zone unless you set timeZone. Switch "Show times in" to UTC to see what a UTC scheduler will do. Around daylight saving changes, a local-time job at 02:30 may be skipped or run twice depending on the implementation.

    Frequently asked questions

    How do I run a job every 5 minutes?

    Use */5 * * * *. The */5 in the minute field means every fifth minute starting at 0: 00, 05, 10 and so on.

    How do I run a job on weekdays only?

    Put 1-5 in the day-of-week field, for example 0 9 * * 1-5 for 09:00 Monday to Friday.

    Does it support seconds or Quartz expressions?

    The plain-English description understands six and seven-field Quartz-style expressions, but next-run times are calculated for standard five-field cron only.

    Why is Sunday 0 and also 7?

    Different Unix systems historically used either value, so most cron implementations accept both.

    Is anything sent to a server?

    No. The expression is parsed and the run times are calculated in your browser.

    Related tools