Emacs-Synchronisierung mit Google Kalender und Kontakten?

10

Gibt es eine Möglichkeit, Emacs für die Synchronisierung mit Google Kalender und Google Kontakte zu verwenden und im Idealfall eine lokale Kopie zu behalten, damit ich offline darauf zugreifen kann?

hpy
quelle
1
Was verwenden Sie derzeit in Emacs zum Speichern von Kontakten? bbdb? Was verwenden Sie für Ihr Kalenderprogramm in Emacs? Meine Antwort unterscheidet sich beispielsweise im Organisationsmodus oder im Tagebuchmodus.
Steven D
Eigentlich fange ich gerade erst an und plane, bbdb für Kontakte zu verwenden. Ich hatte vor, den Tagebuchmodus für den Kalender zu verwenden, aber jetzt, da ich den Organisationsmodus kenne und darüber lese, könnte dies auch eine gute Option sein. Vielen Dank!!
hpy
Dies wäre eine großartige Option, wenn es überhaupt möglich ist, würde ich gerne wissen. Es wäre auf jeden Fall cool, einen Outlook-Client in Emacs zu integrieren.
1
Auch bei Super User gefragt . Tu das nicht! (Ausnahme: Wenn die Frage auf einer Website keine gute Antwort erhalten hat, und dann auf die ursprüngliche Frage verlinken.)
Gilles 'SO - hör auf böse zu sein
Ich hatte keine Ahnung, sorry! Trotzdem auf der Suche nach einer guten Antwort.
hpy

Antworten:

3

Leider kann ich keine vollständige Antwort geben. Ich habe nur Ratschläge zu möglichen Wegen, um hinunterzuwandern.

Der einfachste Weg wäre, wenn der Emacs-G-Client , den Gilles in der SU-Version dieser Frage erwähnt hat, funktioniert. Wenn das nicht funktioniert, würde ich Folgendes untersuchen:

  • Zumindest sollten Sie in der Lage sein, einige Kalenderfunktionen zu erhalten, indem Sie mit ical auf Ihren Google Kalender zugreifen. Die Funktion icalendar-import-filekann eine ical-Datei in eine emacs-Tagebuchdatei importieren ( icalendar-import-file- Dokumentation). Daher könnten Sie in Ihrer .emacs-Datei ein bisschen emacs lisp haben, um die Google-Kalenderdatei abzurufen und in Ihr Tagebuch zu importieren. Wenn Sie den Organisationsmodus verwenden, gibt es verschiedene Möglichkeiten, den Organisationsmodus in den Tagebuchmodus zu integrieren.

  • Ich denke, dass das ultimative Ziel darin besteht, die gdata-API zu verwenden. Ich glaube nicht, dass es einen einfachen Weg gibt, außerhalb dieser API auf Google-Kontakte zuzugreifen. Es gibt ein Befehlszeilenprogramm, das eine breite Palette von Funktionen unter Verwendung dieser API namens Google CL unterstützt. Diese können theoretisch in einigen Emacs-Lisp-Funktionen verwendet werden, um vollen Zugriff auf Ihre Kontakte, Ihren Kalender und viele andere von Google gehostete Dienste zu ermöglichen. Dies wäre jedoch wahrscheinlich viel schwieriger als nur ein paar Zeilen, die in Ihre .emacs geworfen werden.

Steven D.
quelle
3

Für Google Kalender habe ich eine erfolgreiche Einweg-Synchronisierung eingerichtet. Emacs holt meine Kalender beim Start und überträgt sie in das Emacs-Tagebuch. Dies wird dann im Organisationsmodus in der Agenda angezeigt, aber Sie können es beliebig einrichten.

Für das Zurücksenden an Google Kalender habe ich noch nichts eingerichtet, da ich es nicht so sehr brauche. Ich denke jedoch, dass es ziemlich einfach wäre, eine Funktion zu haben, die einen Eintrag im Tagebuch hinzufügt und googlecl aufruft , um einen Eintrag in Ihren Google-Kalender hinzuzufügen.

Um die Kalender abzurufen, habe ich Folgendes in meinen .emacs (nicht, dass dies nicht mein Code ist, er stammt aus der Mailingliste im Organisationsmodus, aber ich kann mich nicht erinnern, wo ich ihn genau gefunden habe):

(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"))

Ersetzen "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"Sie die Kalender durch die URLs, die Sie abrufen möchten (Sie finden sie unten auf der Einrichtungsseite jedes Kalenders in Google Kalender). Sie können beliebig viele hinzufügen.

Jetzt können Sie einfach anrufen, (getcals)wenn Sie die Kalender abrufen möchten. Sie können dies in Ihre .emacs einfügen, um dies beim Start zu tun, aber es kann Ihren Start blockieren.

Um im Org-Modus die Tagebucheinträge in der Agenda anzuzeigen, fügen (setq org-agenda-include-diary t)Sie einfach Ihre .emacs hinzu. Weitere Informationen finden Sie im Handbuch zum Organisationsmodus.

Mortimer
quelle
3

Für die Integration mit Google-Kontakten gibt es das Skript von Julien Danjou, das Sie hier in Aktion sehen können (das Github-Repository finden Sie hier ):

Mit der Erweiterung "Google-Kontakte für Emacs" können Sie Ihre Google-Kontakte direkt in Emacs anzeigen.

Beachten Sie, dass es wahrscheinlich nur mit mindestens Emacs 24 funktioniert, da oauth2 verwendet wird, das Teil von GNU ELPA ist.

PuercoPop
quelle
2

emacs-calfw kann mit Kalendern im iCal ( .ics) -Format wie Google Kalender synchronisieren .

Bastian Ballmann
quelle