WORKDAY.INTL in Google Sheets: Custom Workday Deadlines and Holiday Schedules
Build Google Sheets deadlines with custom weekend masks, trace forward and backward workday steps and distinguish a target date from an inclusive working-date count.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: WORKDAY.INTL(start_date,num_days,[weekend],[holidays]) returns a date after moving by the specified number of working days. You can choose a numeric weekend code or a seven-character Monday-to-Sunday mask, with 0 for a workday and 1 for an excluded weekday.
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 WORKDAY.INTL reference. Documentation and independent models, with no native Google Sheets execution or wider client certification.
Syntax and optional arguments
=WORKDAY.INTL(start_date, num_days, [weekend], [holidays])
A positive offset moves forward and a negative one backward. Weekend defaults to code 1, excluding Saturday and Sunday. The optional holiday range removes additional dates from the selected weekly pattern.
Use DATE-generated date inputs and format the result as a date. Examples use whole-number offsets; the dedicated Sheets reference does not explicitly settle decimal offset truncation or start-time handling, so those rules are not copied from Excel or the ordinary WORKDAY page.
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 |
For masks, "0000011" is the ordinary Saturday/Sunday weekend and "0000110" excludes Friday/Saturday. Quotes preserve the seven-character text including its leading zeros.
Example 1: a one-day deadline depends on the working calendar
=WORKDAY.INTL(DATE(2026,6,4),1)
=WORKDAY.INTL(DATE(2026,6,4),1,7)
Expected dates are June 5 and June 7. The anchor is Thursday. Under the default calendar, Friday is the next workday; under the Friday/Saturday weekend, the next eligible day is Sunday.
The two-day difference is intentional. It comes from the selected schedule, not from a different definition of a 24-hour day.
Example 2: allow Saturday by excluding only Sunday
=WORKDAY.INTL(DATE(2026,6,5),1,11)
=WORKDAY.INTL(DATE(2026,6,5),1,1)
Expected results are Saturday June 6 and Monday June 8. Code 11 permits Saturday, while the default two-day weekend does not.
Neither code includes a holiday list unless one is supplied. A date being called a weekday in ordinary language does not override the explicit mask or code.
Advanced example: schedule only Monday, Wednesday and Friday
Use mask "0101011", which excludes Tuesday, Thursday, Saturday and Sunday. Put =DATE(2026,6,1) in A2 and offsets 1, 2, 3 and 4 in B2:B5. Fill down:
=WORKDAY.INTL($A$2,B2,"0101011")
Expected milestones are June 3, June 5, June 8 and June 10. Each offset is measured from the same Monday anchor. It is not a chain where each row’s duration begins after the previous row’s result.
List the eligible days beside a custom mask so a reviewer can see why Tuesday June 2 was skipped even though it is not a default weekend day.
Advanced example: a holiday removes one eligible step
Put =DATE(2026,6,5) in H2:
=WORKDAY.INTL(DATE(2026,6,1),4,"0101011",$H$2)
Expected target: June 12. The four counted dates are June 3, June 8, June 10 and June 12. Friday June 5 would have been eligible under the weekly pattern, but the separate holiday removes it.
This fixture shows why the holiday list must match the intended organization and reporting period. The formula cannot infer that calendar from the file’s locale or a date’s name.
Advanced example: move backward through the same policy
Keeping the June 5 holiday and Monday-Wednesday-Friday pattern:
=WORKDAY.INTL(DATE(2026,6,10),-2,"0101011",$H$2)
Expected date: June 3. The first backward step is Monday June 8; the next is Wednesday June 3 because June 5 is excluded and the intervening dates are not working dates under this pattern.
A calendar subtraction of two days would instead yield June 8. Working-day offsets and calendar-day subtraction are different operations even when both return a valid date.
Count versus target-date distinction
With no holidays and the ordinary weekend, moving four workdays from Monday June 1 reaches Friday June 5. The inclusive interval June 1–5 contains five eligible dates. NETWORKDAYS.INTL answers the count question; WORKDAY.INTL supplies the target date.
That difference prevents a common off-by-one substitution. Decide whether the start is an anchor or an included reporting date before changing formulas.
Unsupported edge assumptions and parsing
Google shows a zero-offset sample but does not settle its result for every weekend or holiday start. Zero offsets on nonworking dates, all-ones masks, invalid-code error displays, fractional starts and decimal offsets remain unverified here.
The reference’s example 10/10/2000 is division; its actual value is 0.0005, despite the printed decimal typo. Use explicit DATE inputs rather than relying on an ambiguous literal. The ordinary WORKDAY guide documents its own fixed-weekend behavior and input details separately.
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.