9月も半ばだ。有給の残りが気になる季節、エージェントに聞いた。「今月、連休ある?」
即答が返ってきた。「9月21日が敬老の日で、23日が秋分の日です」。合っている。合っているのだが、その答えはどこから来たのかと聞き返したくなった。もしモデルの記憶から来ているなら、僕はそれを信用しないことにしている。祝日は記憶が曖昧なままでも通る話題に見えて、実は毎年のように法改正やら何やらで動く。ハッピーマンデーで月曜に逃げていった祝日を、僕はいくつも見てきた。
kurashi-skillの4つ目、japan-holidaysはそういう思想のスキルだ。祝日を「知識」として持つのではなく、毎回公式のデータを落としてくる。
起: 内閣府がCSVをくれている
祝日の正本は、内閣府が公開している「国民の祝日・休日」のCSVだ。1本取ってくれば全部入っている。
curl -sm 30 https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv | iconv -f SHIFT_JIS -t UTF-8
中身は 1955/1/1,元日 のような行がずらっと並ぶだけの、潔いデータだ。APIキーもログインもいらない。2026-09-12現在、1955年から2027年11月まで収録されていた。
このCSVのいいところは、振替休日と国民の休日があらかじめ行として入っていることだ。しかも名称はどちらもただの「休日」。つまり計算する側は種別を気にしなくていい。休みは休みだ。
承: 連休は計算で出す
このスキルがやるのは3つ。特定の日が祝日かどうか、期間内の祝日一覧、そして連休の計算だ。
連休の出し方は単純で、対象期間の全日付を走査して「休み」(土曜・日曜・CSVにある日)の連続区間を切り出し、3日以上を返す。ゴールデンウィークもシルバーウィークも、特別扱いしなくてもこの計算で自然に出てくる。
ためしに今月でやってみる。CSVを引くとこうなる。
2026/9/21,敬老の日
2026/9/22,休日
2026/9/23,秋分の日
21日(月)が敬老の日、23日(水)が秋分の日。挟まれた22日(火)は国民の休日、つまり「前後が祝日の平日は休み」のルールが発動した日だ。これに前の土日(19日・20日)がくっつく。つまり来週、9月19日から23日まで5連休だ。カレンダーをぱっと見ただけでは22日の「休日」は気づきにくい。これが言いたくてこの記事を書いたと言ってもいい。
転: 2019年のことを覚えているか
「祝日くらい覚えていればいい」が通用しない決定的な年がある。2019年だ。
改元があったあの年、4月27日から5月6日まで10連休が突発で生まれた。CSVの2019年を見ると、4月30日と5月2日に「休日」、5月1日に「休日(祝日扱い)」という、普段見ない行が並んでいる。即位に伴う特例で祝日が増え、国民の休日のルールが連鎖して、ゴールデンウィークが10日に伸びた。あの春、旅行業界が沸いたのを覚えている人も多いと思う。
記憶で答えるエージェントは、こういう年に負ける。法律が変われば祝日は変わる。だからjapan-holidaysは「祝日の知識」を一切持たず、毎回CSVを取り直す設計にした。古いローカルコピーを使い回さない、という注意書きもわざわざ入れてある。
ついでに言うと、このCSVはShift_JISで配布されている。iconvを忘れると祝日名がすべて文字化けする。「元日」が読めない祝日データほど悲しいものはないので、変換は必須だ。iconvがない環境のためにPythonでの代替手順もSKILL.mdに書いた。
結: 持ち帰れる教訓3つ
- 祝日・料金・法令のような「変わる基準値」は、推測せず公式の配布データを正とする。 記憶は鮮度が保証されない。
- 文字コードは配布側が決める。 取得したらまず確認する。化けたままユーザーに見せない。
- 確定と推計を分けて言う。 CSVに未収録の将来年は、振替休日・国民の休日のルールで推計できる。ただしその場合は「公式CSVに未収録で、ルールによる推計である」と明示する。japan-holidaysはそう書いてある。
最後に、いま考えている企画をひとつ。
この祝日データが手元にあると、面白いことができそうだ。例えば5連休やゴールデンウィークの祝日配置を入力にして、新幹線のチケットがどの順番で、どのくらいの速度で売り切れていくかをシミュレーションしてみるプロジェクト。予約開始日の朝に何が起きているのか、データ側から眺めてみたい。実現するかどうかはまだ分からないけれど、祝日は「休みの予定」だけじゃなくて、世の中の動きの「入力データ」でもあると気づけたのは今回の収穫だ。
kurashi-skillは公開開発中。リポジトリはここ → https://github.com/tahodev/kurashi-skill
5連休の予定はまだない。でも「ある」と分かったのと「ない」と思い込んでいたのでは、週末の気分が違う。祝日は覚えるものじゃなくて、落としてくるものだ。