NETWORKDAYS.INTL in Google Sheets: Custom Weekends, Holiday Counts and Masks
Count Google Sheets working dates with documented weekend codes or seven-character masks, inspect selected dates and keep holiday and endpoint assumptions visible.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: NETWORKDAYS.INTL(start_date,end_date,[weekend],[holidays]) counts working dates while letting you choose which weekdays are excluded. A weekend mask is seven text characters in Monday-to-Sunday order: 1 excludes a day and 0 permits it.
Availability and version history
- Introduced: first introduction date is not established by the official history reviewed; no desktop release number is inferred.
- Availability: documented in the rolling Google Sheets service; these examples use the web worksheet workflow.
- Checked: October 14, 2026; official NETWORKDAYS.INTL reference. Documentation and independent models, with no native Google Sheets execution or wider client certification.
Syntax and the default calendar
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Weekend is optional and defaults to 1, the Saturday/Sunday pattern. Holidays are an optional range or array containing date values or numeric serials. Use DATE-generated inputs for reproducible date controls.
The result is a count, not a date. Display it as a number. A holiday is an additional excluded date; the function does not automatically supply a location’s public-holiday list.
Documented numeric weekend codes
| Code | Excluded days |
|---|---|
| 1 or omitted | Saturday and Sunday |
| 2 | Sunday and Monday |
| 3 | Monday and Tuesday |
| 4 | Tuesday and Wednesday |
| 5 | Wednesday and Thursday |
| 6 | Thursday and Friday |
| 7 | Friday and Saturday |
| 11 | Sunday only |
| 12 | Monday only |
| 13 | Tuesday only |
| 14 | Wednesday only |
| 15 | Thursday only |
| 16 | Friday only |
| 17 | Saturday only |
Alternatively, use a quoted mask such as "0000011" for Saturday/Sunday or "0000110" for Friday/Saturday. Keep the leading zeros: an unquoted number is not the same input as a seven-character string.
Example 1: compare complete-week calendars
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7))
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),11)
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),7)
Expected counts are 5, 6 and 5. The first excludes Saturday/Sunday, the second excludes only Sunday, and the third excludes Friday/Saturday.
These independently enumerated inclusive calendar controls make the selected pattern explicit. A full week can yield the same total under different patterns, so also inspect which dates were selected.
Example 2: a short interval exposes the weekend choice
=NETWORKDAYS.INTL(DATE(2026,6,5),DATE(2026,6,8),1)
=NETWORKDAYS.INTL(DATE(2026,6,5),DATE(2026,6,8),7)
Both expected counts are 2, but the eligible dates differ: Friday/Monday under code 1, Sunday/Monday under code 7. Equal totals do not prove the calendars are interchangeable.
For the single date Sunday June 7, the calendar-model expectation is 0 under code 1 and 1 under code 7. Those bounded edge controls are intended for native validation; the sparse reference does not enumerate every endpoint combination.
Advanced example: a Monday-Wednesday-Friday schedule
The mask "0101011" permits Monday, Wednesday and Friday and excludes Tuesday, Thursday, Saturday and Sunday:
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),"0101011")
Expected count: 3, selecting June 1, June 3 and June 5. Over June 1–14, the same schedule selects 6 dates: June 1, 3, 5, 8, 10 and 12.
Write the weekday names beside the mask when a schedule is reviewed. Reversing the meaning of 0 and 1 would select the complementary days and could still produce a plausible total.
Advanced example: add holidays without changing the weekly pattern
Put =DATE(2026,6,2) in H2 and =DATE(2026,6,7) in H3. Use the Friday/Saturday weekend:
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),7,$H$2:$H$3)
Expected count: 3, from Monday June 1, Wednesday June 3 and Thursday June 4. Tuesday and Sunday were eligible under this weekend pattern but are removed by the supplied holiday list.
At an explicitly assumed eight hours per eligible date, the count represents 24 planned hours. Variable shifts or half-day closures require a richer model than multiplying every eligible date by one constant.
Advanced check: equivalent code and mask
For the same range and holidays, substituting "0000110" for code 7 gives the same expected 3. Over June 1–14 without holidays, each gives 10.
This comparison checks one documented equivalence. It is not evidence that arbitrary numeric codes and text masks are interchangeable, nor that every invalid or all-one mask has a documented result in Sheets.
Limits and related date calculations
The dedicated reference does not settle all-ones masks, reversed intervals, duplicate holidays, fractional timestamps or a complete error-code table. Those cases remain unverified; no Excel acceptance rule is copied into this guide.
The source’s slash-division warning has a decimal typo: 10/10/2000 is 0.0005, not a date. Use DATE or validated date cells. WORKDAY.INTL returns a target date after an offset, while NETWORKDAYS uses the fixed ordinary weekend.
References and verification
Examples use fictional inputs, English function names and comma argument separators. Expected outputs are independently modeled from the cited rules, not native Sheets captures. Check the spreadsheet locale when reproducing punctuation-sensitive formulas.