Integration of a calendar and booking
The appointment belongs to the file, not the Calendly link
We sync Google Calendar, Outlook, Cal.com or Calendly with your business. Availability, time zones, cancellation: the calendar is no longer the only truth.
- Calendar sync in production
- event ownership decided
- time zones accepted
What is calendar integration and when should you have it built?
Integrating a calendar means making availability, events and appointments live in your application rather than in a calendar tab. Google Calendar and Outlook hold the work agenda. Calendly and Cal.com hold booking. You have the connector built when a booked slot must create the job, when a reminder must leave from your product, or when two calendars step on each other. The query that carries the category is “sync Google Calendar”, not one more OAuth tutorial.
The calendars we integrate

Google Calendar
Sync a Google Calendar: events, availability, change webhooks.

Microsoft Outlook
The Microsoft Graph calendar, often already next to Microsoft 365.

Calendly
Booking, to link to your file rather than a bare link.

Cal.com
Our own case: booking and reminder webhook, in production on this site.
What creates the double booking
The calendar holds slots. Until the event has an owner, the link in the email and the business file diverge.
We have the same appointment twice
An event key and a precedence rule. Sync updates, it does not duplicate.
The slot is taken, the file does not exist
The booking creates the job, ticket or intervention. The calendar is no longer a silo.
The availability shown is wrong
We read real calendars (busy, out of hours, buffers). A slot already taken no longer appears online.
The token expires and nothing is created any more
Refresh, revocation, reconnection prompt. A disconnected calendar is visible before Monday morning.
What each calendar actually involves

Cal.com
Our real caseA real proof case: we use it on fragments-studio.com (booking components, reminder webhook). The page documents a lived integration, not one more tutorial. Useful if you want the same scheme: booking, webhook, follow-up, without gluing an opaque SaaS onto the business.
- In production on our site
- Reminder webhook
- Scheme reproducible at yours

Calendly
BookingA booking tool. The integration is judged on the event created (invitee, slot, cancellation) and what it triggers in your file. A Calendly link pasted in an email is not a connector.
- Booking to file
- Cancellation and reschedule handled
- Scope settled at scoping

Google Calendar
Most requestedVolume sits on “sync Google Calendar”, more accessible than “google calendar api”. Events, busy, change notifications: the connector carries your business identifier on the event. OAuth, scopes and revocation are scoped with your users, not hard-coded in a demo.
- Two-way sync scoped
- Busy for availability
- Business identifier on the event

Microsoft Outlook
Microsoft GraphThe calendar via Microsoft Graph, often in the same tenant as the rest of Microsoft 365. No invented routes: scoping fixes calendars concerned, permissions and the same token problem as Google. The two combine when your teams are mixed.
- Graph for the Outlook calendar
- Permissions per calendar
- Token and reconnection scoped
Four syncs the field recognises
Two-way for field teams
The phone and the business see the same slot. A change on one side updates the other.
Booking page that creates the job
Cal.com or Calendly writes into the file. The calendar is no longer the SI.
Buffers and travel time
Busy rules live in the product. A “free” slot is no longer a trap.
Cancellation that frees and notifies
The slot becomes free again. The channel (mail, SMS) comes from a policy; it is not the subject of this page.
Ops, field, assistant, customer: who owns the event
We do not “sync Google”. We decide the event owner and the conflict rules.
Ops stop gluing two calendars
One event key, one priority. Sync updates, it does not duplicate.
The field arrives in the right zone
We accept time zones as a business case. A meeting “at 2 pm” with no zone is a bug.
The assistant is no longer the event bus
Auth scopes are minimal. We do not ask for the whole personal calendar for a job.
The customer sees a real cancellation
Cancelled in the app, freed in the calendar. No more no-show born from a missed sync.
What we have shipped, and why it transfers here
The method a calendar sync forces
Event ownership
Creator, priority, stable event key.
Deliverable: ownership ruleTime zones and conflicts
Time zones, busy/free, buffers, collisions.
Deliverable: occupancy rulesReminder policy
Delays, channels, who cuts the reminder.
Deliverable: reminder policyCancellation cascade
Cancellation, no-show, reschedule: three distinct cascades.
Deliverable: cancellation cascadeWhat nobody tells you before you sign
Two-way sync creates loops
If both sides write title and time without precedence, they overwrite each other. One source per field, set at scoping.
The token is not eternal
Revocation, expiry, overly wide scopes: the reconnection journey is a deliverable, not an oversight.
Busy is not “the whole calendar”
Private calendars, out of hours, buffers: misread, they show ghost slots or block too much.
A booking tool is not a CRM
Calendly or Cal.com create an event. The business file is created by your connector. Treating the booking tool as a CRM leaves missions without an owner the moment someone deletes the event.
What we measure on a calendar project
Calendar integration: your questions
Three steps. First freeze the direction: the application creates the event, the calendar is read for busy, or both, field by field. Then wire OAuth with minimal scopes, change notifications, and an event key so you do not duplicate. Finally test reschedule, cancellation and revoked token. The difficulty is not displaying a calendar, it is not booking the same slot twice.
Reading busy to show availability costs far less than a multi-calendar two-way sync with file creation on booking. OAuth and reconnection weigh as much as writing the event. We scope the perimeter up front and give a firm estimate.
Often no: your teams are mixed. We isolate the provider behind an events interface. Scoping fixes both if needed. Microsoft Graph also comes in for Outlook. The choice is made on who holds the work calendar, not on the most-read docs.
Because it is a real case for us: booking and reminder webhook in production on this site. The page is proof and a scheme, not a keyword race. If you want the same assembly, we reproduce it in your product.
Yes, by wiring the event to your SMS API (Twilio, Brevo) rather than hoping the calendar tool will do it. The reminder becomes a measurable journey, with consent and legal window. That is scoped with the SMS category, not as a hidden calendar setting.
Who owns the appointment, in your stack?
30 minutes to set Google vs Outlook vs the booking tool, conflicts, and what a cancellation must free.
Discuss my calendar project


