Calendar & Scheduling 8 min read

How Google Calendar Conflict Detection Works in Meetario

Why Conflict Detection Is Harder Than It Looks

On the surface, checking whether a time slot is free sounds simple: look at the calendar, see if anything is there. In practice, accurate conflict detection has to account for multiple calendars per user, buffer time around meetings, different timezones for host and guest, all-day and recurring events, and the possibility that a slot which was free a second ago has just been booked by someone else. Meetario was built specifically to handle this complexity so that hosts never have to double-check their calendar manually.

How Meetario Reads Free/Busy Data from Google Calendar

When a booking page loads, Meetario calls the Google Calendar API to retrieve busy periods for every calendar the host has selected for conflict checking. Rather than pulling full event details (titles, descriptions, guest lists), Meetario primarily requests free/busy data — start and end times marked as busy — which is faster to retrieve and keeps sensitive event details private. This busy list is then merged with the host availability rules (working hours, minimum notice, booking window) to produce the final set of open slots shown to the guest.

The Conflict-Checking Pipeline, Step by Step

  1. Load availability rules — Meetario starts with the recurring weekly schedule configured on the event type (for example, Monday to Friday, 9 AM to 5 PM).
  2. Generate candidate slots — Based on the event duration, Meetario slices the available windows into bookable slots (for example, every 30 minutes).
  3. Query connected calendars — For every calendar selected in the integration settings, Meetario fetches busy periods for the relevant date range.
  4. Remove conflicting slots — Any candidate slot that overlaps a busy period, even partially, is removed from the list.
  5. Apply buffers — Configured buffer time before and after existing events is treated as busy, even though there is technically no event there.
  6. Convert to guest timezone — The remaining open slots are converted from the host timezone to the timezone Meetario detects (or that the guest selects) before being displayed.

Multi-Calendar Conflict Checks

Many people split their life across multiple Google calendars: a work calendar, a personal calendar, and sometimes a shared team calendar. Meetario checks every calendar you mark as "conflict checking" for that account, not just the primary one. A busy block on your personal calendar blocks the slot on your booking page exactly the same as a busy block on your work calendar. This is essential for anyone who, for example, keeps school pickup times or personal appointments on a separate calendar from work meetings — see our guide on managing multiple Google calendars for how to configure this.

For team-based event types (round robin, collective, or group), Meetario performs this same free/busy check independently for each connected team member, then combines the results according to the booking type rules. Our guide on team scheduling with Google Calendar covers how that aggregation works in detail.

Buffer Times Explained

A buffer is padding time around a meeting that should count as unavailable even though no calendar event technically exists there. For example, a 15-minute buffer before and after each meeting means back-to-back Google Calendar events do not result in back-to-back Meetario bookings — there is always breathing room to grab water or prepare notes. Buffers are configured per event type and applied during the "remove conflicting slots" stage of the pipeline described above, treating the padded window exactly like a real calendar conflict.

Timezone Conversion Logic

Timezones are one of the most common sources of scheduling errors, and Meetario handles conversion at multiple points:

  • Host timezone — Availability rules are stored and evaluated in the timezone set on the host user profile.
  • Calendar event timezone — Google Calendar events include their own timezone metadata, which Meetario normalizes to UTC internally before comparing against availability windows.
  • Guest timezone — The booking page detects the visitor browser timezone (or lets them pick one manually) and displays all times converted for their local clock.

Because every time value is normalized to a common reference internally, a host in New York and a guest in Tokyo will both see accurate, correctly converted times without either side needing to do timezone math.

Handling All-Day and Recurring Events

All-day events (like "Out of Office" or a multi-day conference) are treated as busy for the entire day in the host timezone, so no slots are offered during that period. Recurring Google Calendar events (a weekly standup, for instance) are expanded into their individual occurrences by the Google Calendar API before Meetario reads them, so each occurrence is checked independently — a change to one instance of a recurring meeting does not silently affect conflict checking on other instances.

Real-Time vs Cached Availability

Meetario queries Google Calendar live when a booking page is loaded and again immediately before a booking is confirmed. This double-check matters: if a guest has a page open for several minutes while deciding on a time, and another meeting gets added to the host calendar in the meantime, the second check catches that conflict before the booking is finalized rather than after.

Edge Cases Meetario Handles

  • Simultaneous bookings — If two guests attempt to book the same slot at nearly the same moment, only the first confirmed request succeeds; the second is rejected with a message to pick another time.
  • Declined or tentative events — Events marked as "tentative" in Google Calendar are still treated as busy by default, since a tentative meeting can still become confirmed.
  • Calendar disconnection mid-session — If a Google Calendar token expires between page load and booking submission, Meetario surfaces an error rather than silently allowing an unchecked booking.

Quick Start / Next Steps

  • Connect Google Calendar from /app/integrations if you have not already — see our guide on connecting Google Calendar for the full walkthrough.
  • Select every calendar that should count toward conflict checking, not just your primary one.
  • Set buffer times on each event type to build in preparation and transition time.
  • Confirm your profile timezone is correct, since it is the baseline every conflict check is measured against.

Understanding this pipeline is useful even if you never touch a setting, because it explains exactly why a slot is or is not available — Meetario is not guessing, it is running a precise, real-time comparison against your actual Google Calendar data.

Ready to try Meetario?

Create your free booking page and start accepting meetings in minutes. No credit card required.

Start for Free