Cron Expression Parser

Cron Expression Parser

Cron expression parser and generator — paste any cron for instant description, next run times, and field breakdown. Supports Unix, Quartz, and AWS Events.

Updated May 2026

PLATFORM

LANGUAGE / RUNTIME

SCRIPT / COMMAND

FIELD EDITOR

0–59
0–23
1–31
1–12
0–6

QUICK PRESETS

CRON EXPRESSION

VALID
0 12 * * *

DESCRIPTION

"At 12:00"

FIELD BREAKDOWN

MINUTE 0 0
HOUR 12 12:00 PM
DAY * every day
MONTH * every month
WEEKDAY * any day of week

NEXT EXECUTIONS

#1 Fri, Jun 05, 12:00 PM
#2 Sat, Jun 06, 12:00 PM
#3 Sun, Jun 07, 12:00 PM
#4 Mon, Jun 08, 12:00 PM
#5 Tue, Jun 09, 12:00 PM

PLATFORM TIP: Linux / macOS

Standard 5-field cron. Edit your crontab with `crontab -e`. Runs in the server's local timezone — consider writing schedules in UTC to avoid DST surprises.

Cron Expression Parser & Generator — Decode Cron Syntax Online

Paste a cron expression and get an instant plain-English description, a field-by-field breakdown, and the next 5 scheduled execution times — all in your browser, no account required. Or use the visual field editor and quick presets to build one from scratch.

This tool covers what most cron parsers miss: 5-field Unix/Linux, 6-field Quartz/Spring, AWS EventBridge syntax, and platform-specific integration notes for Kubernetes, GitHub Actions, GitLab CI, Node.js, Python, PHP, and Docker.

How to Use This Cron Expression Parser

  1. Paste your cron expression into the input field — the description and next run times appear instantly.
  2. Select your platform to switch between 5-field Unix and 6-field Quartz/AWS formats and see platform-specific tips.
  3. Use a preset to load common schedules like "every 5 minutes" or "weekdays at 9 AM" with one click.
  4. Toggle the field editor to build or adjust the expression field by field without memorizing syntax.
  5. Copy the final expression with the Copy button or Shift+Enter.

The input validates in real time — a green badge confirms the syntax is correct before you copy.

Cron Expression Fields Explained

A standard Unix cron expression has five space-separated fields:

┌───────── minute        (0–59)
│ ┌─────── hour          (0–23)
│ │ ┌───── day of month  (1–31)
│ │ │ ┌─── month         (1–12 or JAN–DEC)
│ │ │ │ ┌─ day of week   (0–6, Sun=0, or SUN–SAT)
│ │ │ │ │
* * * * *

Special characters

Character Meaning Example Reads as
* Every value * * * * * Every minute
, List 0 9,17 * * * At 9:00 and 17:00
- Range 0 9 * * 1-5 At 9:00, Mon–Fri
/ Step */15 * * * * Every 15 minutes
@ Alias @daily Once a day at midnight

Common @aliases

Alias Equivalent Meaning
@yearly 0 0 1 1 * January 1st at midnight
@monthly 0 0 1 * * First day of month at midnight
@weekly 0 0 * * 0 Sunday at midnight
@daily 0 0 * * * Every day at midnight
@hourly 0 * * * * Every hour, at :00
@reboot Once at system startup

Common Cron Expression Examples

Expression Description Use case
* * * * * Every minute Health checks, polling
*/5 * * * * Every 5 minutes Metrics, syncs
0 * * * * Every hour, on the hour Hourly reports
0 0 * * * Daily at midnight Backups
0 9 * * 1-5 Weekdays at 9:00 AM Business hour jobs
0 2 * * * Daily at 2:00 AM Nightly ETL/sync
0 0 * * 0 Sunday at midnight Weekly cleanup
0 0 1 * * 1st of each month Monthly billing
*/15 9-17 * * 1-5 Every 15 min, 9–5, Mon–Fri Business hours polling
0 0 1 1 * January 1st at midnight Annual rollover

Platform Support

5-field format (Unix / Kubernetes / GitHub Actions / GitLab CI)

All these platforms use the standard 5-field Unix cron syntax. Key differences:

  • Linux crontab — runs in server local timezone; edit with crontab -e
  • Kubernetes — runs in UTC by default; minimum interval 1 minute
  • GitHub Actions — runs in UTC; minimum interval 5 minutes; can be delayed up to 15 minutes during peak load
  • GitLab CI — runs in UTC; minimum interval 1 hour for shared runners

6-field Quartz/Spring format

Quartz Scheduler (used in Java, Spring Boot, and Jenkins) adds a seconds field at the start:

┌─────────── second       (0–59)
│ ┌───────── minute       (0–59)
│ │ ┌─────── hour         (0–23)
│ │ │ ┌───── day of month (1–31)
│ │ │ │ ┌─── month        (1–12)
│ │ │ │ │ ┌─ day of week  (1–7 in Quartz, or SUN–SAT)
│ │ │ │ │ │
* * * * * *

Quartz also supports ? (no specific value), L (last day), W (nearest weekday), and # (nth weekday of month).

AWS EventBridge format

AWS EventBridge uses 6 fields with a year field at the end: min hour dom month dow year. You must use ? for either day-of-month or day-of-week (never specify both). All times are in UTC.

Frequently Asked Questions

What is a cron expression?

A cron expression is a string of five (or six) space-separated fields that defines a recurring schedule for automated tasks. It is used in Unix/Linux crontab files, CI/CD pipelines, cloud schedulers, and task scheduling libraries to specify when a job should run — for example, every 5 minutes, daily at midnight, or every weekday at 9 AM. The name comes from Kronos, the Greek god of time.

What does */5 mean in a cron expression?

The / character denotes a step value. */5 in the minute field means "every 5th minute" — at minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55. Similarly, */2 in the hour field runs every 2 hours, and 1-30/2 in the minute field runs at minutes 1, 3, 5, 7... up to 29.

What is the difference between 5-field and 6-field cron?

Standard Unix/Linux cron uses 5 fields (minute through day-of-week). Quartz Scheduler — used in Java, Spring Boot, and Jenkins — adds a seconds field at the very beginning, making 6 fields total. AWS EventBridge also uses 6 fields but appends a year field at the end instead. Always check which format your platform requires, as a 5-field expression is invalid in Quartz and vice versa.

How do I write a cron expression for every weekday at 9 AM?

0 9 * * 1-5 — minute 0, hour 9, any day-of-month, any month, Monday through Friday (1–5). In Quartz format, add a seconds field at the start: 0 0 9 * * MON-FRI.

What do the special Quartz characters ?, L, W, and # mean?

These are Quartz-specific extensions unavailable in standard Unix cron. ? means "no specific value" — required when you specify one of day-of-month or day-of-week but not both. L means "last" (last day of month, or last Friday). W selects the nearest weekday to a given day-of-month. # targets the nth weekday of a month — 2#1 means the first Monday, 5#3 the third Thursday.

How does cron handle timezones?

Standard Unix cron runs in the server's local timezone. If you change the server timezone or deploy across regions, scheduled times shift unexpectedly. Best practice: write all cron schedules in UTC and document that assumption. Kubernetes CronJobs and GitHub Actions schedules run in UTC by default. AWS EventBridge always uses UTC.

What is 0 0 * * * in plain English?

It means "every day at midnight (00:00)." Field by field: minute=0, hour=0, any day-of-month, any month, any day-of-week. It is equivalent to the @daily shortcut.

Is this tool a crontab guru alternative?

Yes. This tool goes beyond what crontab.guru offers: it shows the next 5 execution times with your local timezone, supports 6-field Quartz/Spring syntax, includes a visual field editor, provides platform-specific integration tips for Kubernetes, GitHub Actions, AWS EventBridge, Node.js, Python, PHP, and Docker, and is available in English, Portuguese, Spanish, German, French, and Italian.

Resources

Related Tools