KiviCare Google meet telemed & woocommerce (Addon)
Integration Reference

Google Calendar API Usage & Scopes

This section is intended for developers and technical users who want to understand how KiviCare integrates with the Google Calendar API to enable Google Meet–based virtual consultations.


Google Calendar API Endpoint

KiviCare uses Google Calendar API v3 for all calendar and meeting-related operations.

Base API URL:
https://www.googleapis.com/calendar/v3/


Required OAuth Scopes

To ensure proper functionality, the following OAuth scope must be enabled in your Google Cloud Project:

  • https://www.googleapis.com/auth/calendar
    Required to create, update, retrieve, and delete Google Calendar events, including generating Google Meet conference links.

Core API Operations

1. Create Google Calendar Event with Google Meet
  • HTTP Method: POST
  • Endpoint:
    /calendars/primary/events?conferenceDataVersion=1
  • Handler Function:
    KCGMGoogleMeet::create_meeting()
  • Request Payload Includes:
    • summary (appointment title)
    • start and end (appointment time)
    • conferenceData (requests creation of a Google Meet link)

This request automatically generates a Google Meet session and associates it with the appointment.


2. OAuth 2.0 Token Exchange
  • HTTP Method: POST
  • Endpoint:
    https://oauth2.googleapis.com/token
  • Handler Function:
    KCGMGoogleMeet::handle_google_meet_authorization_callback()
  • Supported Grant Types:
    • authorization_code (initial login)
    • refresh_token (token renewal)

This process securely authenticates doctors and maintains continuous API access without repeated user interaction.


API Quotas & Rate Limiting

Google Cloud enforces usage quotas and rate limits per project.

  • Default Google API quotas are typically sufficient for most clinics.
  • KiviCare optimizes API usage by:
    • Caching access tokens
    • Automatically refreshing tokens when required
    • Reducing unnecessary authorization requests

Suggestions & Improvements

Your email address will not be published. Required fields are marked *