Skip to content

CO.4: Google Calendar Sync

Summary

Counselors connect Google Calendar from profile integrations. The current code supports per-user Google calendar integration and calendar event push/update/delete through the Google provider path.

Role

  • Primary: Counselor
  • Secondary: Google Calendar

Entry Point

  • URL: /profile
  • Profile tab: Integrations
  • Calendar toolbar prompts when not connected.

Preconditions

  • User is authenticated.
  • Google OAuth configuration is available.

Steps

  1. Counselor opens profile integrations or calendar connect prompt.
  2. Counselor starts Google Calendar connection.
  3. OAuth flow links the Google account.
  4. App stores calendar connection metadata.
  5. Calendar can include external events.
  6. Meeting scheduling/update/delete notifies the calendar sync path.

Diagram

Edge Cases

  • Disconnected calendar: Calendar still works for Compath events.
  • Provider failure: Sync failures are logged separately from the primary meeting action.
  • Implementation note: The current tree uses GoogleProvider.PushEvent/UpdateEvent/DeleteEvent; a google_relay.go file is not present.

Current Implementation Notes

  • Frontend: frontend/src/features/calendar-sync/components/integrations-tab.tsx, frontend/src/features/calendar/components/calendar-connect-prompt.tsx
  • Backend: backend/internal/calendar/google_provider.go

Screenshot Status

  • Not captured.