ITADN

JMAP CalendarEvent: recurrenceOverrides silently dropped on set

#2984OpenmatheusAle 创建于 2026-04-13
M
matheusAlecommented
### What happened? Setting `recurrenceOverrides` on a `CalendarEvent` via JMAP `CalendarEvent/set` is accepted without error but the data is silently discarded. Subsequent `CalendarEvent/get` always returns `null` for `recurrenceOverrides`. Verified on v0.15.5. ### Reproduction steps 1. Create a recurring event: ```json { "methodCalls": [["CalendarEvent/set", { "accountId": "...", "create": { "ev1": { "@type": "Event", "calendarIds": { "default": true }, "title": "Weekly", "start": "2026-04-06T10:00:00", "duration": "PT1H", "recurrenceRule": { "frequency": "weekly", "byDay": [{ "day": "mo" }] } } } }, "c1"]] } ``` 2. Set a `recurrenceOverrides` entry: ```json { "methodCalls": [["CalendarEvent/set", { "accountId": "...", "update": { "{eventId}": { "recurrenceOverrides": { "2026-04-13T10:00:00": { "title": "Special meeting" } } } } }, "u1"]] } ``` Returns `updated: { "{eventId}": {} }` — no error. 3. Fetch the event: ```json { "methodCalls": [["CalendarEvent/get", { "accountId": "...", "ids": ["{eventId}"] }, "g1"]] } ``` **Result:** `recurrenceOverrides` is `null`. ### Impact This makes it impossible to implement per-occurrence RSVP status or any per-occurrence modification via JMAP. `recurrenceOverrides` is the canonical mechanism in JSCalendar (RFC 8984) and the JSCalendar-bis draft for representing per-occurrence data. ### Related - Issue #2925 — updates targeting synthetic occurrence IDs (related but separate: this issue is about `recurrenceOverrides` on the master event itself) ### Code of Conduct - [x] I agree to follow this project's Code of Conduct
0 条评论