Apps Rosario por Matelabs

Funcionalidad · Matelabs

Integración con Google Calendar: sincronizar turnos y eventos

Por Maximiliano Rossi · Publicado el

Muchos profesionales ya viven en su calendario: ahí anotan reuniones, viajes y compromisos personales. Si además atienden turnos desde una app, lo lógico es que no tengan que mirar dos agendas. La integración con Google Calendar hace que los turnos o eventos de la app aparezcan en el calendario de la persona y, según cómo se diseñe, que lo que ocurre allí también se refleje en la app. Suena directo, pero tiene decisiones de permisos, de sentido de la sincronización y de conflictos.

Qué se puede sincronizar

  • Turnos confirmados, que se crean como eventos en el calendario del profesional.
  • Modificaciones y cancelaciones, que actualizan o eliminan el evento correspondiente.
  • Disponibilidad: leer los eventos del calendario para marcar esos horarios como ocupados en la app.
  • Invitaciones al cliente, para que reciba el evento en su propio calendario.

Permisos y OAuth

Para operar sobre el calendario de alguien, la app necesita su autorización. Esto se resuelve con OAuth: la persona inicia sesión con su cuenta de Google, ve una pantalla que detalla qué acceso se solicita y lo acepta o no. La app nunca recibe la contraseña de Google; recibe credenciales que representan ese permiso y que la persona puede revocar cuando quiera. Algunos puntos a considerar:

  1. Pedir solo lo necesario. Hay permisos acotados (por ejemplo, gestionar eventos) y otros más amplios. Un acceso mínimo genera más confianza.
  2. Cuenta de desarrollador y proyecto en Google. Se necesita configurar una aplicación en la plataforma de Google y, según los permisos solicitados, puede exigirse un proceso de verificación. Verificá los requisitos vigentes en la documentación oficial.
  3. Guardar los tokens con cuidado, en el servidor y no en el dispositivo; ver seguridad de datos.
  4. Manejar la revocación: si la persona retira el permiso, la app debe notarlo y avisar que la sincronización se detuvo.

Un sentido o dos

Un sentido (app hacia Google)Dos sentidos
Qué haceLa app escribe los turnos en el calendario; nada vuelveLos cambios en cualquiera de los dos lados se reflejan en el otro
ComplejidadModeradaAlta
Fuente de verdadLa appHay que definirla evento por evento
Riesgo principalAlguien edita el evento en Google y la app no se enteraConflictos, duplicados y cambios en cadena
Útil paraQue el profesional vea sus turnos en su teléfonoQue los compromisos personales bloqueen horarios en la app

Una opción intermedia: la app publica los turnos hacia Google, y lee el calendario únicamente para saber cuándo hay ocupación, sin modificar eventos ajenos. Resuelve la necesidad más común con menos riesgo.

Conflictos y casos borde

  • Alguien mueve o borra en Google un evento creado por la app. ¿Se reprograma el turno, se cancela o se ignora el cambio?
  • Un evento personal se superpone con un turno ya reservado.
  • Eventos de todo el día, recurrentes o privados: ¿bloquean agenda? Hay que decidir cómo interpretarlos.
  • Zonas horarias distintas entre el calendario y la agenda del negocio.
  • Varios calendarios en una misma cuenta: hay que elegir cuál se usa.
  • Límites de uso de la API de Google, que pueden retrasar la sincronización con muchos usuarios.
  • Fallas temporales: la sincronización debe reintentar sin duplicar eventos.

La lógica de turnos que estos eventos reflejan se describe en reservas y agenda; las demás consideraciones de conexión con servicios externos están en API e integraciones.

Referencia: Mateturnos

En el sitio público de Mateturnos, el producto propio de Matelabs, se indica que la integración con Google Calendar forma parte de su plan Premium. Sirve como ejemplo de que es una función que suele ofrecerse como un extra, no necesariamente en la primera versión de una agenda; consultá en su sitio las condiciones vigentes.

Impacto en el alcance y el costo

La escritura en un solo sentido es relativamente acotada. La lectura de disponibilidad suma lógica de interpretación de eventos. La sincronización bidireccional es la más costosa por la cantidad de escenarios a probar. A eso se suma el trabajo de configuración en Google y, si corresponde, la verificación de la aplicación. Es común también querer soportar otros calendarios además de Google, lo cual multiplica el esfuerzo.

Riesgos habituales

  • Prometer sincronización «en tiempo real» sin validar los retrasos posibles.
  • Solicitar permisos excesivos y perder la confianza del usuario.
  • Duplicar turnos por reintentos mal controlados.
  • Depender de reglas de Google que pueden cambiar.

Qué preguntar antes de incluirla

  1. ¿Quién necesita ver los turnos en su calendario: el profesional, el cliente o ambos?
  2. ¿Alcanza con enviar los turnos o también hay que leer lo que ya hay?
  3. ¿Cuál es la fuente de verdad si hay un desacuerdo?
  4. ¿Cuántas cuentas se conectarían?
  5. ¿Algún cliente usa otro calendario?

Siguiente paso

Si tu agenda necesita convivir con Google Calendar, contanos cómo trabajás hoy en el formulario de contacto y vemos qué nivel de sincronización tiene sentido.

Seguí leyendo