Blog
Wild & Free Tools

Free Crontab Visualizer — See When Your Cron Jobs Run

Last updated: March 2026 6 min read

Table of Contents

  1. Cron Syntax Explained (The 5-Field Format)
  2. Common Cron Patterns You Will Actually Use
  3. Debugging Cron Schedules
  4. Timezone Issues and How to Avoid Them
  5. Crontab vs. Systemd Timers
  6. Frequently Asked Questions

Cron expressions look simple: five fields, a few numbers, maybe an asterisk. But 0 */4 * * 1-5 versus 0 4 * * 1-5 is the difference between "every 4 hours on weekdays" and "once at 4 AM on weekdays." A single character changes the schedule entirely. The only way to be sure is to visualize it.

Our free crontab visualizer shows you exactly when your cron job will run. Enter a cron expression, see the next scheduled executions, and get a human-readable description of the schedule. Catch mistakes before they deploy -- not after your backup script runs every minute instead of every month.

Cron Syntax Explained (The 5-Field Format)

A standard cron expression has five fields separated by spaces. Each field controls one aspect of the schedule:

PositionFieldAllowed ValuesExample
1Minute0-5930 = at minute 30
2Hour0-2314 = at 2 PM
3Day of month1-311 = first of the month
4Month1-126 = June
5Day of week0-6 (0=Sun)5 = Friday

Each field accepts four types of values:

These can be combined. 0 9-17 * * 1-5 means "at the top of every hour from 9 AM to 5 PM, Monday through Friday" -- a business-hours schedule.

Common Cron Patterns You Will Actually Use

Instead of memorizing the syntax, bookmark these patterns and modify as needed:

ExpressionScheduleUse Case
* * * * *Every minuteHealth checks, queue processing
*/5 * * * *Every 5 minutesCache refresh, metric collection
0 * * * *Every hour (at :00)Log rotation, data sync
0 0 * * *Daily at midnightBackups, report generation
0 9 * * 1-59 AM weekdaysMorning notifications, daily digest
0 0 * * 0Midnight SundayWeekly cleanup, analytics rollup
0 0 1 * *Midnight, 1st of monthMonthly billing, reports
0 0 1 1 *Midnight, Jan 1Annual reset, yearly archive
30 2 * * *2:30 AM dailyDatabase maintenance (off-peak)

Test every expression in our crontab visualizer before deploying. Five seconds of verification prevents hours of debugging a job that ran at the wrong time.

Debugging Cron Schedules

"My cron job isn't running." The most common causes, in order of frequency:

  1. The cron expression is wrong. Paste it into the visualizer and check the next run times. If they don't match your expectations, the expression is the problem.
  2. PATH issues. Cron runs with a minimal environment. Commands that work in your terminal may fail in cron because the PATH doesn't include /usr/local/bin or other directories. Use absolute paths in your cron commands.
  3. Permission errors. Cron may run as a different user than you tested with. Check file permissions and ownership for any scripts, logs, or data files your job touches.
  4. The job is running but failing silently. By default, cron swallows output. Redirect stdout and stderr to a log file: 0 * * * * /path/to/script.sh >> /var/log/myjob.log 2>&1
  5. The cron daemon itself isn't running. Check with systemctl status cron or service cron status.

Timezone Issues and How to Avoid Them

Cron runs in the server's system timezone. This is the single most common source of "my job ran at the wrong time" complaints. If your server is UTC and you're in EST, a job scheduled for 0 9 * * * runs at 9:00 AM UTC, which is 4:00 AM EST (or 5:00 AM during daylight saving time).

The fix: always know your server's timezone. Run timedatectl or date to check. Then do the math, or convert your desired local time to the server's timezone before writing the cron expression.

Daylight saving time (DST) creates edge cases. A job scheduled at 2:30 AM might run twice in November (when clocks fall back) or not at all in March (when clocks spring forward and 2:30 AM doesn't exist). If your job is time-sensitive, schedule it outside the 1:00-3:00 AM DST window.

UTC is the safest choice for servers. If you control the server timezone, set it to UTC. No DST transitions, no ambiguity, and consistent behavior year-round. Convert your local times to UTC for cron expressions.

Crontab vs. Systemd Timers

On modern Linux systems, you have two options for scheduled tasks:

Crontab is the traditional choice. It's available on every Unix system, the syntax is well-known, and configuration is a single text file. For simple "run this script at this time" tasks, crontab is perfect. It has been reliable for decades.

Systemd timers are the modern Linux alternative. They offer features crontab doesn't have: randomized delay (to spread load), persistent timers (run missed jobs after reboot), dependency management (wait for network before running), resource limits (CPU and memory caps), and structured logging through journald.

The trade-off is complexity. A crontab entry is one line. A systemd timer requires two files (a .timer and a .service unit). For simple tasks, crontab wins on simplicity. For complex service orchestration on systemd-based systems, timers offer more control.

Either way, validate your schedule first. Our crontab visualizer parses standard 5-field cron expressions used by both crontab and many systemd timer OnCalendar configurations.

Sell Custom Apparel — We Handle Printing & Free Shipping

Frequently Asked Questions

What does each field in a cron expression mean?

A standard cron expression has five fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). Each field accepts specific values, ranges (1-5), lists (1,3,5), and intervals (*/15 for every 15 units).

Why is my cron job running at the wrong time?

The most common cause is timezone mismatch. Cron typically runs in the server's system timezone, not your local timezone. If your server is set to UTC and you schedule a job for 9:00 AM, it runs at 9:00 AM UTC -- which might be 4:00 AM or 1:00 AM in your timezone. Check your server's timezone with date or timedatectl.

What is the difference between crontab and systemd timers?

Crontab is the traditional Unix scheduler -- simple, text-based, and available everywhere. Systemd timers are the modern Linux alternative with features like randomized delay, dependency management, resource limits, and better logging. For simple recurring tasks, crontab works fine. For complex service scheduling on systemd-based Linux, timers offer more control.

Can I use this to test cron expressions before deploying?

Yes -- that is the primary use case. Enter your cron expression, see the next scheduled run times, and verify they match your expectations. This catches mistakes like scheduling a daily job that actually runs hourly, or a monthly job that runs on the wrong day.

Visualize Your Cron Schedule

Free cron expression validator with next-run preview. No signup required.

Open Crontab Visualizer
Launch Your Own Clothing Brand — No Inventory, No Risk