Teams Phoneの休日設定をコマンドで設定する

Teams Phoneの自動応答を利用している企業において、必ず発生する運用タスクが自動応答のスケジュール管理です。

自動応答の設定自体は一度作ってしまえば安定して動作しますが、祝日や夏季休業、年末年始といった休日リストの設定だけは、どうしても定期的なメンテナンスを避けて通れません。

日本の祝日は、毎年2月頃に内閣府から翌年の祝日が公表されるため、どんなに効率化を考えても、「10年分をまとめて設定しておく」といった先送りができないところがこのタスクの難しいところです。

記事執筆時点(2026年3月)において以下の内閣府のページでは2027年までの祝日が発表されており、「2028年の国民の祝日は、2027年の2月に掲載します」とあります。

www8.cao.go.jp

今回はこの定期的に発生するタスクを、PowerShellコマンドで効率化する方法をご紹介します。

設定手順

休日の日程一覧を用意する

まず、登録する休日の一覧を準備します。

以下のように、A列にヘッダー(date)を入れ、yyyy/mm/dd 形式で日付を並べたCSVファイルを準備してください。これをコマンドに読み込ませて、休日を登録します。

※2026/1/1~1/3のように連続で休みとする場合も、1日ずつ指定してください。

作成したCSVファイルは「holidays.csv」の名前を付け、C:\temp配下に置きます。

休日リスト作成コマンド

続いて、休日リストを新規作成するコマンドを用意します。

既存の休日リストへ日程を追加するコマンドも検討してみましたが、休日リスト名に重複が許可されているため、誤ったリストを上書きしてしまわないような考慮を入れる必要があり、コードがかなり複雑になってしまいました。

このため、今回はシンプルに休日リストを新規作成する、以下のようなコマンドとしました。

※ 既存の自動応答に利用する休日リストである場合、リスト作成後は必ず自動応答の休日リストを新規作成したものに差し替えてください。

#  Teamsへの接続
Connect-MicrosoftTeams

# 新規作成する休日リストの名前を指定
$targetScheduleName = Read-Host "新規作成する休日リスト名を入力してください"

# CSVの読み込み
$csvPath = "C:\temp\holidays.csv"
$newHolidayData = Import-Csv -Path $csvPath -Encoding UTF8

# 日付リストの格納用配列
$allRanges = @()

# CSVの各行を処理
foreach ($row in $newHolidayData) {
    # ヘッダー名が 'date' にある値を取得
    $targetDate = $row.date 

    if ($targetDate) {
        # 日付型に変換して24時間の範囲を作成
        $startDate = Get-Date $targetDate
        $endDate = $startDate.AddDays(1)
        
        # yyyy-MM-ddTHH:mm:ss形式文字列に変換
        $startStr = $startDate.ToString("yyyy-MM-ddTHH:mm:ss")
        $endStr = $endDate.ToString("yyyy-MM-ddTHH:mm:ss")

        # Rangeオブジェクトを作成して配列に追加
        $newRange = New-CsOnlineDateTimeRange -Start $startStr -End $endStr
        $allRanges += $newRange
    }
}

# 休日リストを新規作成
New-CsOnlineSchedule -Name $targetScheduleName -FixedSchedule -DateTimeRanges $allRanges

また、このコマンドのポイントとしては、指定する日付はその日付当日のみで良い、というところです。

休日をTeams管理センターのGUI上で登録する場合、例えば2026/1/1を設定する場合、2026/1/1 00:00~2026/1/2 00:00のように翌日の0時までを設定値として指定する必要があります。

GUI上から2026/1/1を休日として設定する場合

このコマンドで準備するCSV側では翌日の日付を意識せずに、管理者はカレンダー通りに日付を並べるだけで済みます。

作成コマンドを実行する

コマンドを実行すると、休日リストの名前を何にするか聞かれますので、任意の名前を指定します。

休日リストの名前は重複可能ですが、運用が煩雑になるためなるべく重複はさせないようにしてください。

休日リストの名前を指定し、Enterを押すと休日リストが新規作成されます。

コマンド実行後に作成された休日リストをGUIから確認すると、2026/1/1 00:00~2026/1/2 00:00のように休日とした翌日0時までの値が正しく設定されていることが確認できました。

なお、本記事で紹介した方法は「終日(24時間)の休み」を効率化することに特化しています。

そのため、「午後半休」や「13:00〜15:00だけ窓口を閉める」といった、時間単位の細かいスケジュール指定が必要な場合には適していません。

そうした特殊な時間指定が必要な日だけは、個別に管理画面から調整して対応してください。

終わりに

自動応答で利用する休日リストの設定は、管理画面から一つずつ日付を入力すると、どうしても入力ミスや祝日の漏れが発生しがちです。

またこの休日リストのメンテナンスを忘れてしまった場合、会社休業日に電話が鳴り続ける、適切な場所に電話が転送されないなどの事態になります。

この「忘れてはいけないけれど、手作業で行うにはやや面倒なタスク」を解決するために、ぜひ今回ご紹介した方法を取り入れてみてください。

執筆担当者プロフィール
Hiroko, Kimura

Hiroko, Kimura(日本ビジネスシステムズ株式会社)

Microsoft 365製品の提案~運用が担当領域、特にTeams/Teams Phone多めです。趣味は音楽とテレビと映画。趣味にしたいのは筋トレ(エンジニアには筋肉が必要)。

担当記事一覧