Я должен был сделать тот некоторый месяц назад. Я просто стрелял, "находят /" и это было достаточно.
К сожалению, я не могу дать полный ответ. Все, что я имею, является советом о некоторых возможных путях для блуждания.
Самый легкий маршрут был бы то, если emacs-g-client, что Gilles упомянул в версии SU этого вопроса работы. Если бы это не работает, я изучил бы следующее:
По крайней мере необходимо смочь получить некоторую календарную функциональность путем доступа к Google Календарю с помощью iCal. Функция icalendar-import-file
может импортировать файл iCal в emacs файл дневника (icalendar-import-file документация). Таким образом в Вашем .emacs файле у Вас могло быть немного шепелявости emacs, чтобы получить файл iCal Google Календаря и импортировать его в Ваш дневник. Если Вы действительно заканчиваете тем, что использовали org-режим существует много способов интегрировать org-режим с режимом дневника.
Я думаю, что конечная цель должна была бы использовать gdata API. Я не думаю, что существует простой способ получить доступ к контактам Google за пределами этого API. Существует утилита командной строки, которая поддерживает широкий спектр функциональности с помощью этого API, названного Google CL, который мог теоретически использоваться в некоторых функциях шепелявости emacs для обеспечения полного доступа к контактам, календарю и многим другим размещенным Google сервисам. Это однако, вероятно, было бы намного более трудным, чем всего несколько строк, брошенных в Ваш .emacs.
Для Google Calendar у меня есть один путь синхронизирующая установка успешно. Emacs выбирает мои календари при запуске и передает его в emacs дневнике. Это затем отображено org-режимом в программе, но можно настроить его так или иначе, Вы хотите.
Для передачи обратно Google Calendar я имею, все же устанавливают что-либо, поскольку мне не нужен он так очень. Однако я думаю, что было бы довольно легко иметь функцию, которая добавляет запись в дневнике и называет googlecl для добавления записи в Google Календаре.
Для выборки календарей у меня есть следующее в моем .emacs (не, что это не мой код, это прибывает из списка рассылки org-режима, но я не могу помнить, где я нашел его точно):
(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 для расширения Emacs позволяют отображать Ваш Google Contacts непосредственно в Emacs.
Обратите внимание, что это, вероятно, будет только работать, по крайней мере, с Emacs 24, так как это использует oauth2, который является частью GNU ELPA.
emacs-calfw может синхронизироваться с календарями в iCal (.ics
) формат, такой как Google Calendar.