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