WORKDAY.INTL function

Returns the date of a working day that is a specified number of days before or after a start date, excluding weekends and optional holidays.

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

Generate a WORKDAY.INTL formula

Describe what you need. The generator will reach for WORKDAY.INTL where WORKDAY.INTL is the right tool, and tell you when it is not.

How to get a better answer
  • Name your columns by letter and by header: "column F (Net Value)" beats "the amount column".
  • State every condition, including the negatives — "not cancelled" changes the formula's shape.
  • Say where the data starts if it is not row 1, and whether it will grow.
  • Check the settings above match your spreadsheet: the wrong argument separator is a syntax error on your machine.

Arguments

How WORKDAY.INTL reads its arguments
start_daterequireddaysrequiredweekendoptionalholidaysoptionalWORKDAY.INTL
ArgumentRequiredDescription
start_dateRequiredThe beginning date from which to count working days; accepts date values, text in recognized date format, or cell references.
daysRequiredThe number of working days to add (positive) or subtract (negative); non-integer values are truncated.
weekendOptionalOptional parameter specifying which days are weekends (1–7 where 1=Sat-Sun, 6=Fri-Sat, etc.); defaults to 1 if omitted.
holidaysOptionalOptional range or array of dates to exclude as holidays in addition to weekend days; individual holiday dates are skipped regardless of day-of-week.

Returns

A date value representing a future or past working day.

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Schedule next maintenance appointment

VehicleOdometerService DateCostGarage
Van A450002024-01-15850North
Truck B620002024-01-181200South
=WORKDAY.INTL(B2, 30)

Result: 2024-02-16

Van A's last service was January 15, 2024. Using WORKDAY.INTL to add 30 working days automatically skips weekends, returning February 16 as the next scheduled preventive maintenance appointment.

2. Calculate completion deadline for Middle East garage

VehicleOdometerService DateCostGarage
Truck B620002024-01-181200South
Van C320002024-02-02720East
=WORKDAY.INTL(B3, 5, 6)

Result: 2024-01-24

Truck B servicing begins January 18 at the South garage, located in the Middle East where Friday-Saturday is the weekend. The weekend parameter 6 specifies this calendar, and adding 5 working days gives January 24 (Wednesday) as the service completion deadline.

3. Schedule maintenance excluding company holidays

VehicleOdometerService DateCostGarageHolidays2024-02-19
Van A485002024-02-22650North2024-03-17
Truck B652002024-03-01950East
=WORKDAY.INTL(B4, 10, 1, H2:H3)

Result: 2024-03-06

Van A's February 22 service will be followed by a 10-working-day checkup. When excluding company holidays (February 19 and March 17) in addition to weekends, the next maintenance check is scheduled for March 6, ensuring no scheduling conflicts with company closures.

Common errors

Which WORKDAY.INTL error are you seeing?
WORKDAY.INTL returned an error#VALUE!
Verify start_date is a real date value and use DATE() or DATEVALUE() if needed. Ensure days is a number. Example: =WORKDAY.INTL(DATEVALUE('2024-01-15'), 30).
#NUM!
Use only weekend values 1 through 7. Consult your spreadsheet's documentation for the correct mapping (1=Sat-Sun, 2=Sun-Mon, 6=Fri-Sat). Example: =WORKDAY.INTL(B2, 30, 6).
#REF!
Verify the holidays range exists and contains valid dates. Use a named range (Data > Named Ranges) for robustness. Example: =WORKDAY.INTL(B2, 30, 1, CompanyHolidays).
ErrorWhy it happensHow to fix it
#VALUE!start_date is not recognized as a valid date (e.g., text without proper formatting, corrupted cell), or days is not numeric (e.g., text like 'thirty' instead of 30).Verify start_date is a real date value and use DATE() or DATEVALUE() if needed. Ensure days is a number. Example: =WORKDAY.INTL(DATEVALUE('2024-01-15'), 30).
#NUM!The weekend parameter is outside the valid range 1–7, or specifies an invalid configuration (e.g., 0, 8, or -1).Use only weekend values 1 through 7. Consult your spreadsheet's documentation for the correct mapping (1=Sat-Sun, 2=Sun-Mon, 6=Fri-Sat). Example: =WORKDAY.INTL(B2, 30, 6).
#REF!The holidays range reference is broken—cells have been deleted, the range was moved, or the reference points outside the workbook.Verify the holidays range exists and contains valid dates. Use a named range (Data > Named Ranges) for robustness. Example: =WORKDAY.INTL(B2, 30, 1, CompanyHolidays).

Tips and when to use something else

  • Use the simpler WORKDAY() function for standard Monday-Friday schedules to keep formulas clearer and avoid unnecessary parameters.
  • The weekend parameter uses values 1–7; refer to your spreadsheet documentation to confirm the exact day mapping for your region.
  • Dates are returned as serial numbers; format cells as Date to display them readably (Ctrl+1 > Number > Date).
  • For large maintenance schedules across many rows, define holidays as a named range and reuse it in all formulas; updates to the range automatically recalculate all dependent cells.

Frequently asked questions

What's the difference between WORKDAY and WORKDAY.INTL?
WORKDAY only handles the fixed Saturday-Sunday weekend, while WORKDAY.INTL supports any weekend configuration via the weekend parameter. WORKDAY.INTL is essential for maintenance schedules in international locations (e.g., Friday-Saturday weekends in the Middle East, or Thursday-Friday in some regions).
Can WORKDAY.INTL calculate dates in the past?
Yes. Use a negative value for days to count backwards. For example, =WORKDAY.INTL(B2, -5) returns the working day 5 working days before B2. This is useful for backdating maintenance records or finding the last business day before a deadline.
Why does my result show a number like 45312 instead of a date?
Dates are stored as serial numbers internally; 45312 represents a specific date (January 15, 2024, in this case). Format the cell as a Date (right-click > Format Cells > Date) to display it as a readable date like '2024-01-15'.
How do I reuse the same holiday list across many formulas?
Define your holidays in a fixed range, then create a named range (e.g., 'CompanyHolidays'). Reference it in each formula: =WORKDAY.INTL(B2, 30, 1, CompanyHolidays). When holidays change, update the range once and all formulas automatically recalculate.

Need a different formula?

The full generator is not scoped to one function — describe any spreadsheet problem and it will pick.

Open the formula generator

Reviewed 2026-09-17