emacs の org-mode と google calendar を連携させる org-gcal
1 目的
google calendar の内容を org ファイルと同期連携させる
2 設定
- gogole calendar API の有効化
- Google Developers Console へアクセス
- [プロジェクトを作成] を選択
- [プロジェクト名] に [org-gcal] を入力
- [作成] を選択
- プロジェクトの選択より、[org-gcal] を選択
- バーガーメニューより、[API とサービス] > [ライブラリ] を選択
- [google calendar] で検索
- [Google Calendar API] を選択 1
- [有効にする] を選択
- [認証情報を作成] を選択
- [API を呼び出す場所] で [その他の UI (Windows、CL ツールなど)] を選択
- [アクセスするデータの種類] で [ユーザーデータ] を選択
- [必要な認証情報] を選択
- [OAuth 2.0 クライアント ID を作成する] にて、[org-gcal] を入力
- [OAuth クライアント ID を作成] ボタンを選択
- [OAuth 2.0 同意画面を設定する] で以下を設定
- メールアドレス : (メールアドレスを選択)
- ユーザーに表示するサービス名 : (適当に org-gcal など)
- [次へ] を選択
- [認証情報をダウンロードする] で [ダウンロード] を選択
ダウンロードされた [client_id.json] を開き、 client_id、client_secret の値を確認
{ "installed": { "client_id": "ThisIsClientID", "project_id": "ThisIsProjectID", "auth_uri": "ThisIsAuthURL", "token_uri": "ThisIsTokenURL", "auth_provider_x509_cert_url": "ThisIsCertURL", "client_secret": "ThisIsClientSecret", "redirect_uris": [ "ThisIsURN", "ThisIsHTTP" ] } }
- [カレンダー ID] の取得
- Google Calendar にアクセス
- [歯車マーク] > [設定 を選択]
- [マイカレンダーの設定] の中から同期したいカレンダーを選択
- [カレンダー ID] の値をメモ (e.g. sample@foo.google.com)
- org-gcal.el のインストール (M-x package-install org-gcal)
init.el を設定
(require 'org-gcal) (setq org-gcal-client-id "ThisIsClientID" org-gcal-client-secret "ThisIsClientSecret" ;; ID が sample@foo.google.com のカレンダーを ~/calendar.org を同期 org-gcal-file-alist '( ("sample@foo.google.com" . "~/calendar.org") ;; ("sample2@foo.google.com" . "~/calendar2.org") )) ;; token の保存場所を変更 (setq org-gcal-dir "~/Dropbox/.emacs.d/local-lisp/org-gcal")
- M-x org-gcal-fetch を実行
- ブラウザが開いて、token が表示されるので、コピーしてミニバッファに入力
3 使い方
- M-x org-gcal-sync で同期
- M-x org-gcal-post-at-point でカーソル位置の内容をカレンダーに登録
- M-x org-gcal-delete-at-point で削除
4 やりたいけど、分からないこと
- Time Zone の設定
- Proxy 下での利用方法
- M-x org-gcal-fetch/sync の定期実行方法
- M-x org-set-tags-command との連携方法
- M-x org-schedule との連携方法
- 階層のつけ方
脚注:
1
同じアイコンの [calDAV] に注意