Cron Expression Generator — Build & Decode Cron Jobs

Build cron expressions with a visual field editor or decode any existing expression into plain English. See the next 10 scheduled run times, a field-by-field breakdown, and quick preset schedules — all in your browser, no signup needed.

Quick Presets

Minute
*
Hour
*
Day of Month
*
Month
*
Day of Week
*
* * * * *

Plain English

Every minute.

Field Breakdown

Minute
*
Hour
*
Day of Month
*
Month
*
Day of Week
*

Next 10 Scheduled Runs

#1Thu, Mar 26, 2026, 11:57 AM
#2Thu, Mar 26, 2026, 11:58 AM
#3Thu, Mar 26, 2026, 11:59 AM
#4Thu, Mar 26, 2026, 12:00 PM
#5Thu, Mar 26, 2026, 12:01 PM
#6Thu, Mar 26, 2026, 12:02 PM
#7Thu, Mar 26, 2026, 12:03 PM
#8Thu, Mar 26, 2026, 12:04 PM
#9Thu, Mar 26, 2026, 12:05 PM
#10Thu, Mar 26, 2026, 12:06 PM

Pro Tips

  • 1.Cron runs in UTC by default on most servers — always confirm the timezone of your scheduler.
  • 2.Use */5 in the minute field for every-5-minutes schedules. Much cleaner than 0,5,10,15,20,25,30,35,40,45,50,55.
  • 3.When both day-of-month and day-of-week are set, most Unix cron implementations use OR logic.
  • 4.Test your expression with this tool's next-runs preview before deploying — a missing * can shift your schedule by hours.
  • 5.Cloud schedulers (AWS EventBridge, GCP Cloud Scheduler) often use 6-field cron with seconds. Standard Unix cron is 5-field.
  • 6.For monthly jobs, use '0 0 1 * *' (midnight on the 1st). Avoid '0 0 31 * *' since not all months have 31 days.

Frequently Asked Questions

What is a cron expression?+
A cron expression is a string with 5 space-separated fields (minute, hour, day of month, month, day of week) that defines a schedule for running tasks. For example, '0 9 * * 1-5' means 'at 9:00 AM on every weekday'. Cron is used in Unix/Linux systems, cloud schedulers, and CI/CD pipelines.
What do the special characters mean?+
* means 'every' (any value). , separates multiple values (e.g., '1,15' = 1st and 15th). - defines a range (e.g., '1-5' = 1 through 5). / defines a step interval (e.g., '*/15' = every 15 units). These can be combined: '0-30/5' means every 5 units from 0 to 30.
Why is my cron not running when expected?+
The most common issues are: timezone mismatch (cron runs in UTC by default on most systems), day-of-month AND day-of-week being both set (many implementations treat these as OR instead of AND), and off-by-one errors with months (some systems use 0-indexed months).
How do I run a job every 15 minutes?+
Use '*/15 * * * *'. This means: at minute 0, 15, 30, and 45 of every hour. You can also write it as '0,15,30,45 * * * *' for the same result.
What is the difference between day-of-month and day-of-week?+
Day of month (field 3) targets specific calendar dates like the 1st or 15th. Day of week (field 5) targets named days like Monday or Friday. When both are specified, most Unix cron systems use OR logic — the job runs if EITHER condition is met.
How do I validate a cron expression before deploying?+
Use this tool's Decode mode to paste your expression and instantly see the next 10 scheduled runs and a plain-English description. This is the safest way to verify the schedule before deploying to production.

Related Tools

Regex Tester
Test and debug regular expressions
JSON Formatter
Format and validate JSON
Hash Generator
MD5, SHA-256, SHA-512 hashes
Base64 Encoder / Decoder
Encode and decode Base64
URL Encoder / Decoder
Encode and decode URLs

What Is a Cron Expression?

A cron expression is a compact string that encodes a repeating time schedule for automated jobs. Originally from the Unix cron daemon, the format uses five space-separated fields representing minute, hour, day of month, month, and day of week. The value * in any field means "every possible value." Combined with ranges (1-5), lists (1,15), and steps (*/15), you can express almost any repeating schedule in a single line.

Cron, created in 1975, runs on virtually every Unix and Linux server worldwide. Modern cloud platforms execute billions of cron-scheduled tasks daily.

How to Use the Visual Builder

The Build mode lets you construct a cron expression without memorizing syntax. Each of the five fields has four options: Every (wildcard), Specific (checkbox grid), Range(from/to inputs), and Every Nth (step interval). As you adjust each field, the expression updates in real time along with a plain-English description and the next 10 run times calculated from now. Quick presets let you jump to common schedules like "every weekday at 9am" with a single click.

Decoding Existing Expressions

Switch to Decode mode and paste any cron expression to instantly see what it means. The tool shows a plain-English translation (e.g., "At 09:00 on every weekday"), a field-by-field breakdown, and the next 10 scheduled run times. This is invaluable when reviewing an existing cron job in a codebase or verifying a schedule before deploying. The parser handles wildcards, ranges, step values, and comma-separated lists in all five fields.

Common Cron Patterns

  • * * * * *Every minute
  • 0 * * * *At the start of every hour
  • 0 0 * * *Daily at midnight
  • 0 9 * * 1-5Every weekday at 9:00 AM
  • */15 * * * *Every 15 minutes
  • 0 0 1 * *First day of every month at midnight
  • 0 0 * * 0Every Sunday at midnight
  • 30 8 * * 1Every Monday at 8:30 AM

Related Tools

Frequently Asked Questions

What is a cron expression?+
A cron expression is a string with 5 space-separated fields (minute, hour, day of month, month, day of week) that defines a repeating schedule for automated tasks. For example, '0 9 * * 1-5' means 'at 9:00 AM every weekday'. Cron is used in Unix/Linux systems, cloud schedulers, and CI/CD pipelines.
What do the special characters mean?+
* means every value. , separates a list (e.g. 1,15). - defines a range (e.g. 1-5). / sets a step interval (e.g. */15 = every 15 units). These can be combined: 0-30/5 means every 5 units from 0 to 30.
How do I run a job every 15 minutes?+
Use '*/15 * * * *'. This fires at minute 0, 15, 30, and 45 of every hour. You can also write it as '0,15,30,45 * * * *'. Both are equivalent.
Why is my cron not running when expected?+
The most common issues are timezone mismatches (most cron systems run in UTC by default), both day-of-month and day-of-week being set (triggers on either condition, not both), and month counting from 1 not 0.
How do I schedule a job on the last day of the month?+
Standard cron does not have a built-in 'last day of month' token. A common workaround is to use multiple expressions for months that end on different days, or use an extended cron implementation that supports 'L' for last.
How is this different from AWS EventBridge or GCP Cloud Scheduler cron?+
AWS EventBridge and GCP Cloud Scheduler use 6-field cron expressions that include a seconds field. Standard Unix cron is 5-field with no seconds field. Always check your scheduler's documentation for the correct format.