Есть ли способ использовать Emacs для синхронизации с Календарем Google и контактами Google, в идеале сохраняя локальную копию, чтобы я мог получить к ним доступ в автономном режиме?
Есть ли способ использовать Emacs для синхронизации с Календарем Google и контактами Google, в идеале сохраняя локальную копию, чтобы я мог получить к ним доступ в автономном режиме?
Ответы:
К сожалению, я не могу дать полный ответ. Все, что у меня есть, это советы о возможных путях спуска.
Самый простой путь был бы, если бы работал emacs-g-client , упомянутый Жилем в версии SU этого вопроса. Если это не сработает, я бы посмотрел на следующее:
По крайней мере, вы сможете получить некоторые функции календаря, используя календарь Google с помощью ical. Функция icalendar-import-file
может импортировать файл ical в файл дневника emacs (документация icalendar-import-file ). Таким образом, в вашем файле .emacs вы могли бы получить немного emacs lisp, чтобы получить файл календаря Google и импортировать его в свой дневник. Если вы в конечном итоге используете org-mode, есть несколько способов интегрировать org-mode с дневниковым режимом.
Я думаю, что конечной целью было бы использовать API gdata. Я не думаю, что есть простой способ получить доступ к контактам Google за пределами этого API. Существует утилита командной строки, которая поддерживает широкий спектр функциональных возможностей с использованием этого API под названием Google CL , который теоретически может использоваться внутри некоторых функций lisp emacs для обеспечения полного доступа к вашим контактам, календарю и многим другим службам, размещаемым в Google. Это, вероятно, будет гораздо сложнее, чем несколько строк, добавленных в ваш .emacs.
Для Календаря Google у меня есть односторонняя настройка синхронизации успешно. Emacs загружает мои календари при запуске и передает их в дневник Emacs. Затем это отображается с помощью режима org в повестке дня, но вы можете настроить его так, как хотите.
Для отправки обратно в Календарь 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 отображались записи в дневнике, просто добавьте (setq org-agenda-include-diary t)
.emacs. Подробнее см. В руководстве по режиму org .
Для интеграции с контактами Google есть сценарий Julien Danjou, который вы можете увидеть в действии здесь (репозиторий github находится здесь ):
Расширение google-contacts для Emacs позволяет отображать ваши контакты Google непосредственно внутри Emacs.
Обратите внимание, что он может работать только с Emacs 24, так как он использует oauth2, который является частью GNU ELPA.
emacs-calfw может синхронизироваться с календарями в .ics
формате iCal ( ), такими как Google Calendar.