By ANUPRESS Team · Last reviewed August 2026 · 7 min read
A cron expression is five fields, minute, hour, day of month, month, day of week, read left to right. This cron job cheat sheet has the 18 schedules that cover almost every real use case, each with its actual next run time verified against a real cron parser, not typed from memory.
On this page

The five fields, in order
Day-of-week is the field that trips people up: 0 and 7 both mean Sunday, 1 is Monday, so a range like 1-5 is Monday through Friday, not what most people’s calendar app has trained them to expect.
The cron job cheat sheet
| Expression | Runs |
|---|---|
| * * * * * | Every minute |
| */5 * * * * | Every 5 minutes |
| */15 * * * * | Every 15 minutes |
| */30 * * * * | Every 30 minutes |
| 0 * * * * | Every hour, on the hour |
| 0 */2 * * * | Every 2 hours |
| 0 8,20 * * * | 8 AM and 8 PM, daily |
| 0 0 * * * | Every day at midnight |
| 0 9 * * * | Every day at 9 AM |
| 30 3 * * * | Every day at 3:30 AM |
| 0 0 */2 * * | Midnight, every 2 days |
| 0 9 * * 1-5 | 9 AM, weekdays only |
| 0 9 * * 1 | 9 AM, every Monday |
| 0 0 * * 1,3,5 | Midnight, Mon/Wed/Fri |
| 0 2 * * 0 | 2 AM, every Sunday |
| 0 6 1,15 * * | 6 AM, on the 1st and 15th |
| 0 0 1 * * | Midnight, 1st of every month |
| 0 0 1 1 * | Midnight, January 1st, yearly |
Need a schedule that’s not on this list?
Build one from dropdowns, or paste an expression someone else wrote to decode it, and get the actual next 5 run times, not a guess.
Open the cron expression builderSpecial characters used throughout this cron job cheat sheet
| Character | Means | Example |
|---|---|---|
| * | Any value | * in hour = every hour |
| , | A list of values | 8,20 = 8 AM and 8 PM |
| – | A range | 1-5 = Monday to Friday |
| / | A step value | */15 = every 15 units |
Mistakes that cost real downtime
- Confusing */5 with “5 minutes from now”: */5 fires at :00, :05, :10, on the clock, not 5 minutes after whenever the job was set up
- Forgetting server timezone: a schedule written assuming your local time can run hours off if the server runs in UTC, always check before relying on an exact time. The crontab man page is the authoritative source if your system’s exact behaviour is in question
- Day-of-month and day-of-week both set: most cron implementations treat this as OR, not AND, so
0 0 1 * 1runs on the 1st of the month AND every Monday, not only when both happen to coincide - Overlapping long-running jobs: a job scheduled every minute that occasionally takes 90 seconds will start stacking up instances unless something explicitly prevents overlap
Test it before you deploy it
This cron job cheat sheet is meant to be checked against reality, not trusted blindly: the safest way to confirm a new cron expression is to verify its next several run times against what you actually intended before it ever touches production, since a schedule that’s subtly wrong tends to fail silently rather than throw an error. A job meant for 9 AM weekdays that’s accidentally written as 9 AM every day won’t crash anything, it’ll just quietly run on Saturday too, and that kind of mistake can go unnoticed for weeks.
Two practical checks catch almost everything, and they’re worth applying to every schedule you pull from this cron job cheat sheet: confirm the day-of-week field matches what you expect (remembering 0 and 7 are both Sunday), and confirm the server’s actual timezone before trusting a specific hour. Most hosting control panels show cron logs somewhere, worth checking after the first few runs of anything new rather than assuming silence means success.
Frequently asked questions
What does */15 actually mean in cron?
Every 15 units of that field, starting from 0. In the minutes field, it fires at :00, :15, :30 and :45 on the clock, never simply “15 minutes after the last run.”
Do 0 and 7 both mean Sunday?
Yes, in the day-of-week field both 0 and 7 represent Sunday. Most people only ever see 0 used in practice, but both are valid and identical.
What timezone does my cron job run in?
Whatever timezone the server itself is set to, which is very often UTC on cloud hosting regardless of where you or your users are. Always verify server time before assuming a schedule matches your local clock.
How do I run something every weekday but not weekends?
Use 1-5 in the day-of-week field: 0 9 * * 1-5 runs at 9 AM Monday through Friday only.
Can I schedule something to run twice a day at specific times?
Yes, using a comma list in the hour field: 0 8,20 * * * runs at exactly 8 AM and 8 PM every day.
Bookmark this cron job cheat sheet for next time you need a schedule fast. For the rest of your site’s technical setup, see the complete developer tools guide. Last reviewed August 2026. See how we review and our affiliate disclosure.



