buildcron

Cron Expression for Every Thursday

Use 0 0 * * 4 to run a cron job every Thursday. The job runs at 00:00 on Thursday — day 4, counting from Sunday as 0 — once a week.

CRON → ENGLISH
0 minute0 hour* day of month* month4 day of week
VALID EXPRESSION

At 12:00am on Thursday.

0 0 * * 4

Standard 5-field crontab syntax. Day of month and day of week are OR'd when both are set.

NEXT 5 RUN TIMES · local time

What it does

The minute and hour are both 0, so the time is midnight; the day of month and month are open; and the day of week is fixed at 4. Cron evaluates the expression every minute, and the only minute each week where all five fields match is the first minute of Thursday.

Thursday is the last full working day before the weekend, which makes it useful for jobs whose results need a day's slack: preparing a Friday release candidate, running a full regression suite, sending a weekly invoice run so payments clear before the weekend, or reminding a team about Friday deadlines.

Weekly jobs often need to follow a particular office's clock rather than the server's. A server on UTC runs 0 17 * * 4 at 17:00 UTC, which is 18:00 or 19:00 in Berlin depending on the season. cronie supports a CRON_TZ=Europe/Berlin line at the top of a crontab and Kubernetes CronJobs have a timeZone field; other crons may only use the system timezone.

How 0 0 * * 4 works, field by field

FIELDVALUEMEANING
Minute0minute 0
Hour0hour 0 (midnight)
Day of month*every day of the month
Month*every month
Day of week4Thursday

Put together, cron reads 0 0 * * 4 as: “At 12:00am on Thursday.

To see further ahead, paste the expression into the cron calculator, which lists the next ten run times and counts how many times the schedule runs in a year.

Frequently asked questions

How do I run a cron job every Thursday at 5pm?

Use 0 17 * * 4. The hour is 17 because cron uses a 24-hour clock, and the time is in the timezone of the machine running cron unless your scheduler lets you choose another.

How do I schedule a weekly cron job in a different timezone?

Either convert the time to the server's timezone yourself or use a scheduler that accepts one: cronie reads a CRON_TZ= line, and Kubernetes CronJobs have spec.timeZone. Converting by hand goes wrong twice a year if either zone observes daylight saving time.

What's the difference between 0 0 * * 4 and 0 0 4 * *?

0 0 * * 4 runs every Thursday. 0 0 4 * * puts the 4 in the day of month field instead, so it runs on the 4th of every month, whatever day of the week that is.