org-gcal.elにグーグルカレンダーとOrgファイルを同期するコマンドを追加しました


一年ほど前にリリースしましたorg-gcalにグーグルカレンダーとOrg-modeのスケジュール情報を同期させるコマンドを追加しました。MELPAやel-getのレシピもありますので、お好きな方法でアップデートしてください。

myuhe/org-gcal.el

これまで、Orgファイル上で修正、または新規に作成したイベントは org-gcal-post-at-point を実行しないとGoogle側にPOSTできませんでしたが、新しく設けた org-gcal-sync を使えば、わざわざ org-gcal-post-at-point を実行せずとも、変化点を自動的に認識してGoogle側にPOSTしてくれるようになります。

同期プロセス

同期の仕組みは非常にシンプルで、およそ次のような流れで同期します。

  1. Googleのサーバにアクセスする度にイベント情報をキャッシュして永続化
  2. キャッシュしたイベント情報とOrgファイルのイベント情報を比較。
  3. キャシュしたイベント情報とOrgファイルのイベント情報が異なる場合、またはキャシュしたイベント情報の中にOrgファイルのイベント情報がそもそも見つからない場合、そのイベント情報をGoogleのサーバにPOST
  4. 再度、Googleのサーバ情報をfetch

既知の問題

このように、今のところ非常にシンプルな同期プロセスなので、いくつか制限があります。

まず、同一のイベントをGoogleカレンダーとOrgファイルの両方で編集していた場合、Orgファイルでの変更が優先されます。これについては、どちらの変更を採用するのかをたずねる対話的なインターフェイスを追加する予定です。

それと、orgファイル上で削除したイベントは、同期プロセスの中では削除されたことを認識できません。この問題については、スマートに解決する方法が見つかりそうにないので、削除用のコマンドを新たに追加する予定です。

まだ、いろいろと片づけておくべきこともありますが、これまでと比べると格段に便利になったと思います。是非お試しください。