WindowsでCalDAVを使う

前回はBaïkalというCalDAV/CardDAVサーバを用意したので今回はWindowsでCalDAVを使う。
Windowsといえば、Windows10から標準でCalDAVに対応するとかいう噂があった気がするけど実際は全然対応していないのが残念なところ。Windows10のカレンダーが良さそうな感じなのでCalDAVに対応してたら良かったのに。
結局のところWindowsでCalDAV/CardDAVを使いたければ対応アプリを使うしかないみたい。
WindowsはCalDAV/CardDAVに対応していました。スミマセン。
個人的にはメールアプリ(カレンダーや連絡帳の機能含む)のeM Clientが軽快で良いと思うけど、日本語表示がイマイチなのと全然メジャーでないので万人には勧めにくい。(ただし、CalDAV/CardDAVサーバとのデータのインポート/エクスポートにはeM Clientは非常に良いしWindowsでは他の選択枝があまりない)
メジャーなところではメールアプリのThunderbirdに統合されているLightningというカレンダー。処理が遅いのが難点だけどWindows以外でもThunderbird/Lightningは使われることが多いので今回はこれで。

LightningでCalDAV 1
まずはThunderbirdでLightningを表示する。
Thunderbirdのメールの画面で[Ctrl]+[Shift]+[C]を押すか、メニューから「予定とToDo」、「カレンダー」を選択する。
左ペインのミニカレンダーの下のどこでも良いので右クリックする。上の画像では緑の枠で囲われたあたり。
ポップアップしたサブメニューから「新しいカレンダー」を選択する。

LightningでCalDAV 2
新しいカレンダー作成画面の最初。
「ネットワークのサーバに保存する」を選択し[次へ]。

LightningでCalDAV 3
カレンダーのフォーマットは「CalDAV」を選択する。 場所はBaikalなら https://example.com/cal.php/calendars/foobar/default/ というURLを指定。 ホスト名(example.com)の部分、ユーザー名(foobar)の部分は適切に合わせる。

LightningでCalDAV 4
カレンダーの名前は任意。Lightningの左ペインのカレンダーの欄に表示される名前になる。Lightningでは複数のカレンダーを扱えるのでCalDAVのカレンダーであることが分かるようにホスト名にするとか名前の一部にCalDAVを付けるとか。
「メール」はThunderbirdに登録されたメールアカウントのどれかを指定しても良いし、上の画像のように「なし」にしてもよい。好みで。

LightningでCalDAV 5
「カレンダーが作成されました。」が表示されたら[完了]を押す。

LightningでCalDAV 6
CalDAVサーバに接続するどこかのタイミングでユーザー名とパスワードを入力するポップアップが出るのでBaikalに登録したユーザーアカウントとパスワードを入力。
「パスワードマネージャにこのパスワードを保存する。」にチェックすると次から入力の手間が省ける。

LightningでCalDAV 7
取り敢えずカレンダーを同期させたいなら左ペインのカレンダーでCalDAVのもの(上の画像だとfoobar_CalDAV)を選択した状態で左上の「同期」を押すまたは左ペインのカレンダーでCalDAVのもの(上の画像だとfoobar_CalDAV)を右クリックして「カレンダーを同期」を選択。しばらく待つと同期される。CalDAVサーバが作りたてだとデータが登録されていないので同期しても何も変わらない。Googleカレンダーなどを使っていたならイベントデータをエクスポートしてeM ClientなどでCalDAVサーバにインポートすることでデータを移行できる。
上の画像ではデータ登録済みのBaikalに接続しているのでカレンダーにイベントが表示されている。

LightningでCalDAV 8
一つ前の画像のLightning左ペインのカレンダーでCalDAVのもの(foobar_CalDAV)を選択して右クリックし「プロパティ」を選択すると上の画像の状態。
カレンダーの更新頻度や通知などの設定が可能。

あとはLightning左ペインのカレンダーでCalDAVのもの(前の画像だとfoobar_CalDAV)にチェックが入った状態でカレンダーにイベントを登録したり登録済みのイベントを修正したり削除することでCalDAVのデータが更新される。ただし、Lightningは「同期」ボタンを押してやって少し待たないと登録/修正/削除が表示に反映されない。動作がトロくてイラつくかも。

AndroidでCalDAVを使うならGoogleとのお付き合いをどうぞ。

関連記事:


Baïkalでカレンダーと連絡先を管理する CalDAV/CardDAV

3年ほど前にGoogleとのお付き合いという記事で触れたCalDAV(カレンダーサーバ), CardDAV(連絡帳サーバ)について。
あいかわらずCalDAVとCardDAVは日本では全然不人気で普及してる感がない。そもそも知らないという人がほとんど。
AppleのiCal/カレンダーだと標準機能としてCalDAVが使えるけどWindowsやAndroidは標準では使えない。これが大きな要因かな。Windows10はCalDAV/CardDAVに対応していました。スミマセン。
でも、「がとらぼ」ではお構いなしに推す。
と、いうか、皆は個人情報をどう使われるかわからないようなところに予定や連絡先の情報を預けるの平気なんだろうか。

まずはCalDAV, CardDAVサーバが無いと話にならないので簡単に導入できるBaïkalを用意する。
BaïkalはPHPで動き、データの保存にはSQLiteかMySQLを使う。利用人数が1人~数人程度であればSQLiteを選択すると圧倒的に準備が簡単になる。大きなグループ・組織で使用するならMySQLを選択する方が無難かな。
ウェブサーバ側についてはApacheやNginxのWebDAVモジュールを追加する必要はない。

Baïkalの公式サイトは以前はhttp://baikal-server.com/というURLだったけど現在はhttp://sabre.io/baikal/ということになったみたい。一応いまのところは旧URLも使える。
ダウンロードはhttps://github.com/fruux/Baikal/releasesから。
2016年に入ってから長らく停滞していた開発が急に活発になったようで新しいバージョンがバンバン出てるけど、取り敢えずは最新版で問題ないかと思われる。

ダウンロードしたらウェブサーバのドキュメントルートに解凍する。
ウェブサーバが読み書き可能なパーミッションを設定する。
ウェブサーバの設定は公式サイトにApache用とNginx用があるのでほぼまるっとコピーで使える。
と、いうかセキュリティ上、CoreとSpecific以下の階層にはアクセスさせてはいけないので公式サイトの設定例を真似ること。PHP周りの設定だけして動けばいいやはダメ。Specific/db下にあるSQLiteのデータベースファイルが無防備なまま抜き取られたらきっと伝説になるね。

データ保存にSQLiteを使うならこれで準備完了。

Baïkal 1
ブラウザでBaikalをインストールしたURLを指定して表示。https://dav.example.com/やhttps://example.com/など。
上のような画面が表示される筈。
Server Time zoneはこの記事を見てる人なら多くはAsia/Tokyo。
Enable CalDAVにチェックするとカレンダーサーバが有効になる。
Enable CardDAVにチェックすると連絡先(連絡帳)サーバが有効になる。
WebDAV authentication typeは認証方式なので特に変更する理由がなければDigest(初期値)を選択。
その下2つはBaikalの管理者用パスワードなので強度の高いものを入力。
[Save changes]を押して次へ。

Baïkal 2
データ保存にSQLiteを使う場合は特に何か変更の必要がないかぎりそのまま[Save changes]を押して次へ。
MySQLを使いたいならUse MySQLにチェックするがMySQLについては割愛。

Baïkal 3
はい、終わり。
[Start using Baïkal]を押すと管理者用画面の認証画面に進む。
以後、管理者画面にログインしたいときはhttps://example.com/admin/などadminサブディレクトリのURL。

Baïkal 4
管理者画面の認証画面。管理者のアカウントはadmin、パスワードはインストール時に指定したもの。
[Authentication]でログイン。

Baïkal 5
管理者画面のダッシュボード。ユーザー数と登録されているイベント数、連絡先数などあまり役に立たない情報が表示されるだけ。Baikalでは基本的にインストール後に設定変更は行わない筈なので画面上部の黒帯部分のSettingsやSystem settingsは触らない。用事があるのは基本的にはユーザーの追加変更削除用のUsers and resourcesだけ。

Baïkal 6
Users and resourcesを選択したところ。
まだユーザーが登録されていないので[Add user]ボタンが押せるだけの状態。
[Add user]ボタンを押す。

Baïkal 7
ユーザー情報を入力して[Save changes]で保存。

Baïkal 8
登録されたユーザーがリスト表示されるようになる。(上の画面では1人だけだけど)
[Calendars]や[Address Books]を押すとカレンダや連絡帳の表示名が変更できるがその程度。イベントや連絡先を追加/変更/削除する機能はBaikalには付いていない。その点重要なので勘違いなく。

以上のようにとても簡単。使わない手はないと思うんだけどなぁ。

関連記事:

Up