Skip to content

Add CalDAV support for calendar synchronization#316

Closed
kallal79 wants to merge 26 commits intoemersion:masterfrom
kallal79:fix-caldav-support
Closed

Add CalDAV support for calendar synchronization#316
kallal79 wants to merge 26 commits intoemersion:masterfrom
kallal79:fix-caldav-support

Conversation

@kallal79
Copy link

@kallal79 kallal79 commented Nov 6, 2025

Fixes #207 - This PR implements CalDAV support for hydroxide, enabling calendar synchronization with ProtonMail calendars. Features: CalDAV server on port 8081, calendar listing/retrieval, event CRUD operations, end-to-end encryption, ProtonMail API integration. Built upon @zCri work in PR #282 with go-webdav v0.6.0 compatibility and comprehensive documentation. Total: 10 files changed, 2,089 insertions.

emersion and others added 21 commits October 1, 2024 10:08
This commit implements full CalDAV support to enable calendar
synchronization with ProtonMail calendars, addressing issue emersion#207.

Changes:
- Added caldav/ package with complete CalDAV backend implementation
- Integrated CalDAV server alongside existing CardDAV, SMTP, and IMAP
- Extended ProtonMail API client with calendar operations support
- Added calendar encryption/decryption using OpenPGP
- Implemented CRUD operations for calendar events
- Added notification support for calendar events

Features:
- Read calendar events from multiple ProtonMail calendars
- Create and update calendar events
- Delete calendar events
- Support for recurring events and notifications
- End-to-end encryption for calendar data
- Tested with Evolution, Thunderbird, and KOrganizer

Technical details:
- CalDAV server listens on port 8081 by default
- Uses shared and calendar-specific encryption keys
- Proper handling of signed and encrypted event cards
- Fixed CardDAV port configuration bug (was using caldav variables)
- Updated go-webdav to v0.6.0 with CreateCalendar method
- Compatible with standard CalDAV clients

Bug fixes:
- Fixed incorrect port variable usage in carddav command
- Updated PutCalendarObject to return CalendarObject per new API
- Added CreateCalendar stub (returns not supported error)

Testing:
Verified to work with:
- GNOME Evolution
- Mozilla Thunderbird
- KDE KOrganizer

Closes emersion#207
- Added comprehensive POC documentation
- Included manual testing procedures
- Documented architecture and implementation details
- Added troubleshooting guide and verification checklist
- Replace nil context with context.TODO() in CalDAV backend
- Fix tautological condition check for calProps map
- Ensure proper code quality and linting compliance
@kallal79
Copy link
Author

kallal79 commented Nov 6, 2025

HI @emersion , @zCri , @primalmotion , @yulqen
All checks passed, mergeable. Would appreciate your review—especially on integration and CLI options.

Thanks!

@kallal79
Copy link
Author

kallal79 commented Nov 6, 2025

http://localhost:8081/caldav/[username]/calendars/

@kallal79
Copy link
Author

kallal79 commented Nov 6, 2025

file:///C:/Users/USER/OneDrive/Desktop/issue%20no1/hydroxide/

@kallal79
Copy link
Author

kallal79 commented Nov 6, 2025

freecompress-Screen.Recording.2025-11-06.064354.mp4

@kallal79
Copy link
Author

kallal79 commented Nov 6, 2025

Screenshot 2025-11-06 061819

@kallal79 kallal79 mentioned this pull request Nov 7, 2025
@emersion
Copy link
Owner

emersion commented Nov 8, 2025

Sorry, I am not interested in reviewing/merging AI work.

@emersion emersion closed this Nov 8, 2025
@kallal79
Copy link
Author

kallal79 commented Nov 8, 2025

Hi @emersion,

Thank you for the response. I understand your position regarding AI-generated contributions.

Just to clarify: while I did use AI tools to assist with documentation formatting and linting, the core implementation—including CalDAV server setup, ProtonMail API integration, event CRUD logic, and CLI options—was manually developed and tested by me. I also built upon @zCri’s groundwork with full compatibility for go-webdav v0.6.0 and added comprehensive testing and encryption support.

If there's any specific concern about the provenance or integrity of the code, I’m happy to walk through the commits, explain the logic, or even refactor sections to meet your standards. My goal is to contribute meaningfully to hydroxide and help advance calendar sync support for ProtonMail users.

I respect your decision to close the PR, but if you're open to a manual review or partial merge of the non-AI-assisted portions, I’d be grateful for the opportunity.

Thanks again for your time and for maintaining this important project.

Best regards, @7908837174

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CalDAV support

3 participants

Comments