¿Emacs se sincroniza con Google Calendar y Contactos?

10

¿Hay alguna manera de usar Emacs para sincronizar con Google Calendar y Google Contacts, idealmente manteniendo una copia local para poder acceder a ellos sin conexión?

hpy
fuente
1
¿Qué estás usando actualmente en emacs para almacenar contactos? bbdb? Además, ¿qué utiliza para su programa de calendario en emacs? Mi respuesta será diferente para decir modo org vs modo diario.
Steven D
En realidad, recién estoy comenzando y estoy planeando usar bbdb para los contactos. Estaba planeando usar el modo diario para el calendario, pero ahora que conozco y leo sobre el modo org, esa también podría ser una buena opción. ¡¡Gracias!!
hpy
Esta sería una gran opción, si es posible, me gustaría saber. Construir un cliente de Outlook en emacs definitivamente sería genial.
1
También preguntado en Super User . ¡No hagas esto! (Excepción: cuando la pregunta no ha tenido una buena respuesta en un sitio, y luego se vincula a la pregunta original.)
Gilles 'SO- deja de ser malo'
No tenía idea, lo siento! Sin embargo, todavía estoy buscando una buena respuesta.
hpy

Respuestas:

3

Lamentablemente, no puedo dar una respuesta completa. Todo lo que tengo es un consejo sobre algunos posibles caminos para pasear.

La ruta más fácil sería si el emacs-g-client que Gilles mencionó en la versión SU de esta pregunta funciona. Si eso no funciona, investigaría lo siguiente:

  • Como mínimo, debería poder obtener alguna funcionalidad de calendario accediendo a su calendario de Google usando ical. La función icalendar-import-filepuede importar un archivo ical a un archivo de diario de emacs (documentación icalendar-import-file ). Por lo tanto, en su archivo .emacs podría tener un poco de emacs lisp para obtener el archivo ical del calendario de Google e importarlo a su diario. Si termina usando el modo org, hay varias formas de integrar el modo org 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 funcionalidades utilizando esta API llamada Google CL , que en teoría podría usarse dentro de algunas funciones de emacs lisp para proporcionar acceso completo a sus contactos, calendario y muchos otros servicios alojados en Google. Sin embargo, esto probablemente sea mucho más difícil que solo unas pocas líneas en sus .emacs.

Steven D
fuente
3

Para Google Calendar, tengo una configuración de sincronización unidireccional exitosa. Emacs busca mis calendarios al inicio y los transfiere al diario de emacs. Esto se muestra en el modo org en la agenda, pero puede configurarlo de la forma que desee.

Para enviar de vuelta a Google Calendar, todavía configuré algo, ya que no lo necesito tanto. Sin embargo, creo que sería bastante fácil tener una función que agregue una entrada en el diario y llame a googlecl para agregar una entrada en su calendario de google.

Para buscar los calendarios, tengo lo siguiente en mis .emacs (no es que este no sea mi código, proviene de la lista de correo del modo org, pero no recuerdo 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"))

Reemplace "http://www.google.com/calendar/ical/DFSDFSDFSDFASD/basic.ics"con las URL de los calendarios que desea buscar (lo encuentra en la parte inferior de la página de configuración de cada calendario en Google Calendar). Puede agregar tantos como desee.

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

Para que el modo org muestre las entradas del diario en la agenda, simplemente agregue (setq org-agenda-include-diary t)sus .emacs. Consulte el manual del modo org para más detalles.

Mortimer
fuente
3

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 está aquí ):

La extensión google-contactos para Emacs le permite mostrar sus Contactos de Google directamente dentro de Emacs.

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

PuercoPop
fuente
2

emacs-calfw puede sincronizarse con calendarios en .icsformato iCal ( ) como Google Calendar.

Bastian Ballmann
fuente