What Is a Cron Expression?
Cron is a Unix-based job scheduler that runs commands at specified times and intervals. A cron expression is a string of five (or six) fields that define a schedule: minute, hour, day of month, month, and day of week. Some systems add a seconds field or a year field.
┌───────────── minute (0–59)
│ ┌───────────── hour (0–23)
│ │ ┌───────────── day of month (1–31)
│ │ │ ┌───────────── month (1–12)
│ │ │ │ ┌───────────── day of week (0–7, Sunday = 0 or 7)
│ │ │ │ │
* * * * *
The wildcard * means "every." So * * * * * runs every minute, while 0 9 * * 1 runs at 9:00 AM every Monday.
How to Use the Cron Expression Generator
- Open DevKits' cron generator in your browser.
- Use the visual builder — select frequency (minute, hourly, daily, weekly, monthly, yearly) and fill in the time fields.
- Read the human-readable description that appears instantly: "Every Monday at 9:00 AM."
- See the next 5 scheduled run times to verify the pattern is correct.
- Copy the expression and paste it into your server's crontab, CI/CD system, or cloud scheduler.
Common Cron Schedule Examples
* * * * *— Every minute0 * * * *— Every hour (on the hour)0 0 * * *— Every day at midnight0 9 * * 1-5— Weekdays at 9:00 AM0 0 1 * *— First day of every month at midnight0 0 * * 0— Every Sunday at midnight*/15 * * * *— Every 15 minutes0 2 * * *— Every day at 2:00 AM (ideal for backups)
Key Features of a Good Cron Generator
- Visual schedule builder — dropdowns and checkboxes so you never have to memorize syntax.
- Real-time explanation — plain English description updates as you change fields.
- Next run preview — shows the upcoming 5–10 execution times relative to now.
- Expression validator — highlights invalid field values and explains what went wrong.
- Multiple cron formats — supports standard 5-field cron, Quartz 6-field (with seconds), and AWS EventBridge syntax.
- Timezone awareness — select your timezone to see run times in local time.
Use Cases
Scheduled Database Backups
Most teams run database backups in the early morning when traffic is lowest. A typical expression is 0 3 * * * (3:00 AM daily). The generator helps you verify this runs every day, not just specific days.
CI/CD Pipelines and Nightly Builds
GitHub Actions, GitLab CI, and Jenkins all support cron-triggered workflows. Schedule nightly integration test runs or dependency audit jobs with a validated expression.
Report Generation and Email Digests
Sending a weekly summary email every Monday morning? Use 0 8 * * 1 and verify in the generator that it fires at 8:00 AM on Mondays, not Sundays.
Cache Warming and Cleanup Jobs
Applications often schedule cache invalidation or temp-file cleanup at regular intervals. 0 */4 * * * runs every 4 hours — a pattern that is easy to misremember and easy to verify in a generator.
Cron Special Strings
Many cron implementations support convenient shorthand strings:
@reboot— Run once at system startup@yearly/@annually— Equivalent to0 0 1 1 *@monthly— Equivalent to0 0 1 * *@weekly— Equivalent to0 0 * * 0@daily/@midnight— Equivalent to0 0 * * *@hourly— Equivalent to0 * * * *
aiforeverthing.com — No signup, runs in your browser
Frequently Asked Questions
What is the difference between 5-field and 6-field cron?
Standard Unix cron uses 5 fields (minute through day of week). Quartz Scheduler adds a seconds field at the beginning, making it 6 fields. AWS EventBridge uses a 6-field format with a year field at the end. The generator supports all three formats.
How do I run a job every 30 minutes?
Use */30 * * * *. The */n syntax means "every n units." This runs at :00 and :30 of every hour. If you want :15 and :45 instead, use 15,45 * * * *.
Why does my cron job use day 0 vs day 7 for Sunday?
Both 0 and 7 represent Sunday in most cron implementations. The generator's next-run preview will show you actual dates so you can confirm Sunday is firing correctly.
Can I use cron expressions in GitHub Actions?
Yes. GitHub Actions supports 5-field cron expressions in the schedule trigger. Note that GitHub Actions runs on UTC, so adjust your hour field accordingly for local time zones.
How do I stop a cron job from running if the previous run is still active?
Cron itself does not have built-in overlap prevention. Use a lock file mechanism, a tool like flock, or a job scheduler with overlap protection like Sidekiq or Kubernetes CronJobs with concurrencyPolicy: Forbid.