feat: provide SCHEDULE-AGENT via ics patch
What does this PR do?
There is a property (SCHEDULE-AGENT=CLIENT) a CalDAV client can add to the event that would prevent CalDAV servers from sending invitations.
This PR patches the used ics-2.37.0 to provide this functionality.
- Fixes #9485
- /claim #9485
Visual Demo
Mandatory Tasks
- [x] I have self-reviewed the code (A decent size PR without self-review might be rejected).
- [X] I have updated the developer docs in /docs if this PR makes changes that would require a documentation change.
- N/A (I assume its autogenerated)
- [x] I confirm automated tests are in place that prove my fix is effective or that my feature works.
How should this be tested?
Via API, local CalDAV
- I have validated the changes with the original tests in the ics repo-code (does not break anything)
- I have validated the changes within cal.com (does not break existent tests, new unit tests work as expected)
- I used the Cal.com API endpoint:
http://localhost:3000/api/book/eventwith an admin API key to create an event withSCHEDULE-AGENT=CLIENT, which was correctly propagated to the local CalDAV server.
Via API, Remote CalDAV
( will tomorrow attempt with a remote CalDAV )
- create an event with
SCHEDULE-AGENT=CLIENT - verify the no duplicate email is sent
Via Collaboration
- If someone with a running setup could collaborate to test this quicker, would be nice.
- If someone could provide an e2e test (if project supports), would be excellent.
Via User Interface
My understanding is that this core/backend-level work needs to be complemented by UI work.
Not sure about this, but this could be the location to add a drop-down for SCHEDULE-AGENT
Summary by cubic
Added support for the SCHEDULE-AGENT property in calendar events by patching the ics library, allowing CalDAV clients to prevent servers from sending invitations.
-
Dependencies
- Applied a custom patch to [email protected] to support SCHEDULE-AGENT for organizers and attendees.
@laz-001 is attempting to deploy a commit to the cal Team on Vercel.
A member of the Team first needs to authorize it.
Hey there and thank you for opening this pull request! 👋🏼
We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.
Details:
No release type found in pull request title "provide SCHEDULE-AGENT via ics patch". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/
Available types:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing tests or correcting existing tests
- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- chore: Other changes that don't modify src or test files
- revert: Reverts a previous commit
Graphite Automations
"Add consumer team as reviewer" took an action on this PR • (06/14/25)
1 reviewer was added to this PR based on Keith Williams's automation.
"Add community label" took an action on this PR • (06/14/25)
1 label was added to this PR based on Keith Williams's automation.
@TusharBhatt1 , @PeerRich, contrary to #21095, this PR does not use an ics-fork, but an ics-patch. The implementation is different, too. Backend fix that must possibly be complemented/activated by a frontend addition.
This PR is being marked as stale due to inactivity.