What does this PR do?

This PR adds support for optional attendees by updating the Prisma schema, TypeScript types, and the ICS generation logic for immediate stability.

  • Fixes #18947 (GitHub issue number) /claim #18947

https://github.com/user-attachments/assets/076091ff-cf6c-4be4-af76-e03b728e3068

https://github.com/user-attachments/assets/04bdc798-efbd-4c84-84e4-66276577734b

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. N/A no docs needed changing.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works.

How should this be tested?

Environment Variables: None required beyond the standard .env setup.

Minimal Test Data: An event type with at least one team member.

Happy Path (Expected): * Input: Create a booking where a team member has isOptional: true in the database/payload.

Output: Download the .ics file from the confirmation email. Open it in a text editor (like Notepad). You should see ROLE=OPT-PARTICIPANT attached to that specific attendee’s email.

Verification: Confirm that the isOptional field in packages/types/Calendar.d.ts allows the project to build without TypeScript errors (as shown in my terminal screenshot).

  • I have checked if my changes generate no new warnings (Confirmed via yarn tsc).
  • My PR is small and focused on a single issue (CAL-5091).

Claim

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

Contributors

TY

tykerestes-ux

@tykerestes-ux

100%

Sponsors

CA

Cal.com, Inc.

@cal

$25