я бы захардкодил в массив за все рабочие дни за год(ну, или хотя бы сгенерировал на основании массива с выходными днями):
calendar(year2022(mounth1(1,2,3,4,5,8,9,10,11,12,15,16,17,18,19,22,23,24,25,26,28,29,30),mounth2(2,3,4,5,6,9,10...), mounth3(1, 2...), etc))
и спрашивал у него
days_to_work_on_task = 3
start_date = today
end_data = calendar[year2022[mounth2[today + days_to_work_on_task]]]
так как заведомо там все дни рабочие, можно тупо по порядку идти, приплюсовывая количество дней положенного на таску.
нужно обработать момент с выходом за рамки кортежа месяца, и за рамки кортежа года (считать на сколько вышел, и остаток переносить на другой месяц/год)
так же нашёл библиотеку с API производственного календаря, если не лень разобраться, можно оттуда тянуть данные:
https://www.isdayoff.ru/libs/