Crontab Builder
Build a cron expression by selecting a schedule for each field. The resulting cron string updates as you make changes. When you are done, copy the expression and paste it into your crontab. If you already have an expression and want to understand what it means, try the Cron Expression Explainer.
Cron Expression
* * * * *
Every minute
Minute
0 – 59
Hour
0 – 23
Day of month
1 – 31
Month
1 – 12
Day of week
0=Sun – 6=Sat
Quick presets
How to Use Your Cron Expression
Once you have built your expression, you can use it in several ways:
Adding to your crontab (Linux / macOS)
Open your personal crontab for editing with:
crontab -e
Then add a line in this format:
# Run my script every day at midnight
0 0 * * * /path/to/my-script.sh
Save and exit. Verify with crontab -l.
System-wide cron (Linux)
System cron files in /etc/cron.d/ include a username field between the cron expression and the command:
0 0 * * * www-data /usr/bin/php /var/www/cron.php
GitHub Actions
GitHub Actions uses the same five-field syntax in a schedule trigger. Note that GitHub Actions runs on UTC time:
on:
schedule:
- cron: '0 9 * * 1-5'
Cron Field Reference
| Field | Range | Examples |
|---|---|---|
| Minute | 0–59 | 0, 15, */5, 0-30 |
| Hour | 0–23 | 0, 9, */6, 9-17 |
| Day of month | 1–31 | 1, 15, 1,15, 1-7 |
| Month | 1–12 | 1, 6, 1,7, 3-6 |
| Day of week | 0–7 (0,7 = Sunday) | 0, 1-5, 1,3,5 |
Frequently Asked Questions
What timezone does cron use?
By default, cron uses the system timezone of the server where the crontab is installed. You can override this at the top of your crontab file with CRON_TZ=America/New_York (or any IANA timezone name) on its own line before your job entries — though support varies by cron implementation.
Why do I need to use the full path to commands?
Cron runs with a minimal environment and a limited PATH. Commands that work in your shell may not be found by cron. Always use absolute paths (e.g., /usr/bin/python3) or set PATH=... at the top of your crontab.
How do I redirect cron output?
By default, cron emails output to the user who owns the crontab. To suppress output: command > /dev/null 2>&1. To log to a file: command >> /var/log/my-cron.log 2>&1.
Can I have multiple values in one field?
Yes — separate values with commas. For example, 1,3,5 in the day-of-week field means Monday, Wednesday, and Friday. You can also mix commas with ranges: 1,3-5 means Monday plus Wednesday through Friday.