2024年9月の頭くらいにGoogleカレンダーの「日本の祝日」の仕様が変更されました。
それ以前は純粋な祝日のみがGoogleカレンダー上に表示されていましたが、以下の様な変更があったようです。

  • 1種類だった祝日のカレンダーが「祝日のみ」と「祝日およびその他の休日」の2種類のカレンダーとなり、「祝日およびその他の休日」がデフォルトになっている
  • 「祝日およびその他の休日」の場合、七夕、七五三、クリスマス、大晦日などが祝日と同じ扱いとなる
  • どちらのカレンダーも銀行休業日(1/1~1/3)・大晦日が祝日と同じ扱いになる

 


仕様変更後はクリスマスが祝日になっています。

 

年末年始に「銀行休業日」なるものが追加されています。

本当は平日なのに、休みが増えてる!わーい!とぬか喜びしないために、本来の祝日ではないものは非表示にした方が良いかもしれません。

 

祝日ではないものを非表示にする方法

WEBのGoogleカレンダーの場合

設定→カレンダーを追加→関心のあるカレンダーを探す
日本の祝日 > その他の行事 のチェックを外す

日本の祝日 > 祝日 の銀行休業日(1/1~1/3)・大晦日のチェックを外す

 

Google Calendar APIの場合

「祝日およびその他の休日」のカレンダーID
ja.japanese#holiday@group.v.calendar.google.com
→もともとこちらのIDのみだったのを以下の「祝日のみ」のカレンダーIDに変更する

「祝日のみ」のカレンダーID
ja.japanese.official#holiday@group.v.calendar.google.com

 

さらに、銀行休業日(1/1~1/3)・大晦日が祝日として扱われると問題がある場合は、祝日のみのリスト取得後に除外する必要があります。

 

それぞれのカレンダーIDで取得できるリストを比較するとこのようになります。

日付 祝日のみカレンダー 祝日およびその他の休日カレンダー 祝日
2025/1/1 銀行休業日 銀行休業日
2025/1/1 元日 元日
2025/1/2 銀行休業日 銀行休業日
2025/1/3 銀行休業日 銀行休業日
2025/1/8 成人の日 成人の日
2025/2/3 節分
2025/2/11 建国記念の日 建国記念の日
2025/2/23 天皇誕生日 天皇誕生日
2025/2/24 天皇誕生日振替 天皇誕生日振替
2025/3/3 雛祭り
2025/3/20 春分の日 春分の日
2025/4/29 昭和の日 昭和の日
2025/5/3 憲法記念日 憲法記念日
2025/5/4 みどりの日 みどりの日
2025/5/5 こどもの日 こどもの日
2025/5/6 こどもの日 振替休日 こどもの日 振替休日
2025/5/12 母の日
2025/7/7 七夕
2025/7/15 海の日 海の日
2025/8/11 山の日 山の日
2025/8/12 休日 山の日 休日 山の日
2025/9/16 敬老の日 敬老の日
2025/9/22 秋分の日 秋分の日
2025/9/23 秋分の日 振替休日 秋分の日 振替休日
2025/10/14 スポーツの日 スポーツの日
2025/11/3 文化の日 文化の日
2025/11/4 文化の日 振替休日 文化の日 振替休日
2025/11/15 七五三
2025/11/23 勤労感謝の日 勤労感謝の日
2025/12/25 クリスマス
2025/12/31 大晦日 大晦日

 

PHPで祝日データを取得する場合のサンプル

$year = '2025';
$api_key = 'GOOGLE_API_KEY';
$holidays_id = 'ja.japanese.official#holiday@group.v.calendar.google.com';
$holidays_url = sprintf(
    'https://www.googleapis.com/calendar/v3/calendars/%s/events?' .
    'key=%s&timeMin=%s&timeMax=%s&orderBy=startTime&singleEvents=true',
    urlencode($holidays_id),
    $api_key,
    $year . '-01-01T00:00:00Z',
    $year . '-12-31T23:59:59Z'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $holidays_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($results = curl_exec($ch)) {
    $results = json_decode($results);
    foreach ($results->items as $item) {
        //銀行休業日・大晦日が不要な場合はここで除外
        $holiday_list[] = $item->start->date . ':' . $item->summary;
    }
    var_dump($holiday_list);
}

参考
https://developers.google.com/calendar?hl=ja
https://www.itmedia.co.jp/news/articles/2411/06/news112.html