it-swarm-es.com

Emacs Sync w / Google Calendar y Contactos?

¿Hay alguna manera de usar Emacs para sincronizar con Google Calendar y Google Contactos, idealmente mantener una copia local para poder acceder a ellos fuera de línea?

10
hpy

Desafortunadamente, no puedo dar una respuesta completa. Todo lo que tengo es consejo sobre algunos senderos posibles para deambular.

La ruta más fácil sería si el EMACS-G-Client que Gilles mencionados en la versión Su de esta pregunta funciona. Si eso no funciona, miraría lo siguiente:

  • Como mínimo, debería poder obtener alguna funcionalidad de calendario accediendo a su calendario de Google utilizando iCal. La función icalendar-import-file Puede importar un archivo ical a un archivo diario de EMACS ( iCalendar-Import-Archivo-Archivo Documentación). Por lo tanto, en su archivo .EMACS, podría tener un poco de Emacs Lisp para obtener el archivo de Google Calendar iCal e importarlo a su diario. Si lo hace, use el modo de organización de Org, hay una serie de formas de integrar el modo Org-Mode con el modo Diario.

  • Creo que el objetivo final sería hacer uso de la API de GDATA. No creo que haya una manera fácil de acceder a los contactos de Google fuera de esta API. Hay una utilidad de línea de comandos que admite una amplia gama de funcionalidad utilizando esta API llamada Google CL , que podría usarse teóricamente dentro de algunas funciones de Emacs Lisp para proporcionar acceso completo a sus contactos, calendario y muchos otros Servicios de Google-Hosted. Sin embargo, esto probablemente sería mucho más difícil que solo unas pocas líneas lanzadas a sus .emacs.

3
Steven D

Para Google Calendar, tengo una configuración de sincronización de ida con éxito. Emacs obtiene mis calendarios al inicio y la transfiere en el diario de Emacs. Luego, esto se muestra por el modo Org en la agenda, pero puede configurarlo de todos modos que desee.

Para enviarlo de regreso a Google Calendar, todavía he configurado cualquier cosa, ya que no lo necesito mucho. Sin embargo, creo que sería bastante fácil tener una función que agregue una entrada en el diario y las llamadas googlecl para agregar una entrada en su calendario de Google.

Para buscar los calendarios, tengo lo siguiente en My .emacs (no es que este no sea mi código, proviene de la lista de correo de modo org-mode, pero no puedo recordar dónde lo encontré exactamente):

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

Reemplazar "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics" Con las URLs a los calendarios que desea obtener (lo encuentra en la parte inferior de la página de configuración de cada calendario en Google Calendar). Puedes agregar tantos como quieras.

Ahora, puedes llamar (getcals) Cuando quieras buscar los calendarios. Puede poner esto en su .emacs para hacerlo al inicio, pero podría resolver su inicio.

Para visualizar el modo Org, las entradas del diario en la agenda, simplemente agregue (setq org-agenda-include-diary t) en tus .emacs. Consulte el Manual de modo org para más detalles.

3
Mortimer

Para la integración con los contactos de Google, hay un script de Julien Danjou que puede ver en acción aquí (el repositorio de GitHUB aquí ):

El Google-Contactos de Extensión de Emacs permite mostrar sus contactos de Google directamente dentro de Emacs.

Tenga en cuenta que es probable que solo trabaje con al menos Emacs 24, ya que está utilizando OAUTH2, que forma parte de GNU ELPA.

3
PuercoPop