Чи є спосіб використовувати Emacs для синхронізації з Календарем Google та Контактами Google, в ідеалі зберігаючи локальну копію, щоб я мав доступ до них в автономному режимі?
Чи є спосіб використовувати Emacs для синхронізації з Календарем Google та Контактами Google, в ідеалі зберігаючи локальну копію, щоб я мав доступ до них в автономному режимі?
Відповіді:
На жаль, я не можу дати повну відповідь. Все, що я маю, - це поради щодо можливих шляхів прогулянки.
Найпростішим маршрутом було б, якби працював emacs-g-клієнт, про який Гілз згадував у SU-версії цього питання. Якщо це не працює, я б розглядав наступне:
По крайней мере, ви повинні мати можливість отримати деякі функції календаря, перейшовши до свого google-календаря за допомогою ical. Функція icalendar-import-file
може імпортувати ical-файл у файл щоденника emacs (документація на icalendar-import-файл ). Таким чином, у вашому .emacs-файлі ви можете мати трохи emacs lisp, щоб отримати логічний файл календаря google та імпортувати його у свій щоденник. Якщо ви все-таки використовуєте org-mode, існує декілька способів інтегрувати org-mode з режимом щоденника.
Я думаю, що кінцевою метою було б використання apta gdata. Я не думаю, що існує легкий спосіб отримати доступ до контактів Google поза цією програмою. Існує утиліта командного рядка, яка підтримує широкий спектр функціональних можливостей за допомогою цього програмного забезпечення під назвою Google CL , яке теоретично може бути використане в деяких функціях lisp emacs для забезпечення повного доступу до ваших контактів, календаря та багатьох інших служб, розміщених Google. Це, однак, може бути набагато складніше, ніж лише кілька рядків, кинутих у ваші .emacs.
У Календарі Google я успішно налаштував один спосіб синхронізації. Emacs отримує мої календарі при запуску та передає їх у щоденник emacs. Потім це відображається в режимі org в порядку денному, але ви можете встановити його будь-коли.
Для повернення в Google Календар я ще нічого не налаштував, оскільки мені це не так вже й потрібно. Однак, я думаю, було б досить легко мати функцію, яка додає запис у щоденник і закликає 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 є сценарій Жюльєна Данджоу, який ви можете побачити тут ( тут знаходиться сховище github ):
Розширення google-контакти для Emacs дозволяє відображати ваші контакти Google безпосередньо всередині Emacs.
Зауважте, що він може працювати лише принаймні з Emacs 24, оскільки він використовує oauth2, який є частиною GNU ELPA.
emacs-calfw може синхронізуватися з календарями у .ics
форматі iCal ( ), наприклад, Google Календар.