Cron expression for every 3 days

The closest cron expression for every 3 days is 0 0 */3 * *. It restarts on the 1st of each month, so check the real run dates here and see the one-line fix for an exact three-day rhythm.

0minute
0hour
*/3day
*month
*weekday

*/3 isn't really every 3 days

The day-of-month field restarts on the 1st of every month, so the last run of a month is followed by a run on the 1st — anywhere from 1 to 3 days later depending on the month. For an exact spacing, run daily and have the command skip days.

In Plain English

What your cron expression actually means.

At 12:00 AM, on day 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, and 31 of the month

Upcoming Executions

Preview the next 50 times this schedule will trigger.

Calculating…

About 0 0 */3 * *

0 0 */3 * * runs at midnight on the 1st, 4th, 7th… of each month, and the step restarts on the 1st, so the gap across a month boundary is anywhere from one to three days. For an exact three-day rhythm, run daily and let the command act on every third Unix day; the exact crontab below does that (the backslashes stop crontab from treating % as a newline).

Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:

FieldPositionMatches
0minute0
0hour0
*/3day of month1, 4, 7, 10, 13, 16, … 31 (11 values)
*monthevery month
*day of weekevery day of the week

New to cron? Read the syntax reference or the FAQ.

Use it in crontab or GitHub Actions

The single line below is the closest cron gets, not the exact schedule (see above). A crontab runs in the server's local timezone; GitHub Actions always evaluates schedules in UTC. For Kubernetes, AWS EventBridge, or Vercel, use the export menu in the calculator above.

crontab

# At 12:00 AM, on day 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, and 31 of the month
0 0 */3 * * /path/to/command

GitHub Actions workflow

# At 12:00 AM, on day 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, and 31 of the month
# Note: GitHub Actions always runs schedules in UTC.
on:
  schedule:
    - cron: '0 0 */3 * *'

Exact version for crontab

0 0 * * * [ $(expr $(date +\%s) / 86400 \% 3) -eq 0 ] && /path/to/command

Repeating intervals

Build a custom cron expression →