VWork バイブコーディングフレームワーク

カレンダー同期に、巨大なフレームワークはいらなかった — 1ファイルのCalDAVサーバー kcaldav を作って発売しました

2026年8月10日

「PCのThunderbirdに入れている予定を、出先のスマホからも見て、書き込みたい」。やりたいことはこれだけなのに、調べると出てくるのは Nextcloud や sabre/dav、Baïkal といった大掛かりなシステムばかりでした。

実際に Baïkal を立ててみて、痛感しました。カレンダーを1個同期したいだけなのに、1000ファイル超のフレームワークと、不格好なURLと、壊れやすい管理画面がついてくる。 これは道具立てが重すぎる。

そこで、逆に振り切ったものを作りました。1ファイルのCalDAVサーバー kcaldav です。

デモを触るkappstoreで見る(税込55,000円)GitHub(MIT)

そもそもCalDAVとは

Thunderbird・iPhoneの標準カレンダー・Android(DAVx5)は、いずれも CalDAV という標準プロトコルに対応しています。カレンダーの実体をCalDAVサーバーに置けば、どの端末から予定を足しても、他の端末に反映されます。サーバーが唯一の正、という形です。

.ics ファイルのURL購読は「読み取り専用」なので、出先から書き込みたいなら CalDAV が必要です。問題は、そのサーバーが軒並み重いことでした。

フレームワークを捨てた

CalDAVは仕様としては大きいですが、カレンダーを1個同期するのに実際に使う処理はごくわずかです。kcaldav が実装しているのはこれだけです。

これで Thunderbird も iPhone も Android も、読み書き同期が成立します。差分同期(sync-collection)のような重い仕組みは持たず、「カレンダーの状態ハッシュ(getctag)が変わったら一覧を取り直す」方式にしました。個人〜家族の規模なら、これで軽くて十分です。

結果、本体は約450行の1ファイル。データベースサーバーもいりません(予定はSQLite1ファイルに貯まる)。PHPが動くレンタルサーバーにFTPで置くだけで動きます。

「全部読めるサイズ」だからAIに直せる

Kurage App Store の全商品と同じ思想です。読めないコードは直せないので、全部読めるサイズに収めました。ユーザー・カレンダー・パスワードは設定ファイル1枚で宣言し、宣言していない相手は一切さわれません。

「仕事用のカレンダーを増やして」「家族の分もアカウントを作って」——同梱のClaude Code向け設計マニュアルを読ませたAIに、そのまま頼めます。連絡先(CardDAV)対応や、読み取り専用の公開カレンダーといった、コードを触る拡張のレシピも付けました。

安全に振り切る

OPTIONS/認証/PROPFIND/REPORT/PUT/GET/更新/削除/権限分離の18項目の自動チェックを同梱しています。レンタルサーバー(heteml)の実機で、Basic認証の通過とThunderbird/iPhoneの接続シーケンスまで確認済みです。

まずデモを

デモをブラウザで開くと、サーバーが稼働していること(説明ページ)が見えます。実際の同期は、その接続URLをThunderbirdやiPhoneに登録して試せます(デモのユーザー: demo / demo)。買い切り・ソース渡し・MITライセンス。

やりたいことが小さいなら、道具も小さくていい。そう考えて作りました。

kappstoreで見る(税込55,000円)Kurage App Store — AIエージェントが見つけて、導入し、AIエージェントで育てる業務システムのお店