Days On / Days Off Shift Calendar Calculator

Enter a known first day of your rotation and the calendar year you need. The calendar maps every date to a shift state and reports work totals, weekends, hours, and the longest uninterrupted break.

Your numbers
Choose the repeating cycle that matches your employer’s published rota.
Enter the year of a known date that was day 1 of your complete rotation.
Enter the month number for the known first day of the cycle.
Enter the day of the month for the known first day of the cycle.
The calculator will map every day in this calendar year.
Use the nominal scheduled length of one working shift.

What this calculator leaves out

  • This projects an ideal repeating rotation and does not override your employer-issued roster.
  • Presets can have different sequence orders, team offsets, and shift labels at different employers, so verify the displayed sequence before using the dates.
  • The estimate excludes swaps, overtime, leave, holidays, unpaid breaks, payroll rounding, premiums, and temporary schedule changes.

By using this calculator you agree to the Terms of Use. Results are estimates, not professional advice.

Scheduled workdays184

Scheduled off days
181
Nominal scheduled hours
2,208
Saturday and Sunday workdays
55
Weekends with any scheduled work
34
Longest continuous break
4 days, January 5, 2026 to January 8, 2026
Cycle summary
8 days: 4 work and 4 off; 42.00 nominal hours/week; work at position 1 on January 1
Full-year shift calendar and monthly work totals
MonthDate: state (cycle position)WorkdaysNominal hours
January1: W1, 2: W2, 3: W3, 4: W4, 5: O5, 6: O6, 7: O7, 8: O8, 9: W1, 10: W2, 11: W3, 12: W4, 13: O5, 14: O6, 15: O7, 16: O8, 17: W1, 18: W2, 19: W3, 20: W4, 21: O5, 22: O6, 23: O7, 24: O8, 25: W1, 26: W2, 27: W3, 28: W4, 29: O5, 30: O6, 31: O716192
February1: O8, 2: W1, 3: W2, 4: W3, 5: W4, 6: O5, 7: O6, 8: O7, 9: O8, 10: W1, 11: W2, 12: W3, 13: W4, 14: O5, 15: O6, 16: O7, 17: O8, 18: W1, 19: W2, 20: W3, 21: W4, 22: O5, 23: O6, 24: O7, 25: O8, 26: W1, 27: W2, 28: W315180
March1: W4, 2: O5, 3: O6, 4: O7, 5: O8, 6: W1, 7: W2, 8: W3, 9: W4, 10: O5, 11: O6, 12: O7, 13: O8, 14: W1, 15: W2, 16: W3, 17: W4, 18: O5, 19: O6, 20: O7, 21: O8, 22: W1, 23: W2, 24: W3, 25: W4, 26: O5, 27: O6, 28: O7, 29: O8, 30: W1, 31: W215180
April1: W3, 2: W4, 3: O5, 4: O6, 5: O7, 6: O8, 7: W1, 8: W2, 9: W3, 10: W4, 11: O5, 12: O6, 13: O7, 14: O8, 15: W1, 16: W2, 17: W3, 18: W4, 19: O5, 20: O6, 21: O7, 22: O8, 23: W1, 24: W2, 25: W3, 26: W4, 27: O5, 28: O6, 29: O7, 30: O814168
May1: W1, 2: W2, 3: W3, 4: W4, 5: O5, 6: O6, 7: O7, 8: O8, 9: W1, 10: W2, 11: W3, 12: W4, 13: O5, 14: O6, 15: O7, 16: O8, 17: W1, 18: W2, 19: W3, 20: W4, 21: O5, 22: O6, 23: O7, 24: O8, 25: W1, 26: W2, 27: W3, 28: W4, 29: O5, 30: O6, 31: O716192
June1: O8, 2: W1, 3: W2, 4: W3, 5: W4, 6: O5, 7: O6, 8: O7, 9: O8, 10: W1, 11: W2, 12: W3, 13: W4, 14: O5, 15: O6, 16: O7, 17: O8, 18: W1, 19: W2, 20: W3, 21: W4, 22: O5, 23: O6, 24: O7, 25: O8, 26: W1, 27: W2, 28: W3, 29: W4, 30: O516192
July1: O6, 2: O7, 3: O8, 4: W1, 5: W2, 6: W3, 7: W4, 8: O5, 9: O6, 10: O7, 11: O8, 12: W1, 13: W2, 14: W3, 15: W4, 16: O5, 17: O6, 18: O7, 19: O8, 20: W1, 21: W2, 22: W3, 23: W4, 24: O5, 25: O6, 26: O7, 27: O8, 28: W1, 29: W2, 30: W3, 31: W416192
August1: O5, 2: O6, 3: O7, 4: O8, 5: W1, 6: W2, 7: W3, 8: W4, 9: O5, 10: O6, 11: O7, 12: O8, 13: W1, 14: W2, 15: W3, 16: W4, 17: O5, 18: O6, 19: O7, 20: O8, 21: W1, 22: W2, 23: W3, 24: W4, 25: O5, 26: O6, 27: O7, 28: O8, 29: W1, 30: W2, 31: W315180
September1: W4, 2: O5, 3: O6, 4: O7, 5: O8, 6: W1, 7: W2, 8: W3, 9: W4, 10: O5, 11: O6, 12: O7, 13: O8, 14: W1, 15: W2, 16: W3, 17: W4, 18: O5, 19: O6, 20: O7, 21: O8, 22: W1, 23: W2, 24: W3, 25: W4, 26: O5, 27: O6, 28: O7, 29: O8, 30: W114168
October1: W2, 2: W3, 3: W4, 4: O5, 5: O6, 6: O7, 7: O8, 8: W1, 9: W2, 10: W3, 11: W4, 12: O5, 13: O6, 14: O7, 15: O8, 16: W1, 17: W2, 18: W3, 19: W4, 20: O5, 21: O6, 22: O7, 23: O8, 24: W1, 25: W2, 26: W3, 27: W4, 28: O5, 29: O6, 30: O7, 31: O815180
November1: W1, 2: W2, 3: W3, 4: W4, 5: O5, 6: O6, 7: O7, 8: O8, 9: W1, 10: W2, 11: W3, 12: W4, 13: O5, 14: O6, 15: O7, 16: O8, 17: W1, 18: W2, 19: W3, 20: W4, 21: O5, 22: O6, 23: O7, 24: O8, 25: W1, 26: W2, 27: W3, 28: W4, 29: O5, 30: O616192
December1: O7, 2: O8, 3: W1, 4: W2, 5: W3, 6: W4, 7: O5, 8: O6, 9: O7, 10: O8, 11: W1, 12: W2, 13: W3, 14: W4, 15: O5, 16: O6, 17: O7, 18: O8, 19: W1, 20: W2, 21: W3, 22: W4, 23: O5, 24: O6, 25: O7, 26: O8, 27: W1, 28: W2, 29: W3, 30: W4, 31: O516192

States: W = work, D = day shift, N = night shift, E = early shift, O = off. Preset sequence: W W W W O O O O.

Confirm the sequence and cycle-start date against your employer-issued rota; common pattern names can use different team offsets or day/night assignments.

Overnight shifts are assigned to their starting calendar date. Scheduled hours are nominal and do not adjust for breaks, daylight-saving changes, or payroll rules.

How to use this calculator

  1. Choose the preset whose ordered sequence matches your employer’s published rota.
  2. Enter a confirmed cycle-start date, meaning position 1 of the complete sequence.
  3. Choose the calendar year and enter the nominal hours in one working shift.
  4. Read the annual totals, then open the calendar table for every mapped date and monthly total.

How the shift calendar is calculated

A repeating rota is an ordered pattern, not a weekday rule. For example, this tool treats 4 on, 4 off as [W, W, W, W, O, O, O, O]. W means a generic workday and O means off. The DuPont and Continental presets keep their day, night, and early labels so you can see the assigned state in the calendar.

Each civil date is converted to a proleptic-Gregorian ordinal number. If R(d) is the ordinal for a calendar date, R(a) is the ordinal for the cycle-start date, and L is the number of entries in the selected pattern, the mapped entry is:

cycle position = floorMod(R(d) − R(a), L) + 1

floorMod(x, L) = ((x mod L) + L) mod L. This matters when the anchor date comes after the year being generated: the calendar still wraps backward to the correct pattern entry. Position 1 is always the anchor date, even when position 1 is an off day or a night shift.

Scheduled workdays are all mapped entries other than O. Nominal scheduled hours equal workdays multiplied by the hours per workday you enter. Weekend workdays count worked Saturdays and Sundays separately, while working weekends count a Saturday-Sunday pair once if either date is worked. The average weekly hours shown in the cycle summary is 7 × hours per workday × work entries ÷ L.

Choosing the cycle-start date and preset

Use a date you can verify against a current employer-issued rota, not simply the first day you remember working. Count through the employer’s full published sequence and enter the date labelled as its first position. A 4 on, 4 off calendar moves through weekdays because its eight-day cycle is not divisible by seven.

Names such as Pitman, Continental, and DuPont are useful shorthand, but they are not universal specifications. Employers can change the order of day and night shifts, add team offsets, or use the same name for a related sequence. The displayed preset sequence is included below the results so you can compare it with your rota before relying on the dates.

What the calendar leaves out

The result is an ideal repeating rotation. It does not include holidays, shift swaps, overtime, training, leave, shutdowns, vacancies, or temporary changes. An overnight shift is assigned to its starting calendar date. Nominal hours are scheduled hours, not payroll or elapsed clock hours, so they do not account for unpaid breaks, daylight-saving changes, premiums, or overtime rules.

Worked example

With a 4 on, 4 off pattern starting on January 1, 2026, January 1 through 4 are workdays and January 5 through 8 are off. The eight-day sequence repeats for all of 2026.

There are 365 days in 2026: 45 complete eight-day cycles give 180 workdays, and the remaining five dates contain four workdays. The result is 184 scheduled workdays and 181 off days. At 12 nominal hours per workday, that is 2,208 scheduled hours. The calendar also finds 55 Saturday and Sunday workdays, 34 weekends with any work, and a first longest break of January 5 through 8.

Common questions

How do I choose the correct cycle-start date?

Use a date that your employer identifies as the first entry in the full rotation, then verify the entries immediately before and after it. A date that is merely your first scheduled shift may be position 2 or later, so it can offset the whole calendar.

How does a 4 on, 4 off schedule move through weekdays?

The pattern repeats every eight calendar days, while weekdays repeat every seven. Each new eight-day cycle begins one weekday later than the previous one, so work blocks gradually move through all weekdays and weekends.

What is the difference between a 2-2-3 and a DuPont schedule?

This calculator’s 2-2-3 / Pitman preset is a 14-day pattern of two workdays, two off days, three workdays, two off days, two workdays, and three off days. The DuPont preset is a 28-day day-and-night sequence with longer blocks and a seven-day off stretch. Employers may use variants, so compare the displayed sequence with your roster.

How are overnight shifts and weekends counted?

An overnight shift is counted on the date it starts, without splitting it at midnight. Saturday and Sunday workdays are counted individually, while a weekend is counted once when either its Saturday or Sunday has scheduled work.

Are scheduled hours the same as payroll hours?

No. Scheduled hours are workdays multiplied by the nominal shift length you enter. Payroll can differ because of unpaid breaks, overtime, premiums, leave, rounding, and daylight-saving transitions.

Put this calculator on your site

Paste the snippet below where you want the calculator to appear. It stays up to date automatically and links back here.

<iframe src="https://countfolk.com/embed/days-on-days-off-shift-calendar-calculator/" title="Days On / Days Off Shift Calendar Calculator" width="100%" height="640" style="border:0;max-width:44rem" loading="lazy"></iframe>