EmacsはGoogleカレンダーと連絡先と同期しますか?


10

Emacsを使用してGoogleカレンダーやGoogleコンタクトと同期する方法はありますか。オフラインでアクセスできるようにローカルコピーを保持するのが理想的ですか?


1
連絡先を保存するために現在emacsで何を使用していますか?bbdb?また、emacsのカレンダープログラムには何を使用していますか?私の答えは、orgモードと日記モードでは異なります。
Steven D

実際、私は始めたばかりで、連絡先にbbdbを使用する予定です。私はカレンダーに日記モードを使用することを計画していましたが、今では私もorg-modeについて知って読んでいるので、これも良いオプションかもしれません。ありがとう!!
hpy

これは素晴らしいオプションです。可能な場合でも、知りたいと思います。Outlookクライアントをemacsに組み込むのは間違いなく素晴らしいことです。

1
スーパーユーザーにも尋ねました。これを行わないでください!(例外:サイトで質問に対する適切な回答がなかった場合、元の質問にリンクします。)
Gilles 'SO- stop bevil'

すみません、すみませんでした!それでも良い答えを探しています。
hpy

回答:


3

残念ながら、私は完全な答えを出すことはできません。私が持っているのは、さまよっているいくつかの可能な道についてのアドバイスです。

最も簡単な方法は、この質問のSUバージョンでGillesが言及したemacs-g-clientが機能するかどうかです。それがうまくいかない場合は、以下を調べます。

  • 少なくとも、icalを使用してGoogleカレンダーにアクセスすることにより、いくつかのカレンダー機能を取得できるはずです。関数icalendar-import-fileは、icalファイルをemacs日記ファイルにインポートできます(icalendar-import-fileドキュメント)。したがって、.emacsファイルで、emacs lispを少し使用して、Googleカレンダーのicalファイルを取得し、それを日記にインポートすることができます。最終的にorg-modeを使用する場合、org-modeをdiary-modeと統合する方法はいくつかあります。

  • 最終的な目標は、gdata APIを利用することだと思います。このAPI以外でGoogleの連絡先にアクセスする簡単な方法はないと思います。Google CLと呼ばれるこのAPIを使用して幅広い機能をサポートするコマンドラインユーティリティがあり、理論的には一部のemacs lisp関数内で使用して、連絡先、カレンダー、および他の多くのGoogleがホストするサービスへのフルアクセスを提供できます。ただし、これは、ほんの数行が.emacsにスローされるよりもはるかに難しいでしょう。


3

Googleカレンダーの場合、一方向の同期が正常に設定されています。Emacsは起動時に私のカレンダーを取得し、それをemacs日記に転送します。これは、アジェンダのorg-modeによって表示されますが、必要に応じて設定できます。

Googleカレンダーに送り返すには、あまり必要ないので、まだ何も設定していません。ただし、日記にエントリを追加し、googleclを呼び出してGoogleカレンダーにエントリを追加する関数を作成するのはかなり簡単だと思います。

カレンダーを取得するために、私は.emacsに次のコードを入れています(これは私のコードではなく、組織モードのメーリングリストからのものですが、どこで見つけたのか正確に思い出せません)。

(setq mark-diary-entries-in-calendar t)
(defun getcal (url)
  "Download ics file and add to diary"
  (let ((tmpfile (url-file-local-copy url)))
    (icalendar-import-file tmpfile "~/diary" t)
    (kill-buffer (car (last (split-string tmpfile "/"))))
    )
  )
(setq google-calendars '(
                         "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"
                         "http://www.google.com/calendar/ical/SDFSADFSADFASD/basic.ics"
                         ))
(defun getcals ()
  (interactive)
  (find-file "~/diary")
  (flush-lines "^[& ]")
  (dolist (url google-calendars) (getcal url))
  (kill-buffer "diary"))

"http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"取得するカレンダーのURLに置き換えます(Googleカレンダーの各カレンダーの設定ページの下部にあります)。いくつでも追加できます。

これで(getcals)、カレンダーを取得するときに呼び出すことができます。これを.emacsに入れて起動時に実行できますが、起動が停止する可能性があります。

org-modeに予定表の日記エントリを表示させるに(setq org-agenda-include-diary t)は、.emacsを追加するだけです。詳細については、org-modeのマニュアルを参照してください。


3

Googleの連絡先との統合のために、Julien Danjouのスクリプトがここにあります(githubリポジトリはこちらです)。

Emacs拡張機能のgoogle-contactsを使用すると、Google連絡先をEmacs内に直接表示できます。

GNU ELPAの一部であるoauth2を使用しているため、少なくともEmacs 24でのみ動作する可能性があることに注意してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.