🚀 6.8 Recursos da Calendar API v3
A Google Calendar API v3 é baseada em recursos REST. Para o BoaViagem, focaremos nos dois pilares principais: Calendários (onde os dados residem) e Eventos (a representação de uma viagem na agenda).
Principais Recursos
- CalendarList: Uma coleção de calendários que o usuário tem acesso (Principal, Feriados, Trabalho).
- Events: A coleção de compromissos dentro de um calendário específico.
- Anotações e Cores: Metadados que ajudam a categorizar as viagens visualmente.
Estrutura de um Evento (Java 17)
Um evento é composto por resumo, descrição, e horários de início/fim. No Java 17, mapeamos isso para o objeto Event:
var evento = new Event()
.setSummary("Viagem para " + destino)
.setDescription("Viagem cadastrada pelo App BoaViagem")
.setStart(new EventDateTime().setDateTime(new DateTime(dataInicio)))
.setEnd(new EventDateTime().setDateTime(new DateTime(dataFim)));O Fluxo de Gravação
Para salvar uma viagem, o processo segue a hierarquia:
- Identificar o ID do Calendário: Geralmente
"primary"para a agenda principal do usuário. - Construir o Evento: Preencher os dados a partir do banco de dados Room.
- Executar o Insert: Enviar via rede e tratar a resposta.
graph TD A[Room Database] -->|Busca Viagem| B[ViagemRepository] B -->|Cria Objeto Event| C[CalendarService] C -->|Executa insert| D{Google Calendar API} D -->|Sucesso| E[Notificação/UI] D -->|Erro| F[Log/Aviso ao Usuário]
IMPORTANT
IDs e Sincronização: Ao criar um evento, o Google retorna um
idúnico. Uma Engenharia Premium armazena esse ID no banco local (Room) na colunagoogle_event_id. Isso permite que você atualize ou remova o evento na agenda se a viagem for alterada no app.
TIP
Utilize o Timezone correto (
Timezone.getDefault()) ao configurar oEventDateTime. Viagens registradas com fuso horário incorreto aparecerão em horários fantasmas na agenda do usuário.