SITE UNDER CONSTRUCTION. Everything here is provided AS IS, WITHOUT WARRANTIES, to the extent the law allows. It is information, not professional advice. Use at your own risk. Terms and liability limits →

eThorns ES
← DeveloperES

Tool 5.6

Cron expression explainer & next run times

Read a 5-field cron expression as a plain sentence and see its next 5 run times in your time zone. Accepts ranges, lists, steps and names like MON.

Runs on your deviceRuns entirely in your browser: nothing you type or upload leaves your device.

How to use it

  1. Type or paste a 5-field cron expression (minute, hour, day of month, month, day of week), or press a preset.
  2. Read the sentence that explains it, and the table with what you typed in each field.
  3. Check the next 5 run times, shown in your device's time zone. If the server runs in UTC, shift them yourself.

Checking a crontab line before it goes live

Cron is the scheduler of Linux servers, and its 5-field syntax is also used by GitHub Actions, cloud schedulers and backup tools. The notation is compact and a slip is easy to miss: * 2 * * * runs every minute from 02:00 to 02:59, 60 times a night, when you meant 0 2 * * *, once at 02:00.

Paste the expression and the tool writes it as a sentence, shows each field in a table and lists the next five times it would run, in your device's time zone. It all happens in your browser; the expression isn't sent anywhere.

Example: the 1st, the 15th, and every weekday

A report job for tubanco.co is set to 30 2 1,15 * 1-5. The tool reads it as "At 02:30, on day 1, 15 of the month or on Monday, Tuesday, Wednesday, Thursday, Friday".

The "or" matters. When both the day-of-month and the day-of-week fields are set, cron runs the job when either one matches. So this job runs at 02:30 every weekday, and also on the 1st and the 15th when they fall on a weekend; the list of next runs shows it. If you meant "the 1st and the 15th, only on weekdays", one cron line can't say that. The usual fix is 30 2 1,15 * * plus a weekday check inside the script.

Time zones, and crons with 6 fields

The next run times are in your device's time zone, but the server may not be. Many servers and cloud schedulers, GitHub Actions among them, run cron in UTC. Set 0 9 * * 1-5 for 9:00 in Bogotá (UTC-5) on a server in UTC and it runs at 4:00 Bogotá time; for 9:00 you'd write 0 14 * * 1-5, unless the server or the scheduler is set to Bogotá time.

Classic cron has 5 fields. Quartz and Spring, used in Java applications, add a seconds field at the start, and AWS EventBridge adds a year at the end. This tool reads only the 5-field form and shows an error for 6 or 7 fields: drop the seconds or the year to check the rest.

FAQ

What are the five fields in a cron expression?

From left to right: minute (0–59), hour (0–23), day of the month (1–31), month (1–12 or JAN–DEC) and day of the week (0–7 or SUN–SAT, where both 0 and 7 mean Sunday).

What does the slash / character mean in cron?

A slash specifies step values. For example, `*/15` in the minute field means "every 15 minutes starting from 0" (0, 15, 30, 45). In the hours field, `0-12/2` means "every 2 hours between midnight and noon".

How do day of month and day of week combine?

If both are set (neither is `*`), the job runs when either one matches, not only when both do. `0 0 13 * 5` runs every 13th and every Friday, not just on Friday the 13th. If one of them is `*`, only the other one counts.

Can I use @daily or @reboot?

Many cron versions on Linux accept shortcuts: `@hourly` is `0 * * * *`, `@daily` is `0 0 * * *`, `@weekly` is `0 0 * * 0`, `@monthly` is `0 0 1 * *` and `@yearly` is `0 0 1 1 *`, while `@reboot` runs once when cron starts, usually at boot. This tool doesn't read shortcuts, so type the 5-field equivalent.

What do ?, L, W and # mean in a cron expression?

They come from Quartz-style schedulers, used in Java applications and in AWS: `?` means no specific value, `L` means last (such as the last day of the month), `W` the nearest weekday and `#` the nth weekday of the month. Classic 5-field cron doesn't have them, and this tool reports them as invalid values.

  • 5.1JSON formatterFormat or minify JSON and find syntax errors by line and column.
  • 5.2CSV to JSON converterConvert CSV to JSON or JSON to CSV with comma, semicolon or tab separators.
  • 5.3YAML to JSON converterConvert YAML to JSON and back in your browser.
  • 5.4Base64Encode or decode Base64 in your browser: UTF-8 text, URL-safe Base64, files to Base64 or data URLs, and Base64 back to a downloadable file.
  • 5.5Color contrast checkerCheck the contrast ratio of a text color on its background against WCAG 2.2 AA and AAA, for normal text, large text and UI components.
  • 5.7Number base converterConvert whole numbers between decimal, hexadecimal, binary and octal, with bit length and grouped digits.
  • 5.8HTML entity encoderEncode text as HTML entities (named, decimal or hex) or decode entities back to text: <, >, &, quotes, Spanish accents, Latin-1 symbols.
  • 5.9URL encodePercent-encode or decode URLs and query values, and break any URL into protocol, host, path, query parameters and fragment.
  • 5.10SHA-256 hashGet SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or files and verify a download against its published checksum.
  • 5.11UUID generatorGenerate random UUID v4 or time-ordered UUID v7 (RFC 9562) in your browser, 1 to 1000 at a time, in uppercase or without dashes.
  • 5.12Unix timestampConvert Unix timestamps in seconds or milliseconds to ISO 8601, UTC and your local time, or a date back to epoch.
  • 5.13JWT decoderDecode a JSON Web Token in your browser: see the header and payload as formatted JSON and whether it has expired.
  • 5.14Regex testerTest regular expressions live: highlighted matches, capture and named groups, flags and clear errors.

╌╌ END ╌╌