AddThisFeature

Round-Robin Booking

Spread incoming bookings across a team so the next available person takes the slot.

involved Admin & Operations

What it adds

A shared booking page backed by a pool of team members, assigning each booking to one of them by an explicit rule.

What your agent is told to do

5
  1. 1

    Start with the minimum coherent version: a named pool of members, a merged availability view, and one assignment rule. Weighted pools, priority tiers, and per-member routing rules should be deferred until the simple pool is in use.

  2. 2

    Compute the offered slots by merging every eligible member's real availability, and record which member a slot came from so the assignment at booking time is not a second, separate guess.

  3. 3

    Assign on commit, not on render. Two people looking at the same slot must not both be promised the same member, and the assignment must be written in the same transaction that creates the booking.

  4. 4

    Build on the app's existing calendar connections and on Time Zone-Aware Scheduling rather than adding a parallel availability system. If Calendly Booking Sync is present, treat its externally held busy time as authoritative when merging.

  5. 5

    Do not assign by a simple rotating counter. A counter ignores cancellations, absences, and caps, and drifts into giving one person every booking within a week.

Edge cases it handles

8
  • Members who are away, off shift, or already at their daily cap must be excluded from the pool before slots are computed, not filtered out after a slot has already been offered.
  • Distribution must stay fair once cancellations and no-shows are counted. If a cancelled booking still counts against the member's turn, whoever gets cancelled on most ends up with the least work.
  • Availability from members in different zones must be merged as instants, not as local wall-clock times, or a slot will appear that is outside one member's actual working hours.
  • When no member can honour a time, show no slot. Offering a slot and then reassigning or apologising afterwards is worse than an emptier calendar.
  • If the assigned member becomes unavailable between booking and start, reassignment must follow a stated rule and notify both the attendee and the new member. Silent reassignment leaves the attendee expecting the wrong person.
  • A booking that names a specific member directly must bypass the pool and still consume that member's availability and daily cap.
  • Removing a member from the pool must not orphan their existing bookings. Decide explicitly whether those stay with them or are reassigned.
  • Buffer time between bookings must be applied per member, so back-to-back slots are not offered against a member who needs a gap.

Definition of done

9
  • A booking page backed by a member pool offers merged availability across the whole pool.
  • Members who are away or at their daily cap contribute no slots.
  • Assignment happens atomically at booking time and cannot give one slot to two attendees.
  • Distribution stays balanced after cancellations and no-shows.
  • Availability across zones merges correctly and no unhonourable slot is ever offered.
  • Reassignment when a member drops out follows a documented rule and notifies both sides.
  • The feature reuses the app's existing calendar connections and time zone handling.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.