Documentation

Google Calendar Integration

Two-way synchronization between Odento Calendar and Google Calendar. Appointments created in Odento appear in Google Calendar and vice versa, keeping your personal and practice schedules aligned.

Overview

The Google Calendar integration uses OAuth 2.0 to securely connect your Google account to Odento. Once connected, Odento syncs appointments bidirectionally: new appointments in Odento are pushed to Google Calendar, and events created in Google Calendar are pulled into Odento. This ensures your schedule is always consistent across both platforms.

The integration supports multiple Google Calendar accounts per user — for example, a dentist who wants to sync their personal calendar and a shared clinic calendar. Each connected calendar can be configured independently with its own sync direction and filters.

OAuth 2.0 Security

Odento never stores your Google password. Authentication is handled by Google directly, and Odento receives a scoped access token that only permits calendar read/write operations.

Setup Guide

Step 1: Connect Your Google Account

  1. Navigate to Settings → Integrations → Google Calendar.
  2. Click Connect Google Calendar.
  3. You will be redirected to Google's consent screen.
  4. Sign in with your Google account and review the requested permissions.
  5. Click Allow to grant Odento calendar access.
  6. You will be redirected back to Odento. The integration status will show "Connected".

Step 2: Select Calendars to Sync

After connecting, Odento displays all calendars associated with your Google account (primary, shared, and subscribed). Select which calendars you want to sync:

  • Primary calendar: Your main personal calendar.
  • Shared calendars: Calendars shared with you (e.g., clinic calendar, family calendar).
  • Subscribed calendars: Public calendars you follow (e.g., holidays, sports).

Step 3: Configure Sync Settings

For each connected calendar, configure the following:

Screenshot — Setup Guide

  • Sync direction: Two-way (default), Odento to Google only, or Google to Odento only.
  • Event filter: Sync all events or only events matching specific criteria (e.g., only events tagged "Dental").
  • Visibility: Show event details (title, location, description) or mark as "Busy" for privacy.
  • Color mapping: Map Odento appointment types to Google Calendar colors.
  • Default reminders: Use Google Calendar's default reminders or override with Odento's.

How Two-Way Sync Works

Two-way sync uses Google Calendar's push notifications and incremental sync API to keep both systems updated in near real time. Here is how changes propagate:

Odento → Google Calendar

  • When an appointment is created, updated, or cancelled in Odento, the change is pushed to Google Calendar within seconds.
  • The Google Calendar event includes the patient name (or "Busy" if privacy mode is on), appointment type, chair location, and notes.
  • Changes made in Odento take precedence — if an event is modified in both systems simultaneously, the Odento version wins.

Google Calendar → Odento

  • Events created directly in Google Calendar are pulled into Odento as blocked time slots.
  • These events appear in Odento as "External" appointments — they block the calendar but are not linked to a patient record.
  • If you convert an external event to an Odento appointment, you can attach a patient and appointment type.
  • Events deleted in Google Calendar are removed from Odento's blocked time (but Odento appointments are not deleted).

Conflict Resolution

If an event is modified in both systems at nearly the same time, Odento's version takes precedence for Odento-linked appointments. For external events, the Google Calendar version takes precedence.

Configuration Reference

The full Google Calendar integration configuration:

Screenshot — Configuration Reference

{
  "connectedAccount": "dr.sharma@gmail.com",
  "calendars": [
    {
      "id": "primary",
      "label": "Personal",
      "syncDirection": "two-way",
      "visibility": "busy-only",
      "colorMapping": {
        "consultation": "#4285F4",
        "cleaning": "#0B8043",
        "root-canal": "#DB4437",
        "extraction": "#F4B400",
        "follow-up": "#7986CB"
      }
    },
    {
      "id": "clinic@group.calendar.google.com",
      "label": "Clinic Shared",
      "syncDirection": "odento-to-google",
      "visibility": "full-details",
      "colorMapping": {}
    }
  ],
  "defaultReminders": "odento",
  "syncInterval": "realtime",
  "timezone": "Asia/Kolkata"
}

Troubleshooting

Sync Not Working

If appointments are not syncing between Odento and Google Calendar:

Screenshot — Troubleshooting

  1. Check the integration status in Settings → Integrations → Google Calendar. If it shows "Disconnected", reconnect.
  2. Verify that the correct calendars are selected for sync.
  3. Check the sync log for error messages. Common errors include expired tokens (re-authenticate) or rate limits (wait and retry).
  4. Ensure the appointment is within the sync date range (default: past 30 days to future 365 days).
  5. If using a Google Workspace account, ensure calendar access is enabled by your administrator.

Duplicate Events

If you see duplicate events in Google Calendar, this usually means multiple Odento users have connected the same shared calendar. To fix this, only one user should sync to a shared calendar, or configure the sync direction as "Odento to Google only" for all but one user.

Token Expired

Google OAuth tokens expire periodically. Odento automatically refreshes tokens, but if you have revoked access or changed your Google password, you need to reconnect:

  1. Go to Settings → Integrations → Google Calendar.
  2. Click Disconnect.
  3. Click Connect Google Calendar and re-authenticate.

Need Help?

If you are still experiencing issues, contact our support team at support@odento.app or use the live chat in the dashboard.

Disconnecting

To disconnect the Google Calendar integration:

  1. Go to Settings → Integrations → Google Calendar.
  2. Click Disconnect.
  3. Confirm the disconnection.

Disconnecting immediately stops all sync operations. Odento deletes the stored OAuth tokens. Existing Odento appointments are not affected. To revoke Odento's access completely, also visit myaccount.google.com/permissions and remove Odento from the authorized apps list.

Was this page helpful?

Help us improve our documentation