calfwとorg-gcalの連携
- 2014.03.15
- Emacs

昨日、紹介したorg-gcal.elですが、calfwと連携して使うことでさらに便利に使うことができます。
Emacs用カレンダー calfw v1.2 リリース – 技術日記@kiwanami
というわけで、今回はcalfwとの連携について紹介します。
新しいcalfw-sourceについて
もともとcalfwにはOrg-mode用のcalfw sourceがすでに定義されています。
calfw の org-agenda 対応 calfw-org.el – 技術日記@kiwanami
kiwanamiさんが書かれているように定義ずみのcalfw sourceはorg-agendaをベースにしています。org-agendaはorg-modeのタイムスタンプデータを管理するにとても便利なツールですが、タスク管理を指向しているきらいがあってスケジュールを管理するには何かと不都合です。
個人的な理由とすれば、せっかくorg-elementの勉強をしたので、org-elementベースのcalfw sourceを書いてみたかったというのもあります。
というわけで、まずはそちらからすでに紹介していこうと思います。
新しいOrg-modeのcalfw-sourceはすでにcalfw本体にマージしてもらっているのですでにMELPAなどでインストールされている方はアップデートすればよいかと思います。
もしまだcalfwを使われてないのであれば、el-getなりpackage.elなりでインストールしてください。Debian/Ubuntuユーザの方であれば、aptでもインストールできるようです。
Debian – sid の emacs-calfw パッケージに関する詳細
新しいcalfw-souceは、対話的に呼びだせる関数を準備していないので、自分でsourceを組み合わせて関数を作る必要があります。
設定例としては次のようになるかと思います。
;;cfw:org-capture-templateはcalfw-orgを ;;requireする前に評価しておいてください。 (setq cfw:org-capture-template '("c" "calfw2org" entry (file "~/schedule.org") "* %?\n %(cfw:org-capture-day)")) (require 'calfw-org) (defun cfw:open-calendar () (interactive) (let ((cp (cfw:create-calendar-component-buffer :view 'month :contents-sources (list (cfw:org-create-file-source "仕事" "~/schedule.org" "#268bd2") (cfw:org-create-file-source "遊び" "~/yaschedule.org" "#859900"))))) (switch-to-buffer (cfw:cp-get-buffer cp))))
これらを評価して、 cfw:open-calendar
を実行すると次のようなカレンダーが出てくるはずです。 予定をクリックするか、予定の上にキャレットを置いている状態でエンターキーを押すと該当のOrgファイルに飛びます。この動作は既存のcalfw sourceと同様の動作になります。
サンプルのOrgファイルを二つgistに置きましたので、実際に試してみてください。
org-gcalとの連携
新しいcalfw-sourceでは、org-captureを介して簡便に予定を登録できるようにしました。 上の設定例では cfw:org-capture-template
に代入した値で保存先のファイル名や割りあてるキーを決めています。
要は、org-capture-templateに新しいテンプレートを追加しているわけです。
上の設定がなされていれば、新しい予定を登録した日にちにフォーカスがあたっている状態で、c を押すと次のようなバッファがポップアップしてくると思います。
後は、予定の内容を諸々書きこみ C-c C-c
とすればOrgファイルに書きこまれます。この時にorg-gcalがすでにインストールされていれば、Googleカレンダーにも自動的に予定が登録されます。
まとめ
昨日から今日にわたり、Emacs、Org-mode、Googleカレンダーを使ったスケジュール管理法を紹介させてもらいました。
今回の日記をきっかけに素敵なOrgersが増えてくれれば幸いです。
-
前の記事
Org-modeとGoogle calendar間で予定をやりとりするorg-gcal.elというのを作りました 2014.03.14
-
次の記事
Emacs上のPDFでisearch,occur,imenuとかなんでもしてしまうpdf-toolsの紹介 2014.03.17