WorkestraDocs
PlatformCalendar & Scheduling

Mutual Availability

When the invitee is logged in to the same workspace, overlay their calendar on yours — find shared free time without a poll.

When two people in the same Workestra workspace need to find a meeting time, the standard public booking page treats one of them like a stranger. Mutual availability fixes that: if the invitee is logged in to the same workspace as the host, their calendar busy intervals are overlaid on the booking page, and only mutually free slots are highlighted.

It's a small affordance, but it eliminates the most common reason booking links get abandoned by colleagues — "this slot looks free for you but I have something then."

Mutual availability overlay

Screenshot needed — /book/<slug> with a logged-in workspace invitee, showing green dots on mutually-free slots and grey dots on slots only the host is free

How it works

When a logged-in workspace user opens /book/<slug>:

  1. Workestra detects the existing session via Supabase auth cookies.
  2. Confirms the user is a member of the same workspace as the link's host.
  3. Pulls the user's scheduling_calendar_events (their internal Workestra meetings) and their connected calendar's busy intervals.
  4. Merges the busy intervals into the slot picker.
  5. Slots free for both parties are styled normally; slots free only for the host are dimmed with a small "you have a conflict" tooltip.

The overlay is client-only and same-workspace only — anonymous visitors and visitors from other workspaces see the standard public booking page with no overlay. This is intentional: mutual availability is a logged-in-co-worker affordance, not a feature for inbound prospects.

What's overlaid

SourceUsed for overlay?
Invitee's scheduling_calendar_events (their Workestra meetings)Yes
Invitee's connected Google or Microsoft calendarYes
Invitee's PTO from People (the bridge)Yes — same bridge that hosts use
Invitee's FSM dispatchesYes
Invitee's focus blocksYes
Invitee's planning allocationsYes
Other workspace members' calendarsNo — this is invitee-only

So a logged-in invitee sees a slot as conflicted if they personally are busy then — for any reason.

What it doesn't do

  • Doesn't bypass host availability rules. The host's working hours, buffers, min-notice, max-days-ahead all still apply. The overlay narrows further; it doesn't widen.
  • Doesn't require login to use the page. Anonymous visitors get the standard flow. Mutual availability is opt-in by virtue of being logged in.
  • Doesn't auto-pick a slot. It just highlights which ones work for both. The invitee still picks.
  • Doesn't hydrate on the server. The overlay is computed client-side after auth detection. SSR returns the standard page without overlay; CSR adds it on mount. There's no flash-of-unstyled-content because the overlay is purely additive (greyed-out indicators).

Across workspaces

When a Workestra user from workspace A books on a link in workspace B, the overlay is off. The two workspaces are isolated by RLS — their session can't query the other workspace's calendar without an explicit cross-workspace permission grant, which doesn't exist for ad-hoc public bookings.

If you need cross-workspace mutual availability (e.g. you're booking a partner organization's link), the standard fallback is a Meeting Poll.

When you'd use it vs. a meeting poll

SituationUse mutual availabilityUse a poll
1:1 with a co-workerYesOverkill
Small team meeting (3–5 people) where everyone's in the workspaceMutual availability isn't quite enough — only shows the inviter's own conflictsYes
External guest involvedWon't work — overlay is workspace-onlyYes
Booking with a known co-worker on a recurring 1:1YesOverkill

The rule of thumb: if exactly one person is the invitee and they're in your workspace, mutual availability is faster.