Czy istnieje sposób na użycie Emacsa do synchronizacji z Kalendarzem Google i Kontaktami Google, najlepiej zachowując lokalną kopię, aby uzyskać do nich dostęp offline?
Czy istnieje sposób na użycie Emacsa do synchronizacji z Kalendarzem Google i Kontaktami Google, najlepiej zachowując lokalną kopię, aby uzyskać do nich dostęp offline?
Odpowiedzi:
Niestety nie jestem w stanie udzielić pełnej odpowiedzi. Wszystko, co mam, to porady na temat niektórych możliwych ścieżek wędrówki w dół.
Najłatwiejszą drogą byłoby, gdyby działał klient emacs-g, o którym Gilles wspomniał w wersji SU tego pytania. Jeśli to nie zadziała, chciałbym spojrzeć na następujące kwestie:
Przynajmniej powinieneś być w stanie uzyskać niektóre funkcje kalendarza, uzyskując dostęp do kalendarza Google za pomocą ical. Funkcja icalendar-import-file
może zaimportować plik ical do pliku dziennika emacsa (dokumentacja icalendar-import-file file ). Dlatego w pliku .emacs możesz mieć trochę emacs lisp, aby pobrać plik kalendarzowy Google i zaimportować go do swojego dziennika. Jeśli skończysz w trybie org, istnieje wiele sposobów na zintegrowanie trybu org z trybem pamiętnika.
Myślę, że ostatecznym celem byłoby wykorzystanie interfejsu API gdata. Nie sądzę, że istnieje łatwy sposób na uzyskanie dostępu do kontaktów Google poza tym interfejsem API. Istnieje narzędzie wiersza polecenia, które obsługuje szeroki zakres funkcji korzystających z tego interfejsu API o nazwie Google CL , które teoretycznie mogą być używane w niektórych funkcjach emacs lisp, aby zapewnić pełny dostęp do kontaktów, kalendarza i wielu innych usług hostowanych przez Google. Byłoby to jednak prawdopodobnie znacznie trudniejsze niż kilka linii wrzuconych do plików .emac.
W przypadku Kalendarza Google pomyślnie skonfigurowałem synchronizację w jedną stronę. Emacs pobiera moje kalendarze podczas uruchamiania i przenosi je do pamiętnika emacsa. Jest to następnie wyświetlane w trybie organizacji w porządku obrad, ale możesz go ustawić w dowolnym momencie.
Aby odesłać z powrotem do Kalendarza Google, skonfigurowałem już wszystko, ponieważ nie potrzebuję go tak bardzo. Myślę jednak, że byłoby dość łatwo mieć funkcję, która dodaje wpis do pamiętnika i wywołuje googlecl, aby dodać wpis do kalendarza Google.
Aby pobrać kalendarze, mam następujące pliki .emacs (nie to, że to nie jest mój kod, pochodzi z listy mailingowej w trybie organizacji, ale nie pamiętam, gdzie go dokładnie znalazłem):
(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"))
Zamień "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"
adresy URL na kalendarze, które chcesz pobrać (znajdziesz go na dole strony konfiguracji każdego kalendarza w kalendarzu Google). Możesz dodać tyle, ile chcesz.
Teraz możesz zadzwonić, (getcals)
gdy chcesz pobrać kalendarze. Możesz umieścić to w .emacs, aby zrobić to przy starcie, ale może to zablokować twój start.
Aby tryb organizacji wyświetlał wpisy w dzienniku w programie, po prostu dodaj (setq org-agenda-include-diary t)
.emacs. Szczegółowe informacje można znaleźć w instrukcji obsługi trybu org .
Do integracji z kontaktami Google jest skrypt Juliena Danjou, który można zobaczyć tutaj w akcji (repozytorium github jest tutaj ):
Kontakty Google dla rozszerzenia Emacs umożliwiają wyświetlanie kontaktów Google bezpośrednio w Emacs.
Zauważ, że prawdopodobnie będzie działać tylko z Emacsem 24, ponieważ używa oauth2, który jest częścią GNU ELPA.
emacs-calfw może synchronizować z kalendarzami w .ics
formacie iCal ( ), takimi jak Kalendarz Google.