Sincronización de contactos y calendario con DAVx⁵ y /e/OS

  • CalDAV y CardDAV permiten sincronizar contactos y calendarios mediante estándares abiertos, sin depender de servicios propietarios como Google.
  • DAVx⁵ actúa como puente entre Android y servidores como Nextcloud, Radicale, Zimbra o EGroupware, integrándose con las apps nativas del sistema.
  • Soluciones como Nextcloud o Radicale permiten centralizar contactos y calendarios en servidores propios, combinando seguridad, control y flexibilidad.
  • Una correcta configuración de URLs, permisos y visibilidad de calendarios es clave para evitar problemas típicos de sincronización en Android.

Sincronización de contactos y calendario con DAVx⁵ y /e/OS

Si te estás planteando olvidarte de Google para sincronizar contactos y calendarios en tu móvil Android, seguramente ya te habrás topado con DAVx⁵, Nextcloud, Radicale o incluso /e/OS. El problema es que, entre tanta sigla (CalDAV, CardDAV, WebDAV…) y tantos modos distintos de configurar las cosas, es fácil hacerse un lío y que la sincronización simplemente no funcione como debería.

En este artículo vamos a juntar todas las piezas: qué son CalDAV y CardDAV, cómo funciona DAVx⁵, cómo integrarlo con Nextcloud, Radicale, Zimbra o EGroupware y qué debes revisar cuando tu calendario o contactos no aparecen en Android, incluso aunque parezca que todo está bien configurado. Todo explicado en español de España, con ejemplos prácticos y sin dar nada por supuesto.

¿Qué son WebDAV, CalDAV y CardDAV y por qué te interesan?

Antes de meternos con DAVx⁵ y /e/OS, viene bien aclarar qué hay debajo de todo esto: WebDAV, CalDAV y CardDAV son estándares abiertos que permiten gestionar archivos, calendarios y contactos en servidores remotos sin depender de Google, Apple u otros gigantes.

WebDAV (Distributed Authoring and Versioning) es básicamente una extensión de HTTP que permite crear, mover, renombrar y borrar ficheros en un servidor remoto usando peticiones HTTP con datos en XML. Aunque suene técnico, la idea es simple: en lugar de usar FTP o protocolos propietarios, tu servidor expone carpetas y ficheros mediante HTTP y los clientes (apps) pueden trabajar con ellos como si fueran locales.

A partir de WebDAV surgieron extensiones especializadas como CalDAV, pensada para almacenar y compartir calendarios en formato estándar iCalendar (iCal). Cada evento, recordatorio o tarea se guarda como datos estructurados y los clientes compatibles (móvil, ordenador, etc.) pueden leerlos, editarlos y sincronizarlos.

Por otro lado está CardDAV, que hace exactamente lo mismo pero para contactos. Utiliza el formato estándar vCard para guardar nombres, teléfonos, correos, direcciones, notas… y lo expone vía WebDAV para que cualquier cliente compatible pueda sincronizar la agenda.

Aplicaciones open source
Artículo relacionado:
Recomendaciones de apps open source para Android que deberías instalar

Gracias a CalDAV y CardDAV puedes montar tu propio servicio de agenda y calendario autoalojados usando soluciones como Nextcloud, Radicale o servidores groupware (Zimbra, EGroupware, Open-Xchange…), y luego usar tu móvil Android con DAVx⁵ para tenerlos siempre al día sin pasar por Google.

DAVx⁵ y DAVx⁵ Select: el puente entre tu servidor y Android

DAVx⁵ es una aplicación de software libre para Android que actúa como cliente CalDAV y CardDAV. Su función es tan sencilla como crítica: se encarga de sincronizar tus contactos, calendarios y tareas entre el servidor (Nextcloud, Radicale, Zimbra, etc.) y las apps nativas de Android (Contactos, Calendario, tareas compatibles).

DAVx⁵ está disponible de forma gratuita en F-Droid y como app de pago en Google Play Store. Aunque el código es libre, comprarla en Play es una manera de apoyar el desarrollo. Una vez instalada, no aparece como un calendario o agenda independiente, sino como un servicio de sincronización que se integra con las aplicaciones ya instaladas en tu dispositivo.

Existe también una variante llamada DAVx⁵ Select, que es una versión especializada con las mismas capacidades técnicas que DAVx⁵ “clásico”, pero que solo puede usarse de forma gratuita con servidores concretos, actualmente aquellos que ejecutan Open-Xchange App Suite. Esta edición está limitada: no puedes usarla con cualquier servidor CalDAV/CardDAV; para ello necesitas la versión normal con el icono verde.

Una vez creada una cuenta en DAVx⁵, la app detecta las colecciones CalDAV (calendarios) y CardDAV (libretas de direcciones) disponibles en el servidor. Te permite seleccionar qué calendarios y qué agendas quieres sincronizar, definir cada cuánto tiempo se actualizan, si se sincronizan colores, qué colecciones se gestionan en el dispositivo, etc.

Instalar y configurar DAVx⁵ por primera vez en Android

Para empezar a sincronizar tus datos con DAVx⁵ en Android hay dos caminos principales: instalar la app desde la tienda adecuada y después crear una cuenta con la URL de tu servidor y tus credenciales.

Puedes conseguir DAVx⁵ de dos formas: comprándolo en Google Play o descargándolo gratis desde F-Droid. En Play Store basta con buscar “davx5”, pulsar en la app, comprarla y luego tocar en “Instalar”. En F-Droid haces algo similar: abres el repositorio, buscas “DAVx5” y la instalas sin pasar por la caja.

Cuando abras DAVx⁵ por primera vez, no verás un “calendario” como tal, sino una pantalla donde podrás añadir cuentas de sincronización. Pulsas en el botón “+” para crear una nueva cuenta y eliges la opción de “Acceder con URL y nombre de usuario” (o similar), que es la más flexible y la que se usa con la mayoría de servidores CalDAV/CardDAV.

En este formulario tienes que introducir la URL de tu servidor DAV, tu usuario y tu contraseña. La dirección depende del servicio que utilices: puede ser un Nextcloud, un Radicale, un Zimbra alojado por tu proveedor, etc. Una vez rellenado todo, confirmas la entrada de la cuenta y DAVx⁵ intentará descubrir automáticamente los calendarios y libretas CardDAV disponibles.

Después la app te pedirá que des un nombre para esa cuenta (por ejemplo, “Nextcloud Personal”, “Trabajo Zimbra” o lo que te venga bien). Esto es útil porque puedes tener varias cuentas de distintos servidores sincronizadas al mismo tiempo y gestionarlas de manera independiente desde el panel principal de DAVx⁵.

Sincronizar contactos (CardDAV) con DAVx⁵

Una vez creada la cuenta, DAVx⁵ mostrará las libretas de contactos disponibles en el servidor mediante CardDAV. Puede haber una sola libreta (por ejemplo, “Contactos personales”) o varias (trabajo, familia, clientes, etc.). Ahí decides qué libretas quieres sincronizar con la agenda de contactos de Android.

Cuando actives la sincronización, el sistema de Android te pedirá permiso para que DAVx⁵ pueda acceder a tus contactos. Es importante aceptar este permiso; si lo rechazas, la app no podrá crear ni actualizar contactos en el dispositivo y parecerá que “no funciona nada”.

Tras la primera sincronización, verás que en la app de Contactos de Android aparece una nueva cuenta de contactos asociada a DAVx⁵. Lo habitual cuando migras desde Google es dejar la cuenta de Google con 0 contactos y usar exclusivamente la cuenta DAVx⁵ vinculada a tu servidor (por ejemplo, Nextcloud o Radicale). Desde ese momento, añadir o editar contactos en el móvil los guardará en tu servidor propio, no en Google.

En entornos de escritorio también puedes consumir CardDAV con múltiples clientes. Un ejemplo avanzado consiste en usar vdirsyncer para sincronizar contactos desde Nextcloud a un directorio local en formato vCard y gestionarlos luego con khard, una aplicación de línea de comandos muy ligera. vdirsyncer se configura con bloques de storage “filesystem” (para el lado local) y storage “carddav” (para el servidor), y permite hacer comandos como discover y sync para mantener todo al día.

Sincronizar calendarios (CalDAV) con DAVx⁵

Sincronización de contactos y calendario con DAVx⁵ y /e/OS

Además de los contactos, DAVx⁵ se encarga de hablar con el servidor usando CalDAV para traer y enviar calendarios. Tras la detección automática, verás una lista de todos los calendarios que tengas en tu cuenta: personales, de trabajo, compartidos, tareas, etc. Puedes elegir cuáles se sincronizan con tu dispositivo Android.

Cuando selecciones los calendarios, el sistema te pedirá que autorices a DAVx⁵ a acceder al calendario y eventos de tu smartphone. De nuevo, si deniegas el permiso, la app no podrá crear los calendarios locales y no verás nada en Google Calendar, Etar o la app que uses.

Al terminar la configuración, abre tu aplicación de calendario predeterminada (puede ser Google Calendar u otra app compatible) y comprueba que aparece el nuevo conjunto de calendarios asociado a DAVx⁵. Es posible que veas el nombre de la cuenta tal y como lo definiste en DAVx⁵, junto con los calendarios individuales. Si todo está bien, deberían comenzar a aparecer los eventos en unos minutos, ya que la sincronización no siempre es instantánea.

En la pantalla de ajustes de cada cuenta en DAVx⁵ puedes ajustar detalles como el intervalo de sincronización, si se sincronizan los colores de los calendarios, la sincronización de tareas (si usas una app compatible como OpenTasks), o incluso forzar una sincronización manual usando el icono de recarga.

Integración con Nextcloud: contactos y calendarios sin Google

Nextcloud se ha convertido en una de las soluciones más populares para centralizar archivos, contactos y calendarios en un servidor propio o alquilado. Para contactos, se suele instalar la app Contacts, incluida en el pack “groupware”, que también trae Calendar, Mail y Deck. La app Contacts implementa CardDAV y permite importar y exportar vCard.

Si ya tienes contactos en otros servicios (por ejemplo, Google), lo habitual es exportarlos en formato .vcf (vCard) y luego usar la opción de Importar contactos en los ajustes de Contacts en Nextcloud. Una vez centralizados todos los contactos allí, puedes prescindir de las copias en otros servicios y utilizar Nextcloud como tu fuente principal de datos de contacto.

Para que los clientes CardDAV (como DAVx⁵) funcionen sin problemas con Nextcloud, es importante tener correctamente configuradas las URLs de “service discovery”, sobre todo si tu instancia está en un subdirectorio (por ejemplo, https://misitio.com/nextcloud en lugar de un dominio dedicado). Esto suele implicar pequeños ajustes en el fichero .htaccess o en la configuración del servidor web, de forma que las rutas a remote.php/dav sean detectables.

En Android, la URL típica a usar en DAVx⁵ con Nextcloud es del estilo https://DOMINIO/remote.php/dav/. Introduces esa dirección, tu usuario y tu contraseña, y DAVx⁵ detectará las libretas de contactos y calendarios. A partir de ese momento, como comentábamos antes, puedes borrar sin miedo tus contactos de Google y quedarte únicamente con los de Nextcloud gestionados mediante DAVx⁵.

La app oficial de Nextcloud para Android también facilita las cosas: en su configuración encontrarás una opción tipo “Sincronizar calendario y contactos” que te redirige a DAVx⁵ y configura automáticamente la cuenta con tus credenciales. Una vez aceptas, basta con seleccionar los calendarios y contactos a sincronizar y refrescar para que se carguen en el dispositivo.

Radicale: un servidor CalDAV y CardDAV ligero para autoalojamiento

Si quieres algo aún más minimalista que Nextcloud, Radicale es un servidor CalDAV y CardDAV escrito en Python que está pensado para ser sencillo, ligero y sin demasiadas dependencias. Utiliza el sistema de archivos para almacenar los datos y puede arrancarse como un servicio único, sin necesidad de bases de datos ni otros componentes pesados.

Radicale puede instalarse de varias maneras. Una muy directa es usar Docker, levantando un contenedor con una imagen preparada que exponga el puerto 5232 y montando volúmenes para la configuración y los datos. Por ejemplo, podrías tirar de una imagen que mapee /srv/radicale/config y /srv/radicale/data para tenerlo todo organizado, con un fichero htpasswd para gestionar usuarios mediante hashes bcrypt.

Otra opción es instalarlo con pip en un sistema GNU/Linux, creando un entorno virtual de Python o usándolo directamente. Se suele instalar el paquete radicale (por ejemplo, con python3 -m pip install –upgrade radicale==3.*) e incluso extensiones como radicale_storage_decsync si quieres integrar DecSync. Después configuras el archivo config en ~/.config/radicale/, donde defines secciones como [server] (puertos y direcciones a las que escucha), [storage] (ruta del sistema de ficheros para colecciones y, opcionalmente, directorio DecSync) y [auth] (método de autenticación, fichero htpasswd, tipo de cifrado, etc.).

Una vez configurado, puedes arrancar el servidor con un comando como python3 -m radicale. Tras iniciar, accedes a la interfaz web de administración en http://localhost:5232/ (o la IP de tu servidor) con el usuario y contraseña definidos, y creas las colecciones de tipo “Addressbook” (para contactos) y “Calendar” (para calendarios). Cada colección tendrá su propia URL CalDAV o CardDAV que podrás usar desde DAVx⁵.

Radicale es especialmente interesante si buscas una sincronización local sin depender de Internet. Puedes correr el servidor en tu máquina o en un equipo de tu red local y usar DAVx⁵ en tu móvil conectado por WiFi para sincronizar agenda y calendario. La velocidad es muy buena y los datos nunca salen de tu red, lo que refuerza tanto la privacidad como la autonomía respecto a servicios externos.

sincronizar Samsung Galaxy Tab con PC o Mac
Artículo relacionado:
Sincronizar Samsung Galaxy Tab con PC o Mac: guía completa, métodos y trucos

Sincronización local y combinaciones con Thunderbird, DecSync y Syncthing

Hay escenarios en los que ni siquiera quieres depender de un servidor externo permanente; prefieres algo muy local y bajo tu control. Una combinación interesante es la formada por Thunderbird, Lightning, SOGo Connector, Radicale, DAVx⁵ y, opcionalmente, DecSync y Syncthing para sincronizar archivos.

En el escritorio, Thunderbird (muy usado en distribuciones como Deepin) puede gestionar tanto correo como calendarios y contactos. El complemento Lightning añade soporte de calendario en formato CalDAV y el conector SOGo permite manejar libretas de contactos mediante CardDAV. Así, apuntando Thunderbird a las URLs que expone Radicale, tendrás en tu ordenador la misma agenda y calendario que en el móvil.

Si añades DecSync a la mezcla, puedes hacer que tus datos de calendario y contactos se guarden en una carpeta local (por ejemplo, ~/.local/share/decsync) y luego usar Syncthing para replicar esos ficheros entre varios dispositivos sin necesariamente pasar por una red remota. Para ello se instala el módulo radicale_storage_decsync, se configura la sección [storage] de Radicale para usarlo, y se crea una carpeta decsync donde se almacenarán los datos.

En Android puedes recurrir a DAVx⁵ para conectarte a Radicale cuando estés en la misma red WiFi o utilizar aplicaciones como DecSyncCC para manejar la carpeta DecSync compartida por Syncthing. De este modo, la sincronización se basa en ficheros replicados y no en peticiones CalDAV/CardDAV en tiempo real, lo cual puede resultar muy robusto en entornos sin conectividad constante.

Sincronización con Zimbra, EGroupware y otros servidores groupware

Además de Nextcloud y Radicale, hay servidores groupware completos como Zimbra o EGroupware que soportan CalDAV y CardDAV y que se integran perfectamente con DAVx⁵. Esto es especialmente útil en organizaciones que ya usan estas plataformas para correo, calendarios compartidos y contactos corporativos.

Con Zimbra, el flujo típico en DAVx⁵ consiste en crear una nueva cuenta seleccionando la opción de “Entrar con una URL y un nombre de usuario”, introducir la URL de acceso a Zimbra (normalmente proporcionada por el proveedor de correo o administrador del sistema), el usuario de Zimbra y la contraseña. Tras validar, asignas un nombre a la cuenta y DAVx⁵ listará las libretas CardDAV disponibles para que selecciones cuáles sincronizar en el teléfono. Después pasas a la pestaña de calendarios (CalDAV), escoges los que quieres traer y activas la sincronización.

En EGroupware el planteamiento es parecido. La plataforma permite sincronizar clientes de escritorio como Thunderbird, EM Client o clientes de Mac mediante CalDAV y CardDAV. Normalmente solo necesitas la URL de acceso a EGroupware, tu nombre de usuario y la contraseña. En la propia configuración de EGroupware se determina qué datos se sincronizan para cada tipo de cliente, y luego DAVx⁵ se encarga de hacer de puente con Android.

Problemas frecuentes al sincronizar con DAVx⁵ y cómo abordarlos

Aunque DAVx⁵ está bastante pulido, es habitual que al principio aparezcan problemas típicos de configuración, sobre todo al integrar con Nextcloud u otros servidores DAV. Uno de los más comentados es el de usuarios que ven la cuenta y los calendarios listados en la app de calendario, pero no aparecen las entradas del calendario.

En estos casos, hay varios puntos que conviene revisar. Lo primero es asegurarse de que DAVx⁵ tiene todos los permisos necesarios concedidos en Android: acceso a contactos, a calendario y a almacenamiento si hace falta. Después es importante confirmar que en la configuración de la app de calendario (por ejemplo, Google Calendar) están activos y visibles los calendarios de la cuenta DAVx⁵. A veces aparecen, pero están desmarcados.

Otro aspecto es verificar que la URL utilizada en DAVx⁵ es la correcta y apunta al endpoint DAV apropiado. En Nextcloud, por ejemplo, la ruta suele ser /remote.php/dav. Si te equivocas de URL o usas una dirección parcial, el servidor podría no exponer las colecciones adecuadamente y la app mostraría comportamientos extraños.

Cuando se intenta usar aplicaciones como ICSx⁵ (para suscribirse a calendarios ICS unidireccionales) hay que tener claro que no sirve la misma URL que para CalDAV. ICSx⁵ espera una dirección que apunte a un fichero .ics concreto, no a la raíz DAV. Si introduces la URL general del servidor Nextcloud, por ejemplo, recibirá datos que no sabe interpretar y mostrará errores del tipo “No se pudo analizar”.

Si, a pesar de todo, la sincronización no avanza, puede ser útil revisar los registros del servidor (logs de Nextcloud, Radicale, etc.). No obstante, es frecuente que, si no hay errores de autenticación o de ruta, no aparezcan mensajes relevantes, lo cual hace más difícil encontrar el fallo. En el caso de Radicale, existe un comando python3 -m radicale –verify-storage que permite verificar el estado del almacenamiento y detectar posibles inconsistencias.

Ultimas consideraciones

Por último, recuerda que la sincronización no siempre es inmediata: si el intervalo está configurado a varios minutos y no has forzado un refresco manual, puede parecer que no se actualiza nada cuando en realidad solo estás esperando al próximo ciclo. En los ajustes de DAVx⁵ puedes acortar el intervalo o mandar sincronizar a mano cuando lo necesites.

sincronizar archivos windows y android con smb
Artículo relacionado:
Cómo sincronizar archivos entre Windows y Android con y sin SMB

En general, montar tu propio ecosistema de contactos y calendarios basados en CalDAV y CardDAV con DAVx⁵, Nextcloud, Radicale u otros servidores requiere algo más de configuración inicial que usar Google de serie, pero el resultado merece la pena: mayor privacidad, más control sobre tus datos, independencia de plataformas cerradas y la posibilidad de combinar herramientas de escritorio, móvil y servidor de la forma que mejor se adapte a tu forma de trabajar. Comparte la información para que más usuarios conozcan del tema.