UtilityKit

500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.

Cron Expression Generator

Build 5-field cron expressions quickly

About Cron Expression Generator

Cron Expression Generator on UtilityKit builds valid 5-field cron expressions through a point-and-click interface — no memorizing field order, no guessing step syntax, no silent scheduling mistakes. Cron is the standard mechanism on Linux and Unix, used by crontab, GitHub Actions on.schedule, AWS EventBridge, Kubernetes CronJobs, and every major CI/CD platform. The five fields — minute, hour, day of month, month, and day of week — accept specific values and step syntax (*/15), but rules are easy to get wrong from memory, especially the day-of-month and day-of-week interaction. This tool replaces memorization with dropdowns: pick a value per field, watch the expression assemble live, and read the plain-English explanation of when it runs. Copy the expression and paste it into a crontab line, YAML workflow, or Terraform resource. Common schedules — midnight daily, every 15 minutes,.

Why use Cron Expression Generator

Visual Field-by-Field Builder

Dropdowns for each of the five cron fields eliminate the need to memorize field order or step syntax — the correct expression assembles automatically as you select options.

Plain-English Schedule Explanation

Every change to a dropdown immediately updates a human-readable description of when the schedule runs — so you can confirm 'Runs with schedule: Every 5 minutes, Every hour, Every day…' before copying.

Prevents Silent Scheduling Errors

Mistyped cron expressions either fail silently or trigger at the wrong time. The builder only generates valid combinations from its preset options, eliminating a common class of production incidents.

Covers All Five Standard Fields

Minute, hour, day of month, month, and day of week are all configurable — the same 5-field format used by Linux crontab, GitHub Actions, Kubernetes CronJobs, and AWS EventBridge.

Instant Copy for Infrastructure Code

The generated expression sits in a read-only input field you can select and copy in one click — paste it directly into a crontab line, YAML workflow, or Terraform resource without reformatting.

No Installation, No Sign-Up, Works Offline

The builder runs entirely in the browser. There is no library to install, no account to create, and no Internet connection required after the page loads.

How to use Cron Expression Generator

  1. Select a value from the Minute dropdown — choose 'Every minute' for * or pick a specific minute or step like 'Every 5 minutes' for */5.
  2. Select a value from the Hour dropdown — choose 'Every hour' for *, a specific hour (e.g. '09:00'), or a step like 'Every 2 hours' for */2.
  3. Select a value from the Day of month dropdown — choose 'Every day' for *, a specific day of the month (e.g. Day 1, Day 15), or 'Last day' for month-end schedules.
  4. Select a value from the Month dropdown — choose 'Every month' for * or a specific month by name.
  5. Select a value from the Day of week dropdown — choose 'Any day' for * or a specific weekday (Monday through Sunday).
  6. Copy the generated expression from the output field and paste it into your crontab, GitHub Actions workflow, AWS EventBridge rule, or any other cron-compatible scheduler.

When to use Cron Expression Generator

  • When setting up a cron job on a Linux server and you want to verify the expression before writing it to the crontab to avoid an off-by-one scheduling mistake.
  • When writing a GitHub Actions workflow with an on.schedule trigger and need the correct cron string for a specific weekday-and-time pattern.
  • When configuring an AWS EventBridge rule, a Kubernetes CronJob, or a Heroku Scheduler entry and the UI accepts a raw cron expression.
  • When you want to confirm what an existing cron expression means — read the plain-English explanation to verify the schedule without parsing the fields manually.
  • When scheduling a recurring backup, report, or cleanup job and need to quickly try different frequencies (every 15 minutes vs every hour vs nightly) to pick the right cadence.
  • When onboarding a teammate who is unfamiliar with cron syntax and you want to show them a live-updating builder that makes the five-field format intuitive.

Examples

Run a database backup every day at midnight

Input: Minute: 0, Hour: 0, Day: *, Month: *, Weekday: *

Output: 0 0 * * * — runs at 00:00 every day (server timezone)

Send a weekly report every Monday at 9 AM

Input: Minute: 0, Hour: 9, Day: *, Month: *, Weekday: Monday

Output: 0 9 * * 1 — runs at 09:00 on every Monday

Poll an API endpoint every 5 minutes

Input: Minute: */5, Hour: *, Day: *, Month: *, Weekday: *

Output: */5 * * * * — runs at minutes 0, 5, 10, 15 … 55 of every hour

Tips

  • GitHub Actions schedules run on UTC. If you want a job at 9 AM Eastern (UTC-5), set the hour field to 14 — and remember to adjust by 1 hour during daylight saving time (set to 13 for EDT, UTC-4).
  • Avoid scheduling expensive jobs at exactly midnight (0 0 * * *) — many systems do the same and server load spikes. Offset by a few minutes (e.g. 5 0 * * *) to spread the load.
  • To run a job on the last day of every month, the 'Last day' preset generates the L value. Note that L is a Quartz extension; standard Linux cron does not support it — use 28 or a wrapper script instead for maximum compatibility.
  • The plain-English explanation below the expression is the quickest way to sanity-check a schedule before deploying. Read it aloud: 'Runs with schedule: Every 5 minutes, Every hour, Every day…' confirms the cadence immediately.
  • For a weekday-only schedule (Monday to Friday), set Day of week to 1-5 using the individual weekday options iteratively, or check your scheduler's support for ranges — standard cron accepts 1-5 in the weekday field for Mon–Fri.

Frequently Asked Questions

Which cron format does this tool generate?
The tool generates standard 5-field Unix cron expressions in the format: minute hour day-of-month month day-of-week. This format is used by Linux crontab, GitHub Actions on.schedule, Kubernetes CronJobs, AWS EventBridge (with slight variations), and most CI/CD platforms.
What does */ mean in a cron expression?
The */ syntax means 'every N units'. For example, */5 in the minute field means 'every 5 minutes' (at 0, 5, 10, 15, … 55). */2 in the hour field means 'every 2 hours' (at 0, 2, 4, … 22).
What is the difference between day of month and day of week?
Day of month (1–31) specifies which calendar day within a month to run. Day of week (0–6, Sunday=0) specifies which day of the week. When both are set to specific values (not *), most cron implementations trigger on either condition being met, which can cause double-runs.
Does it support GitHub Actions cron syntax?
Yes. GitHub Actions uses the same 5-field UTC cron format. Paste the generated expression directly into the cron field under on.schedule. Note that GitHub Actions runs on UTC, so adjust your hour field for your timezone offset.
Does the tool support advanced syntax like L (last), W (nearest weekday), or # (nth weekday)?
The current tool supports standard numeric values, wildcard (*), and step syntax (*/N) through its presets. Advanced Quartz scheduler extensions like L, W, and # are not available in the current dropdown set.
How do I schedule a job for every 15 minutes?
Set Minute to '*/15' (Every 15 minutes if available, or choose a close preset) and leave all other fields as *. The resulting expression */15 * * * * runs at minutes 0, 15, 30, and 45 of every hour.
Why did my cron job run at the wrong time?
The most common cause is a timezone mismatch. System cron and most cloud schedulers run on the server's timezone (often UTC). If your expression is based on local time, add or subtract your UTC offset from the hour field.
Is Cron Expression Generator free to use?
Yes. Cron Expression Generator on UtilityKit is completely free with no account, no sign-up, and no usage limits.

Explore the category

Glossary

Cron expression
A string of five space-separated fields that specifies a recurring schedule for a cron job. The fields in order are: minute, hour, day of month, month, and day of week.
Wildcard (*)
In a cron field, * means 'every valid value'. For example, * in the hour field means 'every hour from 0 to 23'.
Step syntax (*/N)
Divides the valid range by N and triggers at each step. For example, */15 in the minute field triggers at 0, 15, 30, and 45 — every 15 minutes.
Crontab
The file (or the crontab -e editor command) on a Linux or Unix system where cron jobs are defined. Each line contains a 5-field schedule expression followed by the command to run.
UTC offset
The difference in hours between a local timezone and Coordinated Universal Time. Cloud schedulers typically operate on UTC, so hour-based cron expressions must account for the offset between UTC and the intended local time.
5-field cron format
The standard Unix cron format with fields for minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, Sunday=0 or 7). Used by Linux cron, GitHub Actions, Kubernetes CronJobs, and most schedulers.