带Mac日历的Emacs同步和联系人?


10

有没有一种方法可以使用Emacs与Google Calendar和Google Contacts同步,理想情况下保留本地副本,以便我可以脱机访问它们?


1
您目前在emacs中使用什么来存储联系人?bbdb?另外,您如何在emacs中使用日历程序?对于组织模式与日记模式,我的回答将有所不同。
史蒂文D

实际上,我才刚刚开始,并计划使用bbdb进行联系。我打算将日记模式用于日历,但是现在我知道并了解了组织模式,这也可能是一个不错的选择。谢谢!!
hpy

我想知道,这是一个很好的选择,即使有可能。在emacs中构建一个Outlook客户端肯定很酷。

1
还向超级用户询问。不要这样!(例外:当问题在站点上没有任何好的答案时,然后链接到原始问题。)
Gilles'SO-不要邪恶了'

我不知道,对不起!不过,仍在寻找一个好的答案。
hpy 2010年

Answers:


3

不幸的是,我无法给出完整的答案。我所能提供的只是一些漫步的可能途径的建议。

最简单的方法是,吉尔斯在此问题的SU版本中提到的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"您要提取的日历的网址替换(您可以在Google日历的每个日历的设置页面的底部找到它)。您可以根据需要添加任意数量。

现在,您只需(getcals)在要获取日历时致电即可。您可以在启动时将其放入.emacs中,但可能会使启动停顿。

要使组织模式在议程中显示日记条目,只需添加(setq org-agenda-include-diary t).emacs。有关详细信息,请参见组织模式手册


3

为了与Google联系人集成,有Julien Danjou的脚本,您可以在此处查看操作(github仓库在此处):

Emacs扩展程序的google-contacts允许直接在Emacs中显示您的Google联系人。

请注意,由于它使用的是GNU ELPA的oauth2,因此它可能至少只能与Emacs 24一起使用。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.