Introducción
- Primera parte de una serie sobre poseer directamente los datos y la tecnología, donde se explica cómo integrar una solución de calendario autoalojada.
- Como los viajes frecuentes hacían más compleja la gestión de la agenda y los sistemas de calendario existentes resultaban incómodos, se terminó construyendo una solución propia.
Requisitos
- Los eventos deben aparecer como bloques de tiempo ocupado en el calendario de trabajo.
- La esposa puede suscribirse al calendario.
- Los eventos solo deben ingresarse una vez.
- Debe poder editarse desde varios dispositivos.
- Debe haber control total sobre los datos.
- El problema no puede resolverse compartiendo el calendario de trabajo con la esposa.
Solución anterior
- Las soluciones existentes para compartir calendarios requerían una plataforma común o ofrecían funciones limitadas.
- Se comenzó con un enfoque de escribir eventos del calendario en archivos YAML y convertirlos a archivos ICS para compartirlos, pero mantenerlo se volvió difícil.
Arquitectura
- Se construyó una solución con un servidor CalDAV para administrar el calendario desde varios dispositivos.
- Se conecta con distintas fuentes de datos para actualizar eventos automáticamente y ofrecerlos como archivos ICS.
Configuración de Baïkal
- Se configuró un servidor CalDAV con Baïkal y se desplegó fácilmente mediante Docker Compose.
- Se ajustó para que fuera accesible desde la web usando un proxy inverso de nginx.
Configuración del sistema de clasificación de eventos
- Se clasifican los eventos usando la propiedad
CATEGORIES de iCalendar y se escribió el modelo de datos con un enum de Python.
- Esto permite buscar eventos fácilmente o distinguirlos por color.
Compilación y compartición del calendario
- Los eventos se importan automáticamente mediante IMAP, API, archivos ICS, etc., se agregan a Baïkal y luego se convierten en archivos ICS para compartirlos en la web.
- Se configuró una tarea de cron para actualizar cada 15 minutos.
Compartición con el calendario de trabajo
- Se usa Google Script Engine para copiar eventos al calendario de trabajo y aplicar codificación por colores basada en la propiedad
CATEGORIES.
Conclusión
- Tras 6 meses de pruebas, el sistema funciona bien y ayuda mucho a gestionar itinerarios de viaje.
- Aunque implica un costo de servidor de $100 al mes, se considera que vale totalmente la pena por la comodidad en la gestión de la agenda.
1 comentarios
Opiniones de Hacker News
CalDAV es complejo y poco intuitivo. Probé Radicale, pero no me dejó satisfecho. Personalmente intenté implementar un servidor CalDAV, pero me rendí
Radicale es un servidor CalDAV modular escrito en Python que vale la pena recomendar
Uso Mailcow (SoGO) y Fastmail en mi servidor personal. Los dos calendarios no se sincronizan bien
A inicios de los 2000 usaba Mozilla Sunbird para alojar un calendario en un servidor Win2k. Creo que CardDAV no existía
Llevo varios años usando Baikal y es estable. Lo conecto con Thunderbird, DAVx5 y Fossify Calendar
Quiero crear algo para las fotos. Quiero alejarme de Dropbox y Google
Sincronizar Outlook y Google Calendar por HTTP no es confiable
Baikal se ve interesante. Antes usé DAViCal, pero dejó de ser confiable cuando cambiaron las versiones de iOS
Últimamente he estado intentando salir de la nube. La migración de datos tomó dos semanas y funcionó mejor de lo esperado
También hay una forma serverless de usar DecSync. Thunderbird o Evolution se sincronizan con apps de Android