Round-Robin Team Links
Share one URL across a team — Workestra rotates through your reps, skipping anyone out-of-office or already busy.
A round-robin link is one public URL backed by a pool of hosts. When someone books, Workestra picks the next available rep — round-robin order, then OOO-filtered, then busy-filtered. The attendee sees one slot picker; the rep who gets the booking is decided at the moment of confirmation.
This is the standard pattern for inbound sales (any rep can take a discovery call), customer success (any CSM can take a renewal), or recruiting (any interviewer can take a screen).
Screenshot needed — link form with link_type=team_round_robin and the member list
Creating a round-robin link
Same flow as a personal link (/settings/booking-links → Create link), with two differences:
- Set Link type to Team round-robin instead of Personal.
- Add members to the rotation pool.
Members are workspace users — pick by name in the picker. Order in the list = rotation position. The first-added is position 0, the next is 1, and so on.
How rotation works
When a slot is booked:
- Pool lookup — fetch the active members in rotation order
- Filter out-of-office — anyone whose
out_of_office_untilis in the future is skipped - Filter busy — anyone with a confirmed
scheduling_calendar_eventsrow that overlaps the requested slot (with buffer expansion) is skipped - Apply the distribution strategy — see below
- Update the pointer — the chosen rep is recorded as
last_assigned_user_idfor the next round
If every rep is OOO or busy at the picked slot, Workestra falls back to the next pointer position regardless — the booking still succeeds, with a warning logged. (Availability calculation already filters slots where every rep is busy, so this is a very narrow race.)
Distribution strategies
Two strategies cover the common cases. Pick on the booking link form's Round-robin tab.
| Strategy | What it does | Use when |
|---|---|---|
| Maximize availability (default) | Picks the first available rep walking the ring from the last-assigned pointer. Any free rep gets the booking; tiebreaker is recency (longest gap since their last booking wins) and then priority weight. | You want to maximize bookings. Faster slot fill. |
| Equal distribution | Hides reps from the candidate pool when they're already 3+ meetings ahead of the team mean. Slots they would have taken get pushed to less-loaded reps instead. | You're trying to balance lead load across a sales team. Slower slot fill but fairer assignment. |
The 3-meeting threshold is configurable per link.
Priority weight per member
Each pool member has a priority weight (default 1). When two reps tie on availability and recency in maximize-availability mode, the higher-weight rep wins. Weights are integers; common values: 2 for senior reps, 1 for everyone else, 0 to keep someone in the pool but only as last resort.
Weights are not used in equal-distribution mode — that mode prioritizes load balance over rep-level prioritization.
Reschedule strategy
When an attendee reschedules a round-robin booking, two strategies are available — set on the booking link form.
| Strategy | What it does |
|---|---|
| Keep original host (default) | The same rep stays assigned to the rescheduled booking, even if they're now busy at the new time. (Workestra still re-checks; if they're truly busy, the reschedule is rejected.) |
| Redistribute | The rescheduled booking goes through the full team-selection flow again. The rep who took the original booking might lose it; another rep might pick it up. |
Keep original is what most teams want — relationships matter, and a rescheduled meeting should stay with the same rep. Redistribute is for high-volume top-of-funnel where rep continuity matters less than slot fill.
Availability is the union
A slot is shown on the public page if at least one rep in the pool is free. So if Alice is free Tuesday at 2pm but Bob isn't, the 2pm slot is still bookable — and Alice gets it.
This is what makes the round-robin model safe under load: you advertise the union, and assignment goes to one specific free rep at confirmation time. Two attendees can never double-book the same rep at the same slot, because the slot re-verification (step 4 in booking-links) runs against the chosen host's calendar.
Per-member calendar fan-out
Workestra checks each rep's own connected calendar when computing availability — not just the link owner's. The pool can mix providers freely:
- One rep on Google Calendar
- Another rep on Microsoft 365 Calendar
- A third rep with no provider connected (their availability falls back to the link's weekly hours)
Each rep's free/busy is read from their own provider, and a slot is shown if at least one rep is free. At confirmation, the chosen rep's calendar is re-checked against the exact requested slot — so if Alice's gcal got an event 30 seconds before her rep slot got picked, the booking falls through to Bob instead of double-booking her.
The booking link's Calendar provider dropdown still exists, but in a round-robin context it acts as a default for reps who haven't set their own provider. Most teams leave the link's provider field on the most-common rep's choice and let per-rep settings override.
Out-of-office handling
Workestra reads user_preferences.out_of_office_until. If you (or a rep) sets a date in the future, you're automatically excluded from rotation through that date. No need to remove yourself from the pool manually before going on vacation.
The same OOO field is used by the inbound email + ticket router, so setting it once covers everywhere.
Reordering rotation
Drag-and-drop the member list in /settings/booking-links/<id> to change rotation order. Position 0 always tries first; position N tries last (modulo the pointer).
To temporarily remove someone (e.g. they're on a project for two weeks), uncheck their active flag rather than deleting them — the rotation pointer stays sensible, and re-activating slots them back into their old position.
Multi-host groups (panel + rotating)
For meetings where you want some hosts always present plus one rotating host from a pool — classic interview panel pattern — use multi-host groups instead of straight round-robin.
A multi-host group has:
- A strategy:
Always(everyone in the group must attend),Round robin(one of the group rotates in), orCollective(all must be free, like collective event types) - A member list for the group
You can mix groups on a single booking link. Common pattern for hiring:
| Group | Strategy | Members |
|---|---|---|
| Hiring manager | Always | jane (always present) |
| Interviewers | Round robin | alice, bob, charlie, diana (one rotates in) |
A slot is available when:
- Every host in any Always group is free
- At least one host in every Round robin group is free
- All hosts in every Collective group are free
Configure on the booking link form's Round-robin tab → Host groups. The host-groups editor lets you add named groups with their own strategy and members.
When booking, the chosen Always hosts and one chosen host from each Round robin group get the calendar event with the attendee.
Read next
- Booking Links — the per-rep settings that round-robin links extend
- Managed Events — admin templates that propagate round-robin settings
- Availability Bridges — PTO and FSM dispatches feed the per-rep busy filter
- Calendar Dashboard — filter by host to see what each rep got assigned
Booking Links
Create a personal scheduling page that prospects, candidates, or customers can use to book time with you directly.
Schedules, Holidays & Free/Busy Rules
Multi-schedule substrate — build "Standard hours" and "Demo hours" once, point as many booking links at them as you want. Plus country holidays and book-over-named-events rules.