# Cron Expression Parser - Explain & Next Runs

> Free cron expression tool: plain-English meaning, next 5 run times in any time zone, crontab 5-field, Quartz/Spring 6–7 field, ? L W # and @daily syntax.

- URL: https://qilingtools.com/en/cron
- Category: Developer Tools (https://qilingtools.com/en/dev)
- Tags: [Date & Time](https://qilingtools.com/en/tags/time), [Developer](https://qilingtools.com/en/tags/dev), [DevOps](https://qilingtools.com/en/tags/devops)
- Last updated: 2026-11-07
- Price: Free, no sign-up
- Privacy: Runs locally in the browser; files are never uploaded

Paste a cron expression and you instantly get three things: one sentence saying when it runs (for example "Every 15 minutes, between 09:00 and 18:59, Monday through Friday"), the exact values each field resolves to, and the next 5 actual run times. It understands Linux crontab's 5 fields, Quartz and xxl-job's 6–7 fields (seconds first, optional year last) and Spring @Scheduled's 6 fields, including L, W, #, ?, names like MON-FRI and JAN, and macros like @daily. With 6 fields you can choose Quartz or Spring rules, because their weekday numbers differ. Servers often run on UTC, so you can switch the time zone used for the calculation and still see your local equivalent, with daylight-saving gaps skipped automatically. Everything is calculated in your browser.

## How to use

1. Type or paste a cron expression, or click one of the examples
2. Read the Meaning line and check it matches what you intended
3. For 6 fields, choose Quartz or Spring; if the server is in another zone, set Time zone to the server's zone
4. Check the next 5 runs, and use the field breakdown to find which field is wrong if something is off

## Features

- One-sentence meaning in English or Chinese
- crontab 5-field, Quartz / xxl-job 6–7 field and Spring @Scheduled 6-field syntax
- * , - / ? L W # plus names such as MON-FRI and JAN, and macros like @daily and @hourly
- Next 5 runs, searching up to 8 years ahead (so even February 29 is found)
- Switchable time zone with local equivalents and correct daylight-saving handling
- Errors name the exact field and value; calculated locally, nothing uploaded

## FAQ

### What is the difference between 5, 6 and 7 fields?

Five fields is Linux crontab: minute hour day-of-month month day-of-week, with minute resolution. Six fields adds seconds at the front and is used by Quartz, xxl-job, Elastic-Job and Spring @Scheduled; seven fields adds a year at the end and only Quartz supports it. So noon every day is 0 12 * * * in crontab but 0 0 12 * * ? in Quartz. Putting a 6-field expression into crontab, or the reverse, either fails or runs at the wrong time.

### Are weekday numbers the same everywhere?

No, and this is the most common mistake. crontab: 0 and 7 are Sunday, 1 is Monday. Spring @Scheduled: also 0 and 7 for Sunday and 1 for Monday. Quartz and xxl-job: 1 is Sunday, 2 is Monday … 7 is Saturday. So 0 15 10 ? * 2-6 means Monday to Friday in Quartz but Tuesday to Saturday in Spring. Names such as MON-FRI mean the same in all three and are the safest choice.

### If both day-of-month and day-of-week are set, must both match?

In crontab, when both are restricted (neither starts with *), either one triggers a run: 0 0 1,15 * 5 runs on the 1st and 15th of every month plus every Friday. In Quartz and Spring both must match: 0 0 0 1 * MON only runs when the 1st falls on a Monday, which from November 2026 is next on 1 February 2027. Quartz also requires one of the two fields to be ?, or it fails at startup; the tool warns you about this.

### What do L, W and # mean?

They are Quartz and Spring extensions. In day-of-month, L is the last day, L-2 the third-to-last day, 15W the weekday nearest the 15th (moved to Monday the 16th if the 15th is a Sunday), and LW the last weekday of the month. In day-of-week, 6L is the last Friday of the month (6 is Friday in Quartz) and 6#3 the third Friday. Tested from November 2026: 0 0 10 ? * 6#3 gives 20 November, 18 December and 15 January; 0 0 9 15W * ? lands on 16 November because the 15th is a Sunday.

### What is the difference between */15 and 5/15?

After the slash is the interval and before it the starting point: */15 starts at 0, giving minutes 0, 15, 30 and 45; 5/15 starts at 5, giving 5, 20, 35 and 50; 10-30/10 gives 10, 20 and 30. 0 */2 * * * runs every 2 hours (00:00, 02:00 … 22:00). Note that an interval that does not divide evenly, like */7, restarts from 0 each hour rather than continuing 7 minutes after minute 56.

### Why are actual runs a few hours off from the prediction?

Usually a time-zone difference. Cron follows the clock of the machine running it: Linux servers use the system zone, and cloud servers and Docker containers are often UTC; Spring and Quartz default to the JVM zone, and Spring can set @Scheduled(zone = "Europe/London"); GitHub Actions schedules always use UTC; Kubernetes CronJob supports spec.timeZone since 1.27. Switch the tool to the server's zone: 0 9 * * MON-FRI in UTC, for example, shows as 17:00 Beijing time.

### What are @daily, @reboot and similar macros?

They are crontab shortcuts: @yearly (or @annually) equals 0 0 1 1 *, @monthly 0 0 1 * *, @weekly 0 0 * * 0, @daily (or @midnight) 0 0 * * *, and @hourly 0 * * * *. @reboot runs once when the system starts and has no fixed time, so no runs are predicted. Quartz does not accept these macros; Spring supports @daily and friends since 5.3, but not @reboot.

### Can it find runs for rare schedules?

Yes. The tool searches up to 8 years ahead, so 0 0 29 2 * (every 29 February) shows 2028-02-29 and 2032-02-29. Daylight saving is handled too: for 30 2 * 3 0 (every Sunday in March at 2:30) in America/New_York, 14 March 2027 is skipped because clocks jump straight from 2:00 to 3:00 and 2:30 does not exist that day.

### Are my files or data uploaded?

No. Everything runs locally in your browser with no network upload, and is discarded when you close the page.

### Do I need to sign up or pay?

No. The site is completely free, needs no account and has no usage limits.

## Related tools

- [JSON Formatter](https://qilingtools.com/en/json): Free online JSON formatter: beautify or minify, validate with the exact line and column of any error, browse a collapsible tree, sort keys and escape strings.
- [Base64 Encode/Decode](https://qilingtools.com/en/base64): Free online Base64 encoder and decoder: convert text, images and any file to Base64, and Base64 back to text or files. UTF-8 and GBK text, data URIs and URL-safe Base64; decoded images are previewed and downloadable. Processed locally, never uploaded.
- [URL Encode/Decode](https://qilingtools.com/en/url-encode): Free online URL encoder and decoder: turn spaces, symbols and non-English text into percent-encoding such as %E4%BD%A0, or turn encoded links back into readable text. Handles single values or whole URLs, UTF-8 and GBK, and + as space. Real-time and local, no upload.
- [JWT Decoder](https://qilingtools.com/en/jwt): Free JWT decoder: read the header and payload, check expiry, and verify the signature with a secret, PEM, JWK or JWKS. Runs locally, nothing uploaded.
- [Timestamp Converter](https://qilingtools.com/en/timestamp): Free online Unix timestamp converter: convert timestamps and dates, auto-detect seconds or milliseconds, and show local, UTC, ISO 8601 and relative time.
- [Hash / Checksum](https://qilingtools.com/en/hash): Free hash calculator: MD5, SHA-1, SHA-256, SHA-384 and SHA-512 of text or files, with automatic comparison against a published checksum. Multi-GB files, no upload.
- [UUID Generator](https://qilingtools.com/en/uuid): Free online UUID generator: create UUID v4 (GUID) or time-ordered v7 in bulk with your browser's cryptographic RNG. Uppercase, no-hyphen and brace options, up to 100 at a time, one-click copy, generated locally.
- [Base Converter](https://qilingtools.com/en/base-convert): Free number base converter for binary, octal, decimal, hex and any base 2–36. Detects 0x/0b/0o prefixes and separators, with exact results for huge integers.
