This PR is part of a stack, managed by mrge:


What does this PR do?

  • Fixes #11953
  • /claim #11953
  • Adds support for selecting multiple hosts in round-robin event types.
  • Modifies getLuckyUser to return either a single host (if multipleRoundRobinHosts is not specified or is 1) or multiple hosts (if multipleRoundRobinHosts > 1).
  • Updates the event type metadata schema (EventType.metadata) to include multipleRoundRobinHosts.
  • Adds comprehensive test coverage for multiple host selection scenarios.
  • Enhances the booking flow so that multiple hosts can be assigned to a single booking if configured.

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a [documentation change](https://cal.com/docs). (If N/A, check this box and write “N/A” here.) N/A
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

  1. Setup: Pull this branch and run any necessary migrations.
  2. Create or edit an Event Type:
    • Under the “Round Robin” settings, ensure there are no fixed hosts.
    • Add multiple users as round-robin hosts.
    • In the EventType.metadata, set multipleRoundRobinHosts to the desired number (e.g., 2 or 3).
  3. Book an Event:
    • Book the event as a normal user and confirm that multiple hosts are indeed selected.
    • Verify in the database or in the logs that the expected hosts are assigned to the booking.
  4. Check Calendar/Email/Webhook (if enabled):
    • Each of the assigned hosts should receive notification (and appear as attendees if your configuration supports that).
    • Any configured webhooks should fire as usual, including references to all selected hosts.

No additional environment variables are required for this feature.

Checklist

  • My code follows the style guidelines of this project.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have verified that the changes generate no new warnings.
  • New and existing unit tests pass locally with my changes.

Claim

Total prize pool $500
Total paid $0
Status Pending
Submitted April 09, 2025
Last updated April 09, 2025

Contributors

AN

anaclumos

@anaclumos

100%

Sponsors

FR

Framer

@Framer

$500