Cron Expression Generator & Parser

Parse cron expressions into plain English, build schedules visually, and preview next execution times — entirely in your browser

Common Cron Presets

Click any preset to load it into the parser and see its description and upcoming execution times.

What is a Cron Expression?

A cron expression is a compact string that defines a recurring schedule. Originally created for the Unix cron daemon in the 1970s, cron expressions have become the universal language for scheduling automated tasks across operating systems, cloud platforms, CI/CD pipelines, and application frameworks.

A standard cron expression consists of five fields separated by spaces, each representing a unit of time. Together, these fields specify exactly when a task should execute — from "every minute" to "at 3:30 PM on the last Friday of March." The syntax is concise enough to fit in a configuration line, yet expressive enough to describe nearly any recurring schedule.

Cron expressions are used in a wide variety of systems: Unix/Linux crontab, Kubernetes CronJobs, AWS CloudWatch Events, Google Cloud Scheduler, Azure Functions Timer Triggers, GitHub Actions, Jenkins, Airflow, Spring Boot, and many more. Understanding cron syntax is an essential skill for DevOps engineers, backend developers, and system administrators.

Cron Expression Syntax

A standard 5-field cron expression follows this format:

Field Allowed Values Special Characters Description
Minute 0–59 * , - / The minute within the hour when the task runs
Hour 0–23 * , - / The hour of the day (24-hour format, 0 = midnight)
Day of Month 1–31 * , - / The day of the month (1 = first day)
Month 1–12 * , - / The month of the year (1 = January, 12 = December)
Day of Week 0–6 * , - / The day of the week (0 = Sunday, 6 = Saturday)

Special Characters Explained

Asterisk *

Matches every possible value in the field. * in the hour field means "every hour" (0 through 23). It's the wildcard — when you don't need to restrict a field, use *.

Slash /

Defines step intervals. */15 in the minute field means "every 15 minutes" (0, 15, 30, 45). 2/3 means "every 3rd value starting from 2" (2, 5, 8, 11, ...).

,

Comma ,

Separates individual values in a list. 1,15 in the day-of-month field means "on the 1st and 15th of the month." You can combine any number of values: 0,15,30,45.

Hyphen -

Defines an inclusive range. 1-5 in the day-of-week field means "Monday through Friday." 9-17 in the hour field means "from 9 AM to 5 PM" (inclusive).

Common Cron Expression Examples

Expression Description Use Case
* * * * * Every minute Health checks, queue processing
*/5 * * * * Every 5 minutes Metrics collection, cache refresh
0 * * * * Every hour at minute 0 Hourly reports, data sync
0 0 * * * Every day at midnight Daily backups, log rotation
0 9 * * 1-5 Weekdays at 9:00 AM Business-hours alerts, team notifications
30 2 * * * Every day at 2:30 AM Maintenance windows, overnight batch jobs
0 0 1 * * First day of every month at midnight Monthly billing, report generation
0 0 * * 0 Every Sunday at midnight Weekly cleanup, digest emails
0 6,18 * * * Every day at 6:00 AM and 6:00 PM Twice-daily sync, morning/evening jobs
0 0 1 1 * January 1st at midnight Annual reset, yearly reports

Where Are Cron Expressions Used?

Cron expressions are the scheduling standard across the software industry. Here are the most common systems that use cron syntax:

  • Unix/Linux Crontab — The original cron daemon. Edit your schedule with crontab -e and define jobs that run at specified times. This is the most common way to schedule recurring tasks on a Linux server.
  • Kubernetes CronJobs — Kubernetes uses standard 5-field cron expressions to schedule containerized workloads. Ideal for periodic batch processing, database cleanup, and report generation in cloud-native environments.
  • AWS CloudWatch Events / EventBridge — Amazon Web Services uses cron expressions (with a 6-field variant that includes year) to trigger Lambda functions, Step Functions, and other AWS services on a schedule.
  • Google Cloud Scheduler — Google's managed cron service accepts standard cron expressions to trigger HTTP endpoints, Pub/Sub topics, and App Engine handlers.
  • Azure Functions Timer Trigger — Microsoft Azure uses 6-field cron expressions (with seconds) to trigger serverless functions on a recurring schedule via the NCrontab format.
  • GitHub Actions — The schedule trigger in GitHub Actions workflows uses standard 5-field cron expressions to run CI/CD pipelines, automated tests, and maintenance tasks on a schedule.
  • Jenkins — Jenkins pipeline and freestyle jobs support cron-like expressions for build triggers, with the optional H symbol for hash-based load distribution.
  • Spring Boot / Quartz Scheduler — Java applications commonly use 6-field cron expressions (with seconds) through Spring's @Scheduled annotation or the Quartz scheduling library.
  • Apache Airflow — Data pipeline orchestration tool that uses cron expressions to define DAG (Directed Acyclic Graph) execution schedules.

Features of This Cron Tool

  • Instant parsing — Enter any 5-field cron expression and see a plain-English description in real time. Each field is broken down individually with its meaning explained, so you can understand complex expressions at a glance.
  • Next execution preview — See the next 10 upcoming execution times for any cron expression, calculated from the current date and time. Each timestamp includes a relative time indicator ("in 5 minutes", "in 2 days") for quick reference.
  • Visual schedule builder — Build cron expressions visually without memorizing the syntax. Choose between "Every", "Specific values", "Range", or "Step" for each field using clickable buttons and inputs. The generated expression updates in real time.
  • Common presets — Start with one of 16 common cron schedules (every 5 minutes, daily at midnight, weekdays at 9 AM, etc.) and customize from there. One click loads the expression into the parser.
  • Field breakdown — Each of the 5 fields is displayed in a dedicated card showing the raw value and its human-readable meaning. Months and days of the week are shown by name for clarity.
  • Copy and transfer — Copy any generated or parsed expression to clipboard with one click. Switch seamlessly between Parse and Build modes — expressions transfer between the two views.
  • 100% client-side — All parsing, building, and execution time calculation happens entirely in your browser. No data is ever sent to any server. The tool works offline after the initial page load.
  • No dependencies — Built with vanilla HTML, CSS, and JavaScript. No frameworks, no build tools, no third-party libraries. Loads in milliseconds.

Frequently Asked Questions

What is a cron expression?

A cron expression is a string of five fields separated by spaces that defines a schedule for recurring tasks. The five fields represent minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). Cron expressions are used in Unix/Linux cron jobs, CI/CD pipelines, task schedulers, and cloud services like AWS CloudWatch, Google Cloud Scheduler, and Azure Functions.

How do I read a cron expression?

Read a cron expression from left to right: minute, hour, day of month, month, day of week. An asterisk (*) means "every value." For example, 30 9 * * 1-5 means "at minute 30, hour 9, every day of month, every month, Monday through Friday" — or simply "at 9:30 AM on weekdays." Use a slash (/) for step values, a comma (,) for lists, and a hyphen (-) for ranges.

What do the special characters in cron mean?

Cron expressions use four special characters: asterisk (*) matches every possible value; slash (/) defines step intervals (e.g., */15 means every 15); comma (,) separates individual values in a list; hyphen (-) defines an inclusive range (e.g., 1-5 means 1 through 5). These can be combined: 0-30/10 means "every 10 minutes from minute 0 through 30" (0, 10, 20, 30).

Is it safe to use this cron tool?

Yes. This tool processes everything entirely in your browser using JavaScript. No data is transmitted to any server. The cron expressions you enter and the schedules you build are parsed and calculated locally. You can verify this by checking the browser's network tab — no requests are made when you parse or build an expression. The tool works offline after the initial page load.

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

Standard Unix cron uses 5 fields: minute, hour, day of month, month, and day of week. Some systems (like Quartz Scheduler, Spring Boot, and AWS EventBridge) add a 6th field for seconds at the beginning, or a year field at the end. This tool supports the standard 5-field format, which is the most widely used across crontab, Kubernetes, GitHub Actions, Google Cloud Scheduler, and most CI/CD tools.

How do I schedule a cron job to run every 5 minutes?

Use the expression */5 * * * *. The */5 in the minute field means "every 5th minute" (0, 5, 10, 15, ..., 55). The remaining asterisks mean "every hour, every day, every month, every day of the week." This is one of the most common cron schedules for health checks, metrics collection, and cache refresh operations.

How are next execution times calculated?

Next execution times are calculated by iterating forward from the current date and time, checking each minute against the cron expression's constraints. The calculation happens entirely in your browser using JavaScript's Date object in your local timezone. Times are shown with both absolute timestamps and relative indicators for quick reference.