What does this PR do?

When an event is scheduled it is inserted into the organizer’s calendar. By default most calendars using calDAV will then send their own e-mail notifying the attendees. This conflicts with Cal.com which does this already. By setting SCHEDULE-AGENT=CLIENT in the .ics calDAV object we tell the server to not send these emails.

To make minimal changes, especially because the ics package is used in multiple parts of the application, I forked ics (named ics2) and created a patch for the version Cal.com is using right now (v2.37.0 => v2.37.2). I’m contacting the maintainer of ics to publish this fix on the official ics package.

In the near future it would be a good idea to add additional tests to the codebase where ics is used so we can also confidently move to v3 which more closely aligns with the calDAV spec such as quoting email addresses.

  • Fixes #9485

/claim #9485

Visual Demo

Video Demo:

Full demonstration before (Cal.com) and after (local) using Fastmail calDAV:

https://www.youtube.com/watch?v=EE6wjrhxwUU

Image Demo:

Before fix (on official Cal.com):

Screenshot 2025-05-03 at 14 28 12

After fix (on local instance using RIJX Sendgrid):

Screenshot 2025-05-03 at 14 28 20

Mandatory Tasks

  • I have self-reviewed the code.
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. 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?

  • Configure a calendar using calDAV (beta). In this case using Fastmail.
  • Schedule an event, preferably using a different email from your account.
  • Observe how only a Cal.com initiated email is sent to the attendee, rather than two.

Checklist

  • I have read the contributing guide
  • My code follows the style guidelines of this project
  • I have checked if my changes generate no new warnings

Summary by mrge

Updated calendar event invites to set SCHEDULE-AGENT=CLIENT in .ics files, preventing duplicate attendee emails from the organizer’s calendar.

  • Dependencies

    • Switched to a patched ics2 package to support the SCHEDULE-AGENT fix.
  • Bug Fixes

    • Ensured only Cal.com sends event emails, avoiding extra notifications from CalDAV servers.

Claim

Total prize pool $500
Total paid $0
Status Pending
Submitted May 03, 2025
Last updated May 03, 2025

Contributors

RI

RIJX

@rijx

100%

Sponsors

CA

Cal.com, Inc.

@cal

$500