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."
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>:
- Workestra detects the existing session via Supabase auth cookies.
- Confirms the user is a member of the same workspace as the link's host.
- Pulls the user's
scheduling_calendar_events(their internal Workestra meetings) and their connected calendar's busy intervals. - Merges the busy intervals into the slot picker.
- 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
| Source | Used for overlay? |
|---|---|
Invitee's scheduling_calendar_events (their Workestra meetings) | Yes |
| Invitee's connected Google or Microsoft calendar | Yes |
| Invitee's PTO from People (the bridge) | Yes — same bridge that hosts use |
| Invitee's FSM dispatches | Yes |
| Invitee's focus blocks | Yes |
| Invitee's planning allocations | Yes |
| Other workspace members' calendars | No — 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
| Situation | Use mutual availability | Use a poll |
|---|---|---|
| 1:1 with a co-worker | Yes | Overkill |
| Small team meeting (3–5 people) where everyone's in the workspace | Mutual availability isn't quite enough — only shows the inviter's own conflicts | Yes |
| External guest involved | Won't work — overlay is workspace-only | Yes |
| Booking with a known co-worker on a recurring 1:1 | Yes | Overkill |
The rule of thumb: if exactly one person is the invitee and they're in your workspace, mutual availability is faster.
Read next
- Booking Links — the public page mutual availability layers onto
- Meeting Polls — for many invitees or external guests
- Availability Bridges — what feeds both the host's slot computation and the invitee overlay
Single-Use Links
A scoped, expiring URL tied to a specific contact and a specific booking link template — book once, link goes dead.
Managed Events
Admin-defined booking link templates with section locks, bulk assignment, and propagation — for organizations where consistency matters more than per-rep flexibility.