The working day
Two people can take the same slot, and usually do.
Because availability was calculated when the page loaded, and the page has been open in a tab since lunchtime. The second booking wins, or both are accepted, and somebody finds out at the meeting.
It is a race, and races are won with a lock, not with a faster query.
Four shapes
A group link and a collective link are not the same arithmetic.
One to one, group, collective, round robin. They differ in what "free" means, and each of the four computes it differently rather than sharing one approximation.
The collective one carries the refusal worth knowing about: a host whose calendar is not connected is refused when the link is set up, because an unconnected calendar contributes no busy time and would therefore read as always free — quietly making the whole link meaningless.
- One to oneOne host. A booking anywhere on the link blocks them everywhere on it.
- GroupOne host, the slot stays open to a cap, and the page shows how many have booked.
- CollectiveEveryone must be free or the slot disappears — and a host with no connected calendar is refused up front, because an unconnected calendar reads as always free.
- Round robinWhoever was booked least recently on this link, ties broken by priority, anyone busy skipped.
- Booking takes a lock, then checks again —
The slot picker is a hint. At the moment somebody presses confirm, the availability for that exact slot is recomputed and the host re-chosen. Losing bookers are told the slot went, rather than being accepted into a conflict.
- Buffers apply on both sides —
Slots step by the meeting plus the buffer after it, and the conflict check widens the candidate by the buffer before it as well.
- A closed day is written explicitly —
So an empty schedule means "use the defaults" rather than "available never" — an ambiguity that otherwise bites once and confusingly.
- The daily cap holds within one response —
A day capped at eight never offers twelve, because the count is tracked as the slots are produced.
- A bad timezone falls back rather than failing —
Nobody's booking page breaks because of a malformed setting.
After the meeting
The recording can be attached weeks later, and the bot can join instead.
Every booking mints a private link for attaching the recording, valid for a month after the meeting ends — long enough for somebody who forgot on the day to find the file later. The upload goes straight from the browser to storage; no bytes pass through us.
Or the bot joins. It appears in the participant list under its own name, so nobody is recorded without seeing that it is happening, and it records and uploads on its own. Because it knows which tile was speaking, the transcript comes back with the participants' actual names rather than "speaker one".
- Booking against a record logs the meeting —
And cancelling the booking marks that meeting cancelled rather than deleting it, so the history reads correctly.
- The attach link is single use —
And the whole thing is optional, per link.
- After three failures the bot stops retrying itself —
An administrator can still retry by hand. Automation that gives up is better than automation that keeps joining.
›Which conferencing tools?
The bot joins the two major meeting platforms. A booking can carry any location; the bot is only offered where it can actually join.
›Can somebody reschedule or cancel their own booking?
The link's page handles the booking. A cancelled booking marks the logged meeting as cancelled rather than removing it from the timeline.
›Do I need a booking link to record a call?
No. A recording can be uploaded directly, a transcript file can be parsed, and outbound dialled calls are captured by the dialler.