指定した日付が祝日か確認する

次の米国の連邦祝日は2026年11月11日水曜日の退役軍人の日です。特定の日付を確認するには、その国の日付指定エンドポイントを呼び出し、holidaysリストが空であれば、その国ではその日は祝日ではありません。

APIで計算する

確認する国と日付が決まっている場合は、日付指定エンドポイントを使用します。レスポンスにはcountry、coverage、holidaysが含まれます。holidaysの各項目を読み、対象範囲や地域区分を含めて該当する祝日を確認し、返された各項目をそれぞれ別の祝日の日付として数えないでください。

  1. APIキーを取得 無料のキーを作成し、環境変数NARWHAL_API_KEYに保存します。キーはAuthorization: Bearer YOUR_KEYとして送信し、curlコマンドは認証ヘッダーにその環境変数を使用します。
  2. 国と日付を指定してリクエスト GET /v1/calendars/holidays/{country}/on/{date}に対象の国と日付を指定します。このリクエストは、2026年12月28日の英国の祝日を取得します。
    curl、指定日の祝日
    curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
      "https://api.narwhalapi.com/v1/calendars/holidays/GBR/on/2026-12-28"
  3. 祝日一覧を読む holidaysリストが空の場合、指定した日付はその国では祝日ではありません。リストに項目がある場合は、その日付の祝日が返されているため、スコープと行政区分を確認して、必要な祝日カレンダーに該当するか判断してください。
  4. 指定日以降の祝日を検索 開始日当日を含む、それ以降の祝日が必要な場合は、次の祝日エンドポイントを使用します。米国では、from_date=2026-10-24を指定すると、2026年11月11日の退役軍人の日がholidayに返されます。
    curl、指定日以降の祝日
    curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" "https://api.narwhalapi.com/v1/calendars/holidays/USA/next?from_date=2026-10-24"

リクエストでエラーが返された場合は、application/problem+jsonレスポンスを確認してください。status、code、detailがエラーの内容を示し、request_idがリクエストを識別します。指定日が祝日かどうかは成功レスポンスの祝日一覧で判断してください。エラーレスポンスには、その祝日の検索結果は含まれません。

スプレッドシートまたはコードを使わずに計算する

APIリクエストを使わずに日付を調べる場合は、Narwhalの祝日カレンダー (英語)で国を検索してください。必要なカレンダーの国から確認します。クリスマスの週の例では米国と英国の結果を別々に使用し、国内の地域別の項目も関係する場合があります。

ExcelやSheetsでは、祝日の日付を並べた列にHolidaysという名前を付け、確認する日付をA2に入力します。数式は、その日付が祝日の列に含まれるかを判定します。数式は渡された日付への該当だけを調べるため、確認する国の祝日一覧を使用してください。

祝日一覧に含まれるかを判定
=COUNTIF(Holidays, A2)>0

米国の祝日一覧を使用すると、数式は2026年12月25日に対してTRUE、2026年12月24日に対してFALSEを返します。この結果はHolidays内の祝日の日付に基づき、数式自体がAPIから国のカレンダーを取得することはありません。

一覧への該当を判定するには、選択した一覧に日付が含まれるかだけを確認します。地域別の項目が同じ日付を持つ場合も、数式で判定できます。項目がどの地域に適用されるかは、その日付を一覧に追加する前にAPIレスポンスの行政区分で確認してください。

状況に応じた方法の選び方

状況適した方法理由
1つの日付日付エンドポイント指定した国と日付の祝日項目を返す
多数の日付1年分を一度取得して一覧への該当を判定各判定にその年の祝日の日付を使用
開始日以降の祝日次の祝日エンドポイント指定日当日またはそれ以降の祝日を返す

年間一覧を使う方法は、コードに祝日判定を追加するの手順に従ってください。日付エンドポイントは指定した日付について回答し、次の祝日エンドポイントは開始日を受け取って祝日の日付を返します。特定の日付が祝日かを調べる場合は、その日付をリクエストに指定します。その日以降の祝日を調べる場合は、from_dateとして指定します。

レスポンスに同じ祝日が複数回表示されるのはなぜですか?

祝日が地域によって異なる場合、APIは行政区分のグループごとに項目を返します。英国で2026年12月28日に振り替えられるボクシングデーの場合、イングランドとウェールズの共同項目、北アイルランド、スコットランドの3項目を返します。

行政区分コードは、共同項目がGB-ENGとGB-WLS、北アイルランドがGB-NIR、スコットランドがGB-SCTです。各項目のスコープはbankで、observed: trueが設定されています。同じ祝日の日付に対する地域別の項目なので、名前と併せて行政区分のグループを確認してください。

observed: trueは何を意味しますか?

祝日が週末に重なる場合の振替日であることを意味します。2026年12月26日のボクシングデーは土曜日なので、銀行休業日は2026年12月28日月曜日になります。

この例で銀行休業日カレンダーへの該当を判定する場合は、振替後の銀行休業日を使用します。observedフィールドは返された日付が本来の祝日の日付と異なる理由を示し、どちらの日付も同じボクシングデーの例に属します。

一斉休暇を除外するにはどうすればよいですか?

インドネシアの一斉休暇を結果から除外するには、scope=national_publicを指定します。インドネシアでは一斉休暇に専用のcollective_leaveスコープが設定されているため、このフィルターがないリクエストには一斉休暇も含まれる場合があります。

任意のscopeフィルターで、結果を1つのスコープに限定できます。指定できる値にはnational_public、bank、federal_government、collective_leaveなどがあります。返された祝日項目を読み取る前に、必要なカレンダーに合うスコープを選択してください。

実例:米国と英国の2026年のクリスマスの週

まず米国の2026年12月24日を確認します。一覧が空なので、祝日ではないと判定されます。次に同じ国の2026年12月25日を確認すると、スコープがfederal_governmentのクリスマスが含まれるため、そのカレンダーでは祝日と判定されます。

英国では2026年12月25日を確認し、スコープがbankのクリスマスの項目を読み取ります。次に2026年12月28日を確認し、ボクシングデーの振替日の項目を調べます。各結果は国、日付、スコープを一緒に記録してください。

国日付結果スコープ
米国(USA)2026年12月24日祝日一覧は空
米国(USA)2026年12月25日クリスマスfederal_government
英国(GBR)2026年12月25日クリスマスbank
英国(GBR)2026年12月28日ボクシングデーの振替日bank

公開。