Skip to content

Write events as JSCalendar, with account state on every write - #73

Merged
SashankBhamidi merged 1 commit into
mainfrom
feat/jscalendar-writes
Oct 24, 2026
Merged

SashankBhamidi merged 1 commit into
mainfrom
feat/jscalendar-writes

Conversation

@SashankBhamidi

Copy link
Copy Markdown
Member

Closes #67.

create_event, send_invite, and update_event take a JSCalendar dict now, not an iCalendar string. Reads already hand back JSCalendar, so writing one back no longer goes through iCalendar first and loses properties on the way.

create_event/send_invite return (event_id, old_state, new_state). update_event returns (old_state, new_state). The server was already sending oldState/newState on every write, we were just dropping them.

Ships without #66. Converters stay where they are.

id, baseEventId, and isOrigin get stripped before a write goes out, since the spec marks them server-set and immutable. Stalwart actually enforces that and rejects a write carrying them, Cyrus doesn't, so this had to be handled, not left to one server's leniency.

@codecov

codecov Bot commented Oct 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.50000% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/calendaring_jmap/client.py 85.71% 1 Missing and 2 partials ⚠️

📢 Thoughts on this report? Let us know!

@read-the-docs-community

Copy link
Copy Markdown

@SashankBhamidi
SashankBhamidi merged commit 5f718cc into main Oct 24, 2026
14 checks passed
@SashankBhamidi
SashankBhamidi deleted the feat/jscalendar-writes branch October 24, 2026 07:01
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.

Write events as JSCalendar only

1 participant