cal.com icon indicating copy to clipboard operation
cal.com copied to clipboard

feat: provide SCHEDULE-AGENT via ics patch

Open laz-001 opened this issue 8 months ago • 4 comments

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/event with an admin API key to create an event with SCHEDULE-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

image


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 avatar Jun 14 '25 17:06 laz-001

@laz-001 is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

vercel[bot] avatar Jun 14 '25 17:06 vercel[bot]

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Jun 14 '25 17:06 CLAassistant

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

github-actions[bot] avatar Jun 14 '25 17:06 github-actions[bot]

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.

graphite-app[bot] avatar Jun 14 '25 17:06 graphite-app[bot]

@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.

laz-001 avatar Jun 17 '25 03:06 laz-001

This PR is being marked as stale due to inactivity.

github-actions[bot] avatar Jul 13 '25 00:07 github-actions[bot]