• Guess will just post my version maybe will be of some help to someone else.

    CREATE FUNCTION [dbo].[weekday_dateadd] ( @startDate SMALLDATETIME, @Days INT, @SkipHoliday BIT = 1, @DayOnly BIT = 1 )

    RETURNS SMALLDATETIME

    AS

    BEGIN

    /*

    Title: weekday_dateadd(2)

    Author: Mark Wolff

    Date: 11/18/2010

    Purpose: Adds a specified number of weekdays to a given date allowing to SkipHolidays also

    Examples:

    SELECT dbo.weekday_dateadd(GETDATE(),90,DEFAULT,DEFAULT)

    SELECT dbo.weekday_dateadd(GETDATE(),10,DEFAULT,0)

    NOTE: Will not work past a few years

    */

    DECLARE @endDate SMALLDATETIME

    SELECT @endDate = date

    FROM (

    SELECT

    ROW_NUMBER() OVER (ORDER BY date) Sequence

    ,CASE WHEN @DayOnly = 1 THEN Date ELSE Date + CONVERT(VARCHAR,@startDate,108) END Date

    FROM dim_Date(NOLOCK)

    WHERE DAYOFWEEK NOT IN ('Saturday','Sunday')

    AND (CASE WHEN @SkipHoliday = 1 AND HolidayText IS NOT NULL THEN 0 ELSE 1 END) = 1

    AND Date BETWEEN @startDate-1 AND DATEADD(d,@Days+@Days/7*3+20,@startDate)

    )d

    WHERE Sequence = @Days

    RETURN @endDate

    END

    Did some basic testing seems to work 😛