Sincronizar el calendario de Emacs y la agenda de Org Mode

El calendario de Emacs ( M-x calendar ) es una de esas cosas que no debería llevar un editor de textos. Pero Emacs —hay que recordar— no es sólo un editor de texto sino más bien una potentísima interfaz de trabajo, para la que cualquier cosa es texto y debe por tanto ser tratada como texto. Comprender eso es empezar a comprender un poco a Emacs. Además, el calendario es una cosa muy útil y podemos sincronizarlo sin mucho trastorno con otra cosa igualmente útil, que es la agenda de Org Mode, a fin de que ésta muestre las entradas del diario (cumpleaños, efemérides, festivos, etc.) y aquél nos recuerde las tareas que tenemos anotadas en Org.

Para lo primero, basta con incluir estas dos variables en nuestro archivo de inicio:

( setq org-agenda-include-diary t)

A continuación, nos creamos un archivo para el diario (donde irán a parar las efemérides y demás). Lo mejor es que sea un documento de Org. Y añadimos su ruta a estas dos variables:

( setq diary-file "ruta/hacia/mi-diario.org" ) ( setq org-agenda-diary-file "ruta/hacia/mi-diario.org" )

En ese archivo, escribimos la siguiente expresión, para indicar qué tipo de tareas de Org han de quedar reflejadas en el calendario. Como yo quiero que sean solo las tareas «scheduled», añado esto:

=%%(org-diary :scheduled)=

Y ya, para más refinamiento, podemos incluir en nuestro init esta variable, que nos resaltará en el calendario los días con tareas fijadas o alguna efeméride o cumpleaños:

( setq calendar-mark-diary-entries-flag t)

Figura 1: Calendario de Emacs con los días resaltados

Así, con el cursor en el día resaltado, pulsamos «d» y nos enteramos de qué cosas hay para esa fecha. Igualmente, pulsando «i» sobre un día, podemos añadir una efeméride o cumpleaños, que irá a parar al archivo de diario que hemos creado. Y toda esa información también se mostrará oportunamente cuando llamemos a la agenda de Org.