fix: prevent CalDAV duplicate invitations with RFC-compliant SCHEDULE-AGENT#22434
Conversation
|
@yuvrajangadsingh is attempting to deploy a commit to the cal Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
cubic found 3 issues across 2 files. Review them in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
Graphite Automations"Add consumer team as reviewer" took an action on this PR • (07/11/25)1 reviewer was added to this PR based on Keith Williams's automation. "Add community label" took an action on this PR • (07/11/25)1 label was added to this PR based on Keith Williams's automation. "Add ready-for-e2e label" took an action on this PR • (07/12/25)1 label was added to this PR based on Keith Williams's automation. |
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic found 4 issues across 2 files. Review them in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic found 1 issue across 2 files. Review it in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic found 1 issue across 2 files. Review it in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic found 1 issue across 2 files. Review it in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic found 1 issue across 2 files. Review it in cubic.dev
React with 👍 or 👎 to teach cubic. Tag @cubic-dev-ai to give specific feedback.
|
@cubic-dev-ai /review |
|
@yuvrajangadsingh I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
cubic reviewed 2 files and found no issues. Review PR in cubic.dev.
There was a problem hiding this comment.
1 issue found across 3 files (changes from recent commits).
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name=".env.example">
<violation number="1" location=".env.example:262">
P3: Gmail SMTP password example includes an extraneous trailing character `G`, producing a wrong value if copied from the template.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
Thanks @anikdhabal for reviewing and merging! Really appreciate the time you put into this. |
This comment was marked as off-topic.
This comment was marked as off-topic.
|
I just tested it with "Kerio", connected via CalDAV. Kerio still sends a secondary invitation. What makes this bad is that the timezone is different in the mails from Cal.com and from Kerio calendar invitation, so poeple show up to GMT, when they should be in Europe/Berlin timezone.
Maybe in relation to https://github.com/calcom/cal.com/discussions/24473 |
This comment was marked as off-topic.
This comment was marked as off-topic.
|
@PeerRich @keithwillcode My PR #22434 was merged and closed issue #9485. I forgot to include |
|
@yuvrajangadsingh We will ask our team to tip you, but this isn't a complete fix—it looks like two remaining issues were not addressed. Please check this: #28112 Kindly try to address them in the best possible way in a separate pr |
|
@anikdhabal done — opened #28115 addressing both remaining issues (UID consistency + missing VTIMEZONE). thanks for flagging #28112, used it as reference for the fixes. |
|
/tip 500 |
|
🎉🎈 @yuvrajangadsingh has been awarded $500 by Cal.com, Inc.! 🎈🎊 |

Summary
Fixes #9485
Adds
SCHEDULE-AGENT=CLIENTto ATTENDEE lines in CalDAVcreateEventandupdateEventoperations per RFC 6638 Section 7.1. This tells CalDAV servers (Fastmail, NextCloud, etc.) that the client handles scheduling, preventing duplicate invitation emails.Implementation Details
This implementation includes full RFC compliance:
:mailto:format correctlyWhat Changed
foldLine()helper for RFC 5545 compliant line foldingaddScheduleAgentClient()helper that adds the parameter with proper foldingcreateEventandupdateEventinCalendarService.tsTest Plan
/claim #9485