Cron Expression Generator & Translator

Free online cron syntax checker — translate, validate, and build cron job expressions

Use this cron expression translator to convert cron expressions to human-readable text, check your crontab expression syntax for errors, and see exactly when your cron jobs will run. Our online cron generator helps you build and evaluate cron job expressions visually.

* min
* hour
* day
* month
* weekday

Translation (Human Readable)

Enter a cron expression above to translate it to plain English

Next 3 Scheduled Runs

  • Enter a cron expression to evaluate upcoming runs
* * * * *

Human Readable

Every minute

Next 3 Runs

  • Build an expression to see upcoming runs

Quick Reference

Field Values

Minute0-59
Hour0-23
Day1-31
Month1-12
Weekday0-6 (Sun-Sat)

Special Characters

*Any value
,List separator
-Range
/Step values

Cron Expression Examples with Translations

Click any cron expression below to translate it to human-readable text using the cron expression translator above. All expressions work with Linux crontab, Kubernetes CronJobs, and GitHub Actions.

Cron Expression Description Category
* * * * *Every minuteTime-based
*/5 * * * *Every 5 minutesTime-based
*/10 * * * *Every 10 minutesTime-based
*/15 * * * *Every 15 minutesTime-based
*/30 * * * *Every 30 minutesTime-based
0 * * * *Every hourTime-based
0 */2 * * *Every 2 hoursTime-based
0 */6 * * *Every 6 hoursTime-based
0 */12 * * *Every 12 hours (twice daily)Time-based
0 0 * * *Daily at midnightDaily
0 6 * * *Daily at 6 AMDaily
0 9 * * *Daily at 9 AMDaily
0 12 * * *Daily at noonDaily
0 18 * * *Daily at 6 PMDaily
0 9,18 * * *Twice daily (9 AM and 6 PM)Daily
0 9 * * 1-5Weekdays at 9 AMWeekday
0 17 * * 1-5Weekdays at 5 PMWeekday
0 8-18 * * 1-5Business hours (Mon-Fri 8AM-6PM)Weekday
0 10 * * 0,6Weekends at 10 AMWeekday
0 0 * * 0Every Sunday at midnightWeekday
0 0 * * 1Every Monday at midnightWeekday
0 15 * * 5Every Friday at 3 PMWeekday
0 0 1 * *First day of month at midnightMonthly
0 0 15 * *15th of month at midnightMonthly
0 0 1,15 * *1st and 15th of monthMonthly
0 6 1-7 * 1First Monday of month at 6 AMMonthly
0 0 1 1 *New Year's Day at midnightYearly
0 0 1 1,4,7,10 *Quarterly (Jan, Apr, Jul, Oct)Yearly
0 0 1 */3 *Every 3 monthsYearly
0 0 1 */6 *Every 6 months (semi-annual)Yearly
0 2 * * *Database backup (daily at 2 AM)DevOps
0 3 * * 0Weekly maintenance (Sunday 3 AM)DevOps
0 4 * * *Log rotation (daily at 4 AM)DevOps
0 8 * * 1Weekly report (Monday 8 AM)DevOps
0 1 1 * *Monthly billing (1st at 1 AM)DevOps
0 */4 * * *Cache clear (every 4 hours)DevOps

Cron Expression & Crontab Syntax Guide

Understanding Cron Expressions and Crontab Format

A cron expression (also called crontab expression or cron job expression) is a string consisting of five fields separated by spaces. Each field represents a specific time unit that determines when your scheduled task will run. Use this cron expression translator to convert any expression to plain English. The standard cron format used in Linux, macOS, Kubernetes CronJobs, and GitHub Actions follows this pattern:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday=0)
│ │ │ │ │
* * * * * command_to_execute

Cron Special Characters Explained

Asterisk (*) - Every Value

The asterisk matches every possible value for a field. For example, * in the hour field means "every hour," and * in the day of month field means "every day."

Comma (,) - List of Values

Use commas to specify multiple discrete values. For example, 1,15 in the day field runs the task on the 1st and 15th of each month. Similarly, 0,6 in the weekday field targets Saturday and Sunday.

Hyphen (-) - Range of Values

The hyphen creates a range of values. For example, 9-17 in the hour field means "every hour from 9 AM to 5 PM," and 1-5 in the weekday field means "Monday through Friday."

Slash (/) - Step Values

The slash defines step values (intervals). */15 in the minute field means "every 15 minutes," while */2 in the hour field means "every 2 hours." You can combine this with ranges: 0-30/5 means "every 5 minutes during the first half hour."

Cron Across Different Platforms

Linux Crontab

The original cron implementation on Linux and Unix systems. Edit your personal crontab with crontab -e and view scheduled jobs with crontab -l. System-wide cron jobs are typically stored in /etc/cron.d/.

Kubernetes CronJobs

Kubernetes uses the same 5-field cron syntax to schedule Jobs. CronJobs run in containers and are ideal for scheduled batch processing, database backups, and periodic cleanups in a containerized environment.

GitHub Actions

GitHub Actions workflows can be triggered on a schedule using cron syntax. Note that GitHub schedules run in UTC timezone, and there may be delays during high-load periods. The syntax is placed in your workflow YAML under on: schedule: - cron:.

AWS CloudWatch Events / EventBridge

AWS supports cron expressions with a 6-field format (adding a year field) for scheduling Lambda functions and other AWS resources. The syntax is slightly different, so verify expressions when migrating.

Common Cron Mistakes to Avoid

  • Timezone confusion: Cron typically uses the server's timezone. Always verify which timezone your cron daemon uses, especially on cloud servers that may default to UTC.
  • Overlapping day constraints: When you specify both day-of-month and day-of-week, cron runs when either matches, not both. This can lead to unexpected executions.
  • Missing path environment: Cron runs with a minimal environment. Always use absolute paths for scripts and binaries, or set PATH at the beginning of your crontab.
  • No output handling: By default, cron emails output to the user. Redirect output to a log file or /dev/null to prevent mail buildup.
  • Permission issues: Ensure scripts are executable (chmod +x) and the cron user has permission to access all required files.

Cron Best Practices

  • Log everything: Redirect output to log files for debugging. Example: 0 2 * * * /path/to/script.sh >> /var/log/myjob.log 2>&1
  • Use lock files: Prevent overlapping executions with flock: flock -n /tmp/myjob.lock /path/to/script.sh
  • Test expressions: Use this tool to verify your cron expressions before deploying them to production.
  • Stagger execution times: Avoid scheduling multiple jobs at exactly :00 minutes. Spread them out to reduce system load spikes.
  • Monitor job execution: Use monitoring tools to alert when scheduled jobs fail or don't run as expected.

Cron Expression FAQ — Common Questions Answered

What is a cron expression?

A cron expression (also called crontab expression or cron job expression) is a string of 5 (or 6) fields that define a schedule for running tasks. The fields represent: minute, hour, day of month, month, and day of week. For example, 0 9 * * 1-5 means "at 9:00 AM, Monday through Friday". Use our cron expression translator above to convert any expression to plain English.

How do I translate a cron expression to human-readable text?

Enter your cron expression in the translator tool at the top of this page. The cron expression translator will instantly convert it to plain English and show you exactly when your cron job will run next. This works for any valid crontab expression.

How do I check if my cron syntax is correct?

Use our cron syntax checker above. Simply paste your cron expression, and the tool will validate it, highlight any errors, and translate it to human-readable format. If your crontab expression is valid, you'll see the next scheduled run times.

What does * mean in cron?

The asterisk (*) in a cron expression means "any value" or "every". For example, * in the minute field means "every minute", and * in the day field means "every day".

How do I run a cron job every 5 minutes?

To run a cron job every 5 minutes, use the expression */5 * * * *. The */5 in the minute field means "every 5 minutes", and the asterisks mean "every hour, every day, every month, every day of the week".

How do I run a cron job at midnight every day?

To run a cron job at midnight (12:00 AM) every day, use 0 0 * * *. The first 0 is the minute (0), the second 0 is the hour (midnight), and the asterisks mean every day of every month.

How do I schedule a cron job for weekdays only?

To run a cron job only on weekdays (Monday-Friday), set the day of week field to 1-5. For example, 0 9 * * 1-5 runs at 9 AM every weekday. Days are numbered 0-6 where 0 is Sunday.

How do I run a cron job on the first day of every month?

To schedule a task for the first day of each month, use 0 0 1 * *. This runs at midnight on day 1 of every month. Change the time fields if you need a different time, for example 0 9 1 * * for 9 AM.

What is the difference between cron and crontab?

Cron is the daemon (background service) that executes scheduled tasks. Crontab is the file where you define those scheduled tasks using cron expressions. You edit your crontab with crontab -e command.

How do I run a cron job every hour?

To run a cron job every hour at the start of the hour, use 0 * * * *. The 0 in the minute field runs the job at minute 0, and the * in the hour field means every hour.

How do I run a cron job twice a day?

To run a job twice daily, specify two hours separated by a comma. For example, 0 9,18 * * * runs at 9 AM and 6 PM every day. You can also use 0 */12 * * * to run every 12 hours.

Does this tool work with Kubernetes CronJobs?

Yes! This tool uses standard 5-field cron syntax which is compatible with Linux crontab, Kubernetes CronJobs, GitHub Actions schedules, AWS EventBridge, and most scheduling systems.

What timezone does cron use?

Cron typically uses the system's local timezone. For Linux servers, check with timedatectl. Cloud services like GitHub Actions run in UTC. Always verify your server's timezone to avoid scheduling surprises.

How do I run a cron job every Sunday?

To run a job every Sunday, set the weekday field (last field) to 0. For example, 0 2 * * 0 runs every Sunday at 2 AM. Note: Some systems also accept 7 as Sunday.