/claim #18947

What does this PR do?

Summary

Implements the ability to add team members as optional guests to team event types (collective, round robin, and managed). This allows team members to be invited to bookings without checking their calendar for conflicts, useful for shadowing scenarios.

Changes

  • Added optionalGuestTeamMemberIds field to EventType schema to store optional guest IDs
  • Created UI component in EventTeamAssignmentTab with multi-select dropdown for selecting optional team members (team-only with UpgradeTeamsBadge)
  • Updated booking creation logic to fetch and validate optional guests as team members
  • Modified calendar integrations (Google Calendar, Office365, ICS) to mark optional guests as optional attendees
  • Added translations for the new UI component
  • Updated all TypeScript types across API inputs/outputs and internal types

Implementation Details

  • Optional guests are validated to be actual team members before being added
  • Calendar conflict checking is skipped for optional guests
  • In calendar invites:
    • Google Calendar: optional: true property
    • Office365: type: "optional"
    • ICS files: ROLE=OPT-PARTICIPANT

Fixes #18947 Fixes CAL-5091

Visual Demo (For contributors especially)

A visual demonstration is strongly recommended, for both the original and new change (video / image - any one).

Video Demo (if applicable):

  • Show screen recordings of the issue or feature.
  • Demonstrate how to reproduce the issue, the behavior before and after the change.

Image Demo (if applicable):

  • Add side-by-side screenshots of the original and updated change.
  • Highlight any significant change(s).

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. If N/A, write N/A here and check the checkbox.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

  • Are there environment variables that should be set?
  • What are the minimal test data to have?
  • What is expected (happy path) to have (input and output)?
  • Any other important info that could help to test that PR

Checklist

  • I haven’t read the contributing guide
  • My code doesn’t follow the style guidelines of this project
  • I haven’t commented my code, particularly in hard-to-understand areas
  • I haven’t checked if my changes generate no new warnings
  • My PR is too large (>500 lines or >10 files) and should be split into smaller PRs

Claim

Total prize pool $25
Total paid $0
Status Pending
Submitted February 09, 2026
Last updated February 09, 2026

Contributors

AK

akankshahu

@akankshahu

100%

Sponsors

CA

Cal.com, Inc.

@cal

$25