グーグル(Google)情報系ソフトやWEBサービスなど

10年以上愛用したCGIカレンダーを廃止してGoogleカレンダーに移行しました、意外な落とし穴もありましたが当面はこれでいきます

この記事は約4分で読めます。

WEBサイトの休日カレンダー2026年に入りまだ二日目ですが、今年は穏やかでよい新年のスタートを切れました。なにより一昨年起きた能登半島地震が1月1日発災だったので、穏やかに過ごし正月というのはありがたいものです。
さて、新しい年になったタイミングで、WEBサイトの「環境見直し」を行っています。今回は、長年WEBサイトに設置していた「営業日カレンダー」の刷新についてです。

WEBサイトに表示する営業日案内(休日案内)

10年以上動き続けたCGI、でもそろそろ…

これまで当社のサイトでは、sche38というフリーのCGIプログラムを利用してカレンダーを表示していました。 シンプルで動作も軽く、10年以上もの間、一度もトラブルを起こすことなく稼働してくれていました。愛着すらあります。

カレンダーCGI

※ちなみに2026年は5連休が5月と9月の2回あります

カレンダー

しかし、冷静に考えると「10年前のプログラム」を使い続けることにはリスクがあります。あらためて作者のサイトを見ると最終更新が2020年なので、もう5年以上更新がありません。それだけ安定しているという考え方もありますが、一方で不安もあります。

  • セキュリティの懸念: 古いコードは現代の攻撃手法に脆弱かもしれない。

  • サーバー環境の変化: レンタルサーバーの仕様変更(Perlのバージョンアップなど)で、ある日突然動かなくなる可能性がある。

  • スマホ対応: 昔の表形式のデザインは、今のスマホでは小さくて見づらい。

「壊れていないから」といって放置せず、先回りしてリスクを回避するのも大事な管理業務です。そこで思い切ってCGIを廃止することにしました。

代替案は「Googleカレンダー」一択

代わりのツールとして選んだのは、すでに業務で利用しているGoogle Workspace(Googleカレンダー)です。

  • コストゼロ: 追加料金がかからない。

  • 安全性: セキュリティはGoogleにお任せできる。

  • 更新が楽: スマホアプリからでも休日の登録・変更ができる。

良いことづくめに思えましたが、実際にWEBサイトに埋め込もうとすると、いくつか「思っていたのと違う」壁にぶつかりました。

意外に面倒だった設定の落とし穴

1. 「背景色」ではなく「帯」で表示される 以前のCGIは「休みの日のマスを黄色く塗る」という表示でしたが、Googleカレンダーでは「その日に『定休日』という黄色い帯(予定)を入れる」という見せ方になります。 最初は違和感がありましたが、慣れれば「帯がある=休み」と明確で、スマホでも見やすいので良しとしました。

2. 祝日に「クリスマス」や「七夕」が表示されてしまう これが一番の悩みどころでした。 「日本の祝日」を表示させる設定にしたところ、営業日であるはずのクリスマスイブや七夕までカレンダーに表示されてしまい、お客様に「休みかな?」と誤解を与えかねない状態に。

設定画面で「祝日のみ」に変更しても、なぜかWEBサイト上の埋め込みカレンダーには反映されません。 調べた結果、埋め込み用のコードには「祝日のみを表示する特殊なカレンダーID」を指定しないといけないことが判明。

[GAS] カレンダーの「祝日のみ」と「祝日およびその他の休日」 - Qiita
これは何? GoogleAppsScript(GAS)を使って祝日判定をするときに、Googleに用意されている「日本の祝日」カレンダーを利用することが多いです。という記事を書いていたのですが、2025年12月20日にコメントを頂き、仕様が変わっていることを知りました。変...

日本の休日をきちんと表示するためには

ja.japanese.official#holiday@group.v.calendar.google.com

というIDのカレンダーをわざわざ追加して読み込ませることが必要なようです。
これはこれで面倒ですね。それなら最初から休日カレンダーに祝日や年末年始休業日を記入した方が早いと思います。

というわけで、この処理はどうするかを後回しにしました。

iframeで設置完了、運用スタート

最終的に、定休日(黄色い帯)と日本の祝日(ラベンダー色の帯)がきれいに並ぶカレンダーが出来上がりました。 WEBサイトへの設置は、Googleが発行するiframeタグを貼り付けるだけ。

株式会社ドモドモコーポレーションの営業案内カレンダーは以下のとおり(定休日とバナナ色で表示されている日と、国民の祝日としてラベンダー色で表示されている日は休業日です)


※節分やクリスマスが祝日のように表示されることがありますが「国民の休日」でない日は営業日です

見た目は少し変わりましたが、お客様にとっては「Googleマップ」などでお馴染みのデザインなので、むしろ違和感なく受け入れてもらえるのではないかと思います。

古い仕組み(CGI)を手放すということ

今回の移行で感じたのは、「古い仕組み(CGI)をできるだけ使わないようにすることが、一番のリスク回避になる」ということです。

独自のCGIは自由度が高い反面、メンテナンスを自分(または管理者)がし続けなければなりません。 一方、Googleカレンダーのようなクラウドサービス(SaaS)に乗っかれば、機能改善やセキュリティ対策はプラットフォーム側がやってくれます。

「まだ動くから」といって放置せず、定期的にWEBサイトの裏側を見直して、時代に合わせたツールに置き換えていく。 地味ですが、長くサイトを運営していく上では欠かせない作業ですね。

本年もどうぞよろしくお願いいたします。