Skip to content

Generators

Cron Expression Parser

Translate cron expressions into human-readable English.

cronstrue Client-side
Minute
*
Hour
*
Day of month
*
Month
*
Day of week
*

Human-readable description

Every 5 minutes

Ready

Common examples

Frequently Asked Questions & Guide

How to use this Cron Expression Parser
  1. Type a cron expression into the input box at the top. The five fields — minute, hour, day of month, month, day of week — appear below as you type, so you can see each field's value at a glance.
  2. The human-readable description updates instantly below the input.
  3. Click any of the common examples below to load them.

This parser uses cronstrue, the most popular cron-to-English library in the JavaScript ecosystem. It supports all standard cron syntax including ranges (1-5), lists (1,3,5), step values (*/5), and special characters (L for last, W for nearest weekday, # for nth weekday). The library is fully client-side; no data leaves your browser.

What is a cron expression?

A cron expression is a string of five (or six, with seconds) fields that specifies a schedule for periodic execution. The format originated in Unix cron in the 1970s and is now used by virtually every job scheduler: Linux cron, systemd timers, Kubernetes CronJobs, AWS EventBridge, GitHub Actions schedules, Spring @Scheduled, Quartz Scheduler, Celery beat, Airflow, and many others. The five fields are:

  • Minute (0–59)
  • Hour (0–23)
  • Day of month (1–31)
  • Month (1–12 or JAN–DEC)
  • Day of week (0–6 or SUN–SAT, where 0 or 7 is Sunday)

Each field can be a single value, a range (1-5), a list (1,3,5), a step value (*/15 means every 15 minutes), or an asterisk (every value). Some cron implementations also support L (last day of month, last weekday of month), W (nearest weekday to a given day), and # (nth weekday of the month, e.g. 5#3 for the third Friday).

Does this support 6-field cron (with seconds)?

The standard 5-field cron is supported out of the box. For 6-field cron (seconds + the standard 5 fields, as used by Quartz Scheduler and Spring), set the option cronstrue.toString(expr, { seconds: true }). This tool uses 5-field mode by default since that's what Linux cron, Kubernetes CronJobs, and GitHub Actions use.

What's the difference between Vixie cron, Quartz, and AWS EventBridge cron?

The basic syntax is shared, but the edge cases differ:

  • Vixie cron (Linux default) — 5 fields. Day-of-week is 0–6 or 7 for Sunday.
  • Quartz Scheduler — 6 or 7 fields (seconds and optional year). Day-of-week is 1–7 with 1 for Sunday. Supports L, W, #.
  • AWS EventBridge — 6 fields (seconds added). Day-of-week is 1–7 with 1 for Sunday. Uses L for last. ? instead of * in either day-of-month or day-of-week (you must specify one and use ? for the other).

If you are debugging an AWS EventBridge rule, use the AWS documentation to interpret the ? character — cronstrue does not parse it.

What timezone is the schedule in?

A cron expression defines a pattern, not a timezone. The schedule runs in whatever timezone the cron daemon runs in. Linux cron typically runs in the system timezone. Kubernetes CronJobs run in UTC by default. GitHub Actions runs in UTC. AWS EventBridge lets you specify a timezone per rule. Always check the documentation for your specific scheduler.

Is my cron expression sent to a server?

No. cronstrue runs entirely in your browser. Your cron expression never leaves your device.