他社の事例としてとのことですが、
日本生まれの某社のソフト(PCにインストールするタイプ)では、
1プロジェクトを1ファイルとして使います。
各々のプロジェクト内に、複数のカレンダーを登録できます。カレンダー毎に名前で識別します。
各々のカレンダー上で、1日毎に稼働日か非稼働日かが選べます。土曜か日曜か祝日かは選べません。
タスク毎に、どのカレンダーを適用するか選べます。(1タスクには1つだけです)
また、プロジェクト全体のカレンダーも選べます。通常は表示の背景に使います。土日祝とかを表す。
なので、プロジェクト全体では祝日で休みにしても、タスクがその日に作業するなら別のカレンダーを選べば労働日になります。
各タスクを動かしていくと、非労働日を避けることが出来ます。