Cron Expression Generator — Build & Explain Cron Schedules Visually

Build cron schedule strings visually and get a plain-English explanation of when they run. Free, secure, and runs entirely in your browser.

Updated:

Loading tool…

How to Build Cron Expressions Visually — Plain-English Schedule Builder

To build a cron expression, use the visual builder — select the minute, hour, day, month, and day-of-week values using the dropdowns and checkboxes on each panel. As you make selections, the cron expression updates in real time in the output field, and a plain-English description below explains exactly when the job will run. Common presets (every minute, every hour, daily at midnight, every weekday) are available as one-click starting points that you can then customize.

To decode an existing cron expression, paste it directly into the Expression input field. The visual builder will highlight the corresponding selections and the plain-English description will explain the schedule. This is useful when reviewing cron jobs in a codebase, CI/CD pipeline, or server configuration where the schedule was written by someone else. Copy the expression from the output field to use it in your scheduler.

The cron format originated in the Unix operating system in the 1970s and remains the industry standard for scheduling recurring tasks. The same 5-field syntax is used by Linux crontab, GitHub Actions, AWS EventBridge Scheduler, Google Cloud Scheduler, Kubernetes CronJobs, Jenkins, and virtually every CI/CD platform. This tool generates standard POSIX cron expressions that work across all of these systems. For one-off date and time conversions, see the related Unix Timestamp Converter.

Why Use This Free Cron Expression Generator?

  • Visual builder with real-time expression preview — no manual syntax memorization needed
  • Plain-English description for every expression — understand exactly when a job runs
  • Decode mode — paste an existing cron expression to understand its schedule instantly
  • Next-run preview shows the upcoming 5 scheduled execution times for verification
  • Common preset schedules as one-click starting points for frequent patterns
  • Supports standard 5-field POSIX cron syntax (minute, hour, day, month, weekday)
  • 100% browser-based — your cron expressions are never sent to any server

Frequently Asked Questions

What is a cron expression?

A cron expression is a string of five space-separated fields that define a recurring schedule for automated tasks. The five standard fields are: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 represent Sunday). Special characters like * (any value), , (list), - (range), and / (step) allow flexible scheduling patterns. The cron daemon was introduced in Version 7 Unix by Ken Thompson in 1979, and the modern crontab format was standardized by Paul Vixie in 1987. Today cron is the universal scheduling mechanism on Unix and Linux systems and is supported by every major CI/CD platform, cloud scheduler, and container orchestrator.

Source: Linux man-pages — crontab(5)

What does each field in a cron expression mean?

The five fields from left to right are: (1) Minute: which minute of the hour the job runs (0 = top of the hour, 30 = half past). (2) Hour: which hour in 24-hour format (0 = midnight, 13 = 1 PM). (3) Day of Month: which day of the month (1-31). (4) Month: which month (1-12 or JAN-DEC). (5) Day of Week: which day of the week (0-7, where 0 and 7 are Sunday, or SUN-SAT). An asterisk (*) in any field means every valid value for that field. For example, the expression '0 9 * * 1' means at 9:00 AM every Monday. The POSIX specification defines the standard behavior for these fields across compliant systems.

Source: The Open Group — POSIX crontab Specification

What do the special characters (*, /, -, ,) mean in cron?

Asterisk (*) matches every valid value for that field — use it when you do not want to restrict a field. Comma (,) separates multiple discrete values: '1,15' in the minute field means at minute 1 and minute 15. Hyphen (-) specifies an inclusive range: '9-17' in the hour field means every hour from 9 AM to 5 PM. Slash (/) specifies a step value: '*/5' in the minute field means every 5 minutes starting from 0; '10/15' means starting at minute 10, then every 15 minutes (10, 25, 40, 55). You can combine these operators: '0 */6 * * 1-5' means every 6 hours on weekdays only.

How do I schedule a job to run every weekday at 9 AM?

The cron expression is: 0 9 * * 1-5. Breaking it down: 0 = at minute 0 (top of the hour), 9 = at 9 AM, * = every day of the month, * = every month, 1-5 = Monday through Friday (1=Monday, 5=Friday). This pattern is one of the most common in production systems — used for daily reports, database backups, and CI build triggers. Note: when both day-of-month and day-of-week are specified (not *), most cron implementations run the job if either condition is true, so using * for day-of-month and specifying day-of-week ensures weekday-only execution.

What time zone does cron use?

Standard cron runs in the server's local timezone, whatever that is configured to. This means the same cron expression can fire at different UTC times depending on where the server is located. Most managed cloud schedulers allow you to specify a timezone explicitly: AWS EventBridge uses the CRON_TZ variable, Google Cloud Scheduler accepts an IANA timezone string, and GitHub Actions supports the cron keyword in UTC by default. Kubernetes CronJobs added timezone support (via the timeZone field) in version 1.27. If you manage your own server, verify the system timezone with timedatectl (Linux) or date (macOS). For consistency across environments, many teams set the server to UTC and convert to local time only when displaying results to users. To convert between UTC timestamps and human-readable dates, use the <a href="/tools/unix-timestamp-converter/">Unix Timestamp Converter</a>.

Source: Kubernetes Docs — CronJob

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

Standard POSIX cron uses five fields (minute, hour, day-of-month, month, day-of-week). Some extended implementations add a sixth field for seconds at the beginning (making it: second, minute, hour, day-of-month, month, day-of-week). Spring Framework, Quartz Scheduler, and some Java-based systems use 6-field or even 7-field cron expressions. AWS EventBridge also uses a 6-field format but places the year as the sixth field. This tool generates standard 5-field expressions, which are compatible with the widest range of systems including Linux crontab, GitHub Actions, and most CI/CD platforms. If your system uses a different format, you may need to prepend a seconds field (typically 0) to the generated expression.

Source: GitHub Docs — GitHub Actions schedule syntax

By UtilDaily · Updated \u2014 free, privacy-first browser tools. No sign-up, no data collection.