Exportar la agenda de Org a un mail automático y periódico
La agenda de Org Mode es un portento de eficiencia. Siempre solícita cada vez que la invoquemos, por ejemplo con la
secuencia C-c a a
, para que nos recolecte y muestre todos los TODO
que tenemos en el día presente y en los que se
aproximan. Tareas, en fin, que temerariamente marcamos en el pasado con una fecha límite, y tan lejana nos parecía en su
momento. A la agenda, memoriosa, no se le escapa nada.
Pero si la agenda es casi perfecta en su asepsia, nosotros por contra resultamos indolentes, perezosos y (ese término horrible, que ya pronunciarlo o escribirlo es una penitencia) procrastinadores natos. Es aquí donde dos venerables herramientas, GNU Mail y Cron, se alían para convertirse en nuestra conciencia. Si no vamos a la agenda, hagamos que la agenda vaya a nosotros y nos persiga. La idea es exportarla a un documento de texto simple, semanalmente, y auto-enviarnos un correo periódico. Y la manera de hacerlo, muy sencilla, como veremos a continuación.
Para exportar la agenda, echamos mano de nuevo de la utilísima función batch
de Emacs, que nos permite controlarlo a
distancia, casi con el pensamiento. Podemos usar este comando:
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a")' 2 > agenda.txt
Lo que viene a hacer es evaluar en el archivo de inicio la función que muestra la vista de agenda y exporta el resultado
a un archivo de texto simple llamado agenda.txt
.
Creamos, a continuación, un sencillo script que haga tres cosas:
- Ejecutar ese comando
- Enviarnos con GNU Mail el archivo
agenda.txt
(con la fecha actualizada) a nuestra dirección de correo - Eliminar el archivo
agenda.txt
#!/bin/bash emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a")' 2 > agenda.txt /usr/bin/mail -s "Agenda para $(date)" nuestra-dirección-de-correo < agenda.txt rm agenda.txt exit
Naturalmente, antes tendremos que configurar GNU Mail para que pueda enviar correos desde nuestra cuenta. Es tan simple
como introducir algunos datos en el archivo /etc/mail.rc
. Para ello, recomiendo echar un ojo a esta entrada de este
excelente blog donde se explica todo de forma meridiana.
Por último, asignamos la ejecución de nuestro script (que hemos llamado agenda.sh
y le hemos dado permisos de
ejecución) a una tarea programada con cron. La cuestión es: ¿cada cuanto tiempo? Bueno, no es cosa de que se nos
recuerde nuestras vergüenzas de hora en hora. Semanalmente me parece lo más razonable. Editamos crontab con el comando
crontab -e
Y añadimos un comodín @weekly
para no complicarnos con el jaleo de los asteriscos:
@weekly /ruta/hacia/agenda.sh
Esto quiere decir que el script se ejecutará todos los domingos a las 00:00. Hay una alta probabilidad de que a esas horas esté con el ordenador encendido y reciba el mail. Pero, si no, tampoco pasa nada. Quién se va a enterar…
∞
Publicado: 10/03/2019
Última actualización: 10/03/2019
Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.