¿Cómo sincronizar calendarios de gmail en davdroid 1.10.1.-gplay usando caldav en android 6.0.1?

Estoy tratando de sincronizar mis calendarios usando caldav en davdroid, usando las siguientes credenciales de cuenta:

"iniciar sesión con URL y nombre de usuario"

Donde la URL se basa en esta guía de google caldav-api sobre cómo usar caldav para Apple o Thunderbird:

https://apidata.googleusercontent.com/caldav/v2/calid/user https://apidata.googleusercontent.com/caldav/v2/calid/events

Donde calid se sustituye por mi ID de calendario de Google en forma:

<26-character long calender id>

o

<26-character long calender id>@group.calendar.google.com

Como se encuentra en la configuración del calendario de Google en:

https://calendar.google.com/calendar/r/settings/calendar/

He intentado ingresar las 4 combinaciones en davdroid y lo peculiar es que funciona para 1 calendario del cual aparezco como propietario en el enlace https://calendar.google.com/calendar/r/settings/calendar/ para eso calendar, pero no muestra los calendarios en davdroid para los calendarios para los que google calendar dice que está "suscrito".

Así que pensé que podría ser un problema de permisos. Así que hice un nuevo calendario de prueba para comprobar si ese era realmente el caso. Me aseguré de que ese calendario figuraba como "Propietario". Se agregó el calendario con las 4 opciones anteriores, pero nuevamente no mostró el calendario.

Después de revisar el calendario de prueba, noté que esto también se agregó como una suscripción en la que no aparezco como

email@gmail.com (Propietario)

Pero como:

email@gmail.com con un cuadro desplegable atenuado con "hacer cambios y administrar el uso compartido" al lado.

La sincronización del calendario del que soy propietario ya funcionaba antes de habilitar la api de google caldav, pero solo para asegurarme de que habilité la api de google caldav. No afectó el resultado de mis intentos hasta ahora.

Entonces, el primer paso es para este problema, creo, cómo crear un calendario que me incluya como propietario, también después de la creación.

Pero la pregunta principal es un procedimiento generalizado para describir una forma de agregar un calendario a davdroid para una sincronización bidireccional a la que está suscrita mi cuenta de Google (por ejemplo, un calendario compartido conmigo por otra cuenta de Gmail).

Si sabe cómo hacer el paso parcial, el procedimiento generalizado o detecta un error en mi intento/enfoque, hágamelo saber para que pueda adaptarme.

Respuestas (2)

El método actual de Google API/OAuth no es compatible con DAVdroid, pero aún es posible usando el formato obsoleto :

https://www.google.com/calendar/dav/[su nombre]@gmail.com/events nombre de usuario contraseña

Sin embargo, requiere el compromiso Permitir aplicaciones menos seguras: ACTIVADO en la configuración de seguridad de Google.

Sin embargo, los delegados no se sincronizan.

Probado en OnePlus 3t, Android 7.1.1, DAVdroid 1.10.1.1.

La solución es seleccionar el

"iniciar sesión con URL y nombre de usuario"

opción en davdroid.

Y luego pegue la opción de calendario completo como se especifica en la segunda opción de la ID de calendario en la "URL base":

<26 digit calendar id>@group.calendar.google.com

(Para calendarios importados que se convierte en: <32 digit calendar id>@IMPORT.calendar.google.com)

En:

https://www.google.com/calendar/dav/<emailaddress>/events

en la <emailadress>parte Flexible:

https://www.google.com/calendar/dav/<26 digit calender id>@group.calendar.google.com/events

(Para calendarios importados que se convierte en: https://www.google.com/calendar/dav/<32 digit calender id>@IMPORT.calendar.google.com/events)

Y rellenando <youremail>@gmail.comy <yourpassword>.

Notas:

  1. Cuando hace clic en iniciar sesión en Davdroid, lo lleva a una pantalla donde muestra su nombre de usuario, pero allí debe ingresar el Nombre del calendario en su lugar.
  2. El único calendario para el que esto no funcionará es el calendario heredado/no extraíble adjunto a su cuenta de Gmail.

Espero que ayude a cualquiera que no quiera una cuenta de Gmail completa en su teléfono Android para acceder a todos los datos de su teléfono, pero aún quiere sincronizar su aplicación de calendario.

Conclusión: Entonces la primera parte, sobre la propiedad del calendario, no es relevante. Incluso funciona con calendarios compartidos.

Nota: si ingresa la contraseña incorrecta, no dirá "credenciales no válidas", sino simplemente:

No se encontró ningún servicio caldav

EDITAR:

Aquí hay un archivo de Excel que semiautomatiza el proceso de obtener esas direcciones URL base del calendario e ingresarlas en Davdroid, ya que puede llevar bastante tiempo con más de 15 calendarios diferentes.

https://github.com/at-0/PublicCodeLibrary/tree/master/VBA/Google%20Davdroid%20calendar%20app%20sync