Pregunta:
Leo mi correo electrónico en Emacs y, de vez en cuando, recibo un archivo ICS como archivo adjunto, generalmente en un mensaje de confirmación de un evento al que me he inscrito. Eso es muy amable, porque significa que no necesito ingresar el evento en mi calendario manualmente. Se ve así en el búfer de mensajes:
Attachment: [4. text/calendar; foobar.ics]...
Quiero importar ese evento a Google Calendar. Actualmente manejo esos archivos como este:
- Guarde el archivo adjunto ICS desde el modo de mensaje (mueva el punto al archivo adjunto y presione
o
) - Abrir Google Calendar en mi navegador web
- Haga clic en la rueda dentada y seleccione "Configuración" en el menú que aparece
- Abre la pestaña "Calendarios" en la página de configuración.
- Haga clic en el enlace "Importar calendario".
- Seleccione el archivo ICS en el control de entrada de carga de archivos
- Seleccione a qué calendario agregar el evento
- Haga clic en el botón "Importar"
Se vuelve tedioso después de un tiempo. ¿Cómo puedo importar el evento a Google Calendar directamente desde Emacs, sin todos estos pasos intermedios?
Respuesta:
Hay una interfaz de línea de comandos para Google Calendar llamada gcalcli . Puedes instalarlo usando pip:
pip install gcalcli
Para importar archivos de calendario, gcalcli requiere que se instale la biblioteca vobject:
pip install vobject
La primera vez que ejecute gcalcli, abrirá un navegador web para obtener un token de oauth, que guardará en ~/.gcalcli_oauth
. list
es un buen comando para usar:
gcalcli list
Ahora que gcalcli
está instalado, configuremos Emacs para usarlo. Agregue la siguiente entrada a su archivo ~/.mailcap
( ~/.mailcap
si no existe):
text/calendar; /path/to/gcalcli --calendar 'Calendar Name' import %s
"Nombre del calendario" es el nombre del calendario al que desea importar las entradas del calendario, como se indica en la gcalcli list
.
Para que Emacs recoja la nueva entrada, escriba Mx mailcap-parse-mailcaps
.
Para importar un archivo de calendario, mueva el punto a [4. text/calendar; foobar.ics]
parte, pulse .
e ingrese view externally
como la "acción". Emacs ejecutará gcalcli
y mostrará la salida en el búfer de mensajes; con suerte New event added: https://....