Connecting Google & Microsoft Calendars
Enable your AI agent to check live availability and book appointments directly into your calendar during phone or web calls on NovaReps.
Updated Oct 28, 2026 · 10 min read
On this page
- Supported Calendar Providers
- Connecting Google Calendar
- Connecting Microsoft Calendar
- How do I show my own brand when connecting Google or Outlook?
- Set up your own Google app
- Set up your own Microsoft app
- What happens to calendars I already connected?
- What do the error messages mean?
- Linking a Calendar to an Agent
- Booking with several people (Providers)
- Changing an existing booking, and invite emails
- Related Articles
- Booking texts: who gets them and what they say
Supported Calendar Providers #
- Google Calendar (Google Workspace and @gmail.com accounts)
- Microsoft Calendar (Outlook, Office 365, and Microsoft 365 business accounts)
Connecting Google Calendar #
- Navigate to Calendars -> Google Calendar in the dashboard sidebar (
/dashboard/google-calendars). - Click Connect Google Calendar.
- Authenticate with your Google account and grant calendar read/write permissions.
- Once redirected back, choose your Primary Calendar for availability checks and event creation.
- Set your working hours and appointment slot duration (e.g., 30 minutes).
Connecting Microsoft Calendar #
- Navigate to Calendars -> Microsoft Calendar in the dashboard sidebar (
/dashboard/microsoft-calendars). - Click Connect Microsoft Account.
- Sign in to your Microsoft account and approve access permissions.
- Select your target calendar folder.
- Click Save Settings.
How do I show my own brand when connecting Google or Outlook? #
You can connect calendars through your own Google or Microsoft app instead of the default connector, so the sign-in screen shows your app name and logo. It is available when your plan includes Own Google/Microsoft Calendar App; if it is not included, the Your own app page under Calendars says so. Resellers who have it also cover their managed clients, who then see the reseller's app name.
Set up your own Google app #
- In the Google Cloud console, create a project and open APIs & Services -> OAuth consent screen. Add your app name and logo.
- Choose the audience. Internal is for a single Google Workspace organization: only people in your Workspace can sign in and Google does not require verification. External lets anyone sign in, but Google must verify the app before it can be used by the public.
- Enable the Google Calendar API, then go to Credentials -> Create credentials -> OAuth client ID and choose Web application.
- In NovaReps, open Calendars -> Calendar App Keys (resellers: White Label -> Calendar App Keys) and copy the Redirect URL for Google. Paste it under Authorized redirect URIs in Google.
- Copy the Client ID and Client secret from Google into Use your own Google app and click Save.
- Open Google Calendar under Calendars and click Connect Google Calendar. The status line should read "Sign in uses your own Google app".
Set up your own Microsoft app #
- In the Microsoft Entra admin center, open App registrations -> New registration and enter your app name.
- Choose the account type. Single tenant allows only users in your own organization. Multi-tenant lets users from any organization sign in.
- Under Redirect URI, choose Web and paste the Microsoft Redirect URL shown on Calendars -> Calendar App Keys in NovaReps.
- Under API permissions, add the delegated Microsoft Graph permissions
Calendars.ReadWrite,offline_access,openid,profileandemail. - Under Certificates & secrets, create a client secret and copy its value (not the secret ID).
- Paste the Application (client) ID and the secret into Use your own Microsoft app and click Save, then connect from Microsoft Outlook under Calendars.
What happens to calendars I already connected? #
Saving or removing your own app does not disconnect anything. Each existing calendar keeps using the app it was connected with until you reconnect it. If you remove an app that calendars were connected with, those calendars stop refreshing and ask you to reconnect.
What do the error messages mean? #
- "Your Google app rejected the sign in. Check the Client ID, Client secret and redirect URL." (or Microsoft): the app was found but the provider refused it. Re-copy the Client ID and secret, and make sure the redirect URL matches exactly. The default connector is never used as a backup.
- "Your own Google app cannot be used right now.": your plan no longer includes the feature, or the saved Client ID or secret is empty. Fix it on Your own app.
- "Calendar connection is unavailable right now. Please contact your provider.": the app your provider set up cannot be used at the moment. Contact your provider.
Linking a Calendar to an Agent #
After connecting your calendar account, enable it on your agent:
- Navigate to Agents and edit your agent.
- Open the Calendar Integration tab.
- Toggle Enable Calendar Booking to
ON. - Select your connected Google or Microsoft Calendar integration.
- Define booking rules (buffer time between meetings, advance notice requirements, timezone).
- Click Save Agent.
Booking with several people (Providers) #
If your plan includes multi-calendar routing, one agent can book with several people, each on their own calendar. Open the agent and go to the Appointments tab. Under Who can callers book with?, choose:
- One calendar: every booking goes on the single calendar you pick, with one set of booking rules.
- Several providers: each person has their own calendar and booking rules, and the AI chooses between them. The single calendar picker and the shared booking rules are hidden while this is selected. If your plan does not include it, this choice is greyed out.
When you switch to Several providers with an empty list, the calendar you had picked becomes the first provider, so you only need to add the others. Your existing bookings are not moved.
- Click Add provider and give the person a name, for example "Dr. Patel".
- Choose the calendar type (Google, Outlook or Cal.com) and then their calendar or Cal.com event type. The card shows whether that calendar is Connected or Needs reconnect, and links to the connect page when nothing is connected yet.
- In When to book this provider, write who they see, what for and what they do not handle, in a sentence or two (up to 300 characters). For example: "Child specialist. New patient visits and vaccinations. Not for adults." Leave out opening hours, prices and long bios. The AI reads these notes on every call. Days or times written here are guidance only: real limits come from the calendar and the booking rules.
- Open Booking rules on the card to set this person's appointment length, buffer, minimum notice and daily cap. New cards start with the values from your single calendar settings. For Cal.com, these are set on the event type in Cal.com instead. Business hours and holidays are the same for every provider.
- Each Google or Outlook calendar can belong to only one provider on an agent, so each person needs their own calendar. A calendar another provider already uses is greyed out. (Cal.com event types are managed in Cal.com, so they are not limited this way.)
- Under every calendar picker, in both modes, you will find a link to connect another calendar (or add an event type in Cal.com). If your plan's calendar limit is reached, it says so instead.
- Keep Active on. Turn it off to take someone out of the AI's choices without deleting them.
With one active provider, NovaReps books with that person and never asks the caller to choose. With several, the AI checks the chosen person's real availability and books on their calendar, and if the caller changes or cancels on the same call, it stays with that person. When more than one provider could suit the caller, the AI looks at all of them in one search and offers the earliest times across the ones that fit, then books with the person the caller picks. If no provider has a working calendar, the AI cannot book. If every provider is switched off but one still has a working calendar, the AI can still change or cancel appointments already booked with them, just not make new ones. To keep calls short, the AI stops searching after a number of lookups on one call and offers to transfer the caller to your office, or says your team will call back and takes a message. Your plan sets how many providers one agent can have, shown above the list. If your plan changes and no longer includes routing, the agent goes back to its single calendar on its own.
Changing an existing booking, and invite emails #
A caller can ask the AI to move or cancel an appointment. This works for a booking made on the same call, or for an upcoming booking made earlier from the same phone number. The AI finds it by the number the caller is phoning from, never by name or anything the caller says. If that number has several upcoming bookings, the AI asks which date. If none is found, or the call has no phone number (for example the website widget), the AI offers to take a message or transfer to the office.
With Google Calendar or Outlook, calendar invites are a per-agent switch. Turn on Email a calendar invite to the caller in the agent's Appointments tab and a question "What is your email address?" is added to your list under Custom Information to collect, marked mandatory. You can edit or reorder it like any other question. The AI asks for it, spells it back, and the invite is sent to that address by your connected calendar; later changes or cancellations are sent to them too. Turning the switch off removes that question. If you already have your own email question in the list, the switch uses it as it is and adds nothing. The switch only appears when the list is available (an inbound agent with lead capture on) and is off by default, so the AI does not ask for an email and the calendar sends nothing to the caller. Cal.com always asks for an email and sends its own confirmation, so the switch is not shown for it.
Related Articles #
Booking texts: who gets them and what they say #
Open the agent, go to Notifications, and turn on SMS Confirmations. Two switches then decide who is texted when an appointment is booked, rescheduled or cancelled:
- Text the caller sends a confirmation to the number the caller is calling from. If the caller asks to use a different number, the AI reads it back to confirm and uses that one instead. Web callers are asked for a number.
- Text my team sends a short alert to the Alert Mobile Number. Pick one of your account's verified numbers from the list. To add one, open your profile, go to My phone numbers, type the number, press Verify and enter the 6 digit code we text you: alerts only go to a verified number, so a typo never texts a stranger. Any team member can pick a number once it is verified. If the field is empty, alerts go to your account's main phone number.
You can turn on either one or both.
What the texts say:
| Event | Caller | Your team |
|---|---|---|
| Booked | Confirmed: Jan 10 10:30 AM EST w/ Dr. Patel. Reply STOP to opt out. | New: Jane Smith (+14155550100) with Dr. Patel on Jan 10 10:30 AM EST. |
| Rescheduled | Rescheduled: New time is Jan 12 2:00 PM EST w/ Dr. Patel. | Update: Jane Smith with Dr. Patel moved to Jan 12 2:00 PM EST. |
| Cancelled | Canceled: Appt w/ Dr. Patel on Jan 10 is canceled. | Canceled: Jane Smith (+14155550100) with Dr. Patel on Jan 10. |
Times are shown in your account time zone. When the agent books with several providers, the texts name the provider the appointment is with. With one calendar, the caller's text shows the agent's name and the team text leaves the name out.