Contact

WORKDAY.INTL in Excel: Schedule Dates with Custom Weekends

Date and time Intermediate Microsoft Excel

Move Excel dates through explicit weekly schedules and holidays, check zero and fractional offsets, and distinguish supported masks from invalid calendars.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: WORKDAY.INTL returns a date a chosen number of working days before or after a start, with customizable weekends and optional holidays. A seven-character mask runs Monday through Sunday, using 1 for nonworking and 0 for working.

Availability and version history

  • Introduced: the Microsoft function catalogue marks WORKDAY.INTL as an Excel 2010 addition; an exact first build or preview date is not established here.
  • Availability: official help lists Excel for Microsoft 365, Excel for Microsoft 365 for Mac, Excel 2024, Excel 2024 for Mac, Excel 2021, Excel 2021 for Mac, Excel 2019, Excel 2016, Excel Web App.
  • Checked: October 14, 2026; official WORKDAY.INTL reference. Documentation and independently modeled examples; no native Excel execution or broader platform certification.

Syntax and documented normalization

=WORKDAY.INTL(start_date, days, [weekend], [holidays])

Start and days are required. Microsoft truncates the start date and day offset to integers. Positive days move forward, negative days backward, and zero returns the specified start date after that date truncation.

Weekend defaults to Saturday/Sunday. Holidays is the fourth argument, a date range or array of serial dates. Format the numeric result as a date, unlike the day count returned by NETWORKDAYS.INTL.

Weekend codes and masks

Codes 1–7 exclude, respectively: Saturday/Sunday, Sunday/Monday, Monday/Tuesday, Tuesday/Wednesday, Wednesday/Thursday, Thursday/Friday and Friday/Saturday. Codes 11–17 exclude one day only: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday respectively.

A quoted mask spells out the rule directly. “0000011” excludes Saturday/Sunday; “0000110” excludes Friday/Saturday. Leading zeros matter, so a mask must not be entered as an unquoted number.

The all-ones mask “1111111” is explicitly invalid for WORKDAY.INTL. A calendar with no working days cannot be used as though it were the same operation as counting zero qualifying dates.

Example 1: compare standard and Friday/Saturday weekends

=WORKDAY.INTL(DATE(2026,6,4),1)
=WORKDAY.INTL(DATE(2026,6,4),1,7)

Expected dates are June 5 and June 7, 2026. June 4 is Thursday. The default calendar permits Friday, while code 7 skips Friday and Saturday and reaches Sunday.

With code 11, which excludes Sunday only, Friday June 5 plus one working day gives Saturday June 6. The calendar parameter determines which dates count; it is not a number of additional calendar days to add.

Example 2: use a nonconsecutive workweek

For a Monday/Wednesday/Friday-only schedule:

=WORKDAY.INTL(DATE(2026,6,1),4,"0101011")

Expected date: June 10, 2026. The four counted dates after the Monday start are June 3, June 5, June 8 and June 10.

A useful fill-down control puts offsets 1,2,3,4 in A2:A5 and uses =WORKDAY.INTL(DATE(2026,6,1),A2,"0101011"). Expected dates are June 3, June 5, June 8 and June 10. The starting date itself does not consume the positive offset.

Advanced example: a holiday removes an otherwise working date

Put =DATE(2026,6,5) in H2:

=WORKDAY.INTL(DATE(2026,6,1),4,"0101011",$H$2)

Expected date: June 12, 2026. The counted dates are now June 3, June 8, June 10 and June 12. Friday June 5 was a working weekday under the mask but is removed by the holiday input.

The holiday is a fictional schedule exception, not a date looked up from your location. Keep the holiday reference absolute when formulas are copied, and store actual numeric dates rather than descriptive labels.

Advanced example: move backward through the same schedule

=WORKDAY.INTL(DATE(2026,6,10),-2,"0101011",$H$2)

Expected date: June 3, 2026. Monday June 8 is the first earlier working date. June 5 is excluded by H2, so Wednesday June 3 becomes the second. Ordinary subtraction of two calendar days would instead give June 8 and would not apply this schedule.

Zero and fractional arguments are explicit behaviors

=WORKDAY.INTL(DATE(2026,6,6),0)
=WORKDAY.INTL(DATE(2026,6,1)+0.75,4.9,"0101011")

Expected dates are June 6 and June 10, 2026. The zero-offset example returns the Saturday start rather than automatically advancing it to Monday. In the second, the 18:00 time fraction is discarded and the 4.9-day offset becomes 4.

For an offset of −1.9 from Monday June 1 with the standard calendar, truncation gives −1 and the expected date is May 29. Truncation toward zero is different from rounding down to −2.

Advanced check: a seven-day schedule

Mask “0000000” permits every weekday. From June 4, an offset of three then gives June 7, while an offset of −3 gives June 1. This is a deliberate all-days calendar; it does not change the behavior of the omitted standard weekend.

Errors and remaining boundaries

Microsoft documents #NUM! for out-of-range start or holiday dates and for a movement producing an invalid date. Its worked example also assigns #NUM! to numeric weekend code 0. Invalid mask length or characters produce #VALUE!.

The page calls “1111111” invalid without assigning its exact displayed error in that statement, so this guide does not invent one. Blank/text holiday coercions, duplicate handling and every fractional input edge remain separate native tests. WORKDAY supplies a fixed-weekend alternative, but its dedicated source must establish its own zero-offset and truncation scope.

References and verification

Expected results are independent calendar/arithmetic models or explicitly documented rules, not captured native output. Examples use English function names and comma separators. Input dates and schedules are fictional.