Developer Tools

Cron Expression Generator

This free Cron Expression Generator turns any cron expression into a plain-English description and lists the next 8 run times in your browser's local timezone. Type your own expression or pick one of 10 common presets, then copy it into your crontab or scheduler; everything runs client-side.

Runs in your browser. Your files and text never leave your device - nothing is uploaded.

Every 5 minutes

Next 8 run times

  • Fri, Oct 16, 2026, 09:50 PM
  • Fri, Oct 16, 2026, 09:55 PM
  • Fri, Oct 16, 2026, 10:00 PM
  • Fri, Oct 16, 2026, 10:05 PM
  • Fri, Oct 16, 2026, 10:10 PM
  • Fri, Oct 16, 2026, 10:15 PM
  • Fri, Oct 16, 2026, 10:20 PM
  • Fri, Oct 16, 2026, 10:25 PM

Standard 5-field cron syntax: minute, hour, day of month, month, day of week. Next run times are computed in your browser's local timezone.

Build and Decode Cron Expressions Online

The Tools Kit’s free Cron Expression Generator works in both directions: write a new cron schedule and confirm it does what you intend, or paste an expression from an existing crontab and find out what it means. As you type, the expression is translated into a plain-English sentence and the next eight run times are listed, so there is no guessing about when a job will actually fire.

Everything runs in your browser, and nothing you type is uploaded. Run times are shown in your local timezone; to line a scheduled run up against epoch values in logs, pair it with the Unix timestamp converter.

How to Use the Cron Expression Generator

  1. 1

    Type or pick a cron expression

    Type an expression into the Cron expression field, or choose one of the 10 common presets, such as every 5 minutes or every weekday at 9am, from the dropdown.

  2. 2

    Read the plain-English description

    The schedule is translated into a sentence as you type, for example 0 9 * * 1-5 becomes "At 09:00 AM, Monday through Friday". An invalid expression shows an error instead.

  3. 3

    Check the next 8 run times

    The next eight times the schedule would fire are listed in your browser’s local timezone, so you can confirm it runs when you expect.

  4. 4

    Copy the expression

    Click Copy to put the expression on your clipboard, then paste it into your crontab, CI workflow, or job scheduler.

No account is needed and there is no limit on how many expressions you check.

Cron Expression Format: The Five Fields

A standard cron expression is five fields separated by spaces, read left to right from the smallest unit of time to the largest, with day of week at the end. A job fires whenever the current time matches every field.

PositionFieldAllowed valuesExample
1Minute0-590 = on the hour, */15 = every 15 minutes
2Hour0-239 = 9 AM, 13 = 1 PM, 9-17 = working hours
3Day of month1-311 = the 1st, L = the last day of the month
4Month1-12 or JAN-DEC*/3 = every third month, JAN,JUL = January and July
5Day of week0-7 or SUN-SAT (0 and 7 are Sunday)1-5 = Monday to Friday, 1#2 = the second Monday

The generator also accepts the shortcut macros @hourly and @daily, and an optional leading seconds field (six fields in total) for schedulers that support it. Note that the run-time list shows hours and minutes only, so sub-minute schedules are easier to judge from the description.

Cron Syntax Cheat Sheet: Special Characters

Each field can hold a single value or one of these operators. Combining them covers almost every schedule you will need; for more involved text matching in log lines or job output, a regex tester is the better tool.

CharacterMeaningExample
*Any value* in the hour field = every hour
,A list of values1,3,5 in day of week = Monday, Wednesday, Friday
-A range of values9-17 in the hour field = 9 AM through 5 PM
/A step (every Nth value)*/10 in the minute field = every 10 minutes
LLastL in day of month = last day; 5L in day of week = last Friday
#Nth weekday of the month1#2 in day of week = the second Monday

L and # are extensions that classic Vixie cron does not support, so check your scheduler’s documentation before relying on them in production.

Cron Expression Examples, Explained

These descriptions are exactly what the generator returns for each expression:

  • */15 9-17 * * 1-5 — Every 15 minutes, between 09:00 AM and 05:59 PM, Monday through Friday. Because the hour field is 9-17, the last run of each day is at 5:45 PM.
  • 0 */6 * * * — On the hour, every 6 hours: midnight, 6 AM, noon and 6 PM.
  • 30 2 * * 0 — At 02:30 AM, only on Sunday; a typical weekly backup or maintenance window.
  • 0 0 1 */3 * — At 12:00 AM, on day 1 of the month, every 3 months; useful for quarterly reports.
  • 0 12 * * 1,3,5 — At 12:00 PM, only on Monday, Wednesday, and Friday.
  • 0 0 L * * — At 12:00 AM, on the last day of the month, whether that is the 28th, 29th, 30th or 31st.

Cron Pitfalls: Timezones and Day-of-Week Logic

Timezone. A cron expression has no timezone of its own; the scheduler running it decides. Many servers and hosted schedulers use UTC, while the run times here are shown in your browser’s local time. If they differ, use the timezone converter to translate the hour you want into the scheduler’s timezone before you write the hour field.

Day of month OR day of week. When both of those fields are restricted, cron runs the job if either one matches. 0 9 1 * 1 does not mean “9 AM on the 1st if it is a Monday”; it means 9 AM every Monday and on the 1st of every month. The run-time list shows both kinds of dates, which is the quickest way to catch this before it reaches production.

Impossible dates. An expression such as 0 0 31 2 * (February 31st) still gets a description, but it never fires, so no run times are listed. An empty run-time list on a valid-looking expression is a sign the schedule can never match.

Common uses

  • Writing a crontab line for a backup, cleanup, or report script on a Linux server, alongside the right file permissions from the chmod calculator
  • Setting a schedule trigger in a CI workflow, where the YAML config can be checked with the YAML to JSON converter
  • Scheduling a recurring API call or webhook, after testing the request itself with the cURL converter
  • Decoding an unfamiliar cron expression found in existing code or a JSON job definition you have tidied with the JSON formatter
  • Verifying a schedule fires when you expect before deploying it
  • Learning cron syntax through working examples and presets

More utilities for everyday development work are collected in our developer tools.

Common schedules

Ready-made cron expressions for the schedules people look up most, each with its description and next run times.

Frequently Asked Questions

Reviewed by Raja Jahangir · Last reviewed: October 7, 2026

How do you write a cron expression?

A cron expression has five fields: minute, hour, day of month, month, and day of week, using * for any value, */5 for every fifth, and 1-5 for a range. So 0 9 * * 1-5 runs at 09:00 every weekday and */15 * * * * runs every 15 minutes, with the next eight run times computed live.

What does 0 0 * * * mean in cron?

0 0 * * * runs once a day at midnight: minute 0, hour 0, every day of the month, every month, every day of the week. Change the hour to 9 for a 09:00 daily job, set day of week to 0 for Sundays only, or set day of month to 1 for the first of each month.

Sources and standards