BYTETOOLS

Cron Expression Examples for Real-World Schedules

Whether you need a nightly backup at 2 AM (0 2 * * *), a report every weekday at 8 (0 8 * * 1-5), or a cache refresh every 15 minutes (*/15 * * * *), the right cron expression turns a recurring chore into a hands-off routine. Below are practical schedules teams actually deploy, each one something you can paste into the ByteTools Cron Expression Parser to confirm in plain English before it ships.

Let’s start with the scenarios and work backward to the syntax, so you can match a real task to a proven pattern.

A cheat sheet of common schedules

GoalExpressionPlain English
Nightly database backup0 2 * * *Every day at 2:00 AM
Weekday morning report0 8 * * 1-58:00 AM, Monday to Friday
Cache warm every 15 min*/15 * * * *Every 15 minutes, all day
Weekly log rotation30 3 * * 03:30 AM every Sunday
Monthly invoicing0 0 1 * *Midnight on the 1st of each month
Quarterly cleanup0 4 1 1,4,7,10 *4 AM on the 1st of Jan, Apr, Jul, Oct

Worked example: business-hours health checks

Suppose you want to poll an API every 10 minutes, but only during working hours on weekdays. You combine a step in the minute field with a range in both the hour and weekday fields: */10 9-17 * * 1-5. Parsed, that reads as "every 10 minutes, between 9 AM and 5 PM, Monday through Friday." The next-run preview confirms it skips evenings and weekends entirely — exactly what you want for a check that would be noise outside office hours.

Worked example: staggered nightly jobs

Running every maintenance task at midnight overloads the server. Instead, stagger them: backups at 0 0 * * *, index rebuilds at 0 1 * * *, and report generation at 0 2 * * *. Feeding each into the parser side by side lets you verify the sequence and the exact wall-clock times before you edit the crontab, so nothing collides.

Worked example: twice-daily with a list

For a sync that should run at 6 AM and 6 PM, a list in the hour field does the job: 0 6,18 * * *. The comma means "these specific values," so the schedule fires precisely twice a day. The parser’s field-by-field breakdown shows the hour field resolving to both 6 and 18, and the next-run list alternates morning and evening as expected.

Across all these workflows, the pattern is the same: describe the task, pick the fields that constrain it, then verify the English and the next runs before deploying. Because everything is computed locally, you can validate sensitive internal schedules without exposing them to any server.

Try the Cron Expression Parser — free and 100% in your browser.

FAQ

How do I write a cron that runs every weekday but not weekends?

Use a range in the day-of-week field: 0 8 * * 1-5 covers Monday (1) through Friday (5). Parse it to confirm the next five runs all land on weekdays.

What expression runs a job on the last day of the month?

Standard cron has no "last day" token, so teams usually run near the end (for example 0 0 28-31 * *) and guard inside the script, or schedule for the 1st and process the prior month. Verify whichever pattern you choose with the next-run preview.

How do I schedule something a few times an hour?

Use a list or a step in the minute field. 0,20,40 * * * * fires three times an hour; */20 * * * * does the same more compactly.

Can I run a job only in specific months?

Yes — put a list or names in the month field, such as 0 4 1 1,4,7,10 * for quarterly runs, or use JAN,APR,JUL,OCT for readability.

Related free tools

Built by ByteVancer

ByteTools is a free product of ByteVancer, a software and web development studio building web apps, SaaS, and custom software. When your scheduled workflows outgrow a simple crontab, ByteVancer can design the automation and infrastructure behind them — explore their services to learn more.