Skip to content

Commit 03fd701

Browse files
tobixenclaude
andcommitted
Update Zimbra and Cyrus compatibility hints
Zimbra: - Remove save-load.get-by-url unsupported hint (works in zcs-foss:latest, was broken in older Zimbra versions) - Remove event_by_url_is_broken old flag (same reason) - Add save.duplicate-uid.cross-calendar unsupported (Zimbra treats same-UID events across calendars as aliases of the same event) Cyrus: - Add save.duplicate-uid.cross-calendar unsupported (enforces unique UIDs across all calendars for a user) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1fc628a commit 03fd701

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

caldav/compatibility_hints.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,10 @@ def dotted_feature_set_list(self, compact=False):
916916
zimbra = {
917917
'auto-connect.url': {'basepath': '/dav/'},
918918
'delete-calendar': {'support': 'fragile', 'behaviour': 'may move to trashbin instead of deleting immediately'},
919-
'save-load.get-by-url': {'support': 'unsupported'},
919+
## save-load.get-by-url was unsupported in older Zimbra versions (GET to
920+
## valid calendar object URLs returned 404), but works in zimbra/zcs-foss:latest
921+
## Zimbra treats same-UID events across calendars as aliases of the same event
922+
'save.duplicate-uid.cross-calendar': {'support': 'unsupported'},
920923
'search.recurrences.expanded.exception': {'support': 'unsupported'}, ## TODO: verify
921924
'create-calendar.set-displayname': {'support': 'unsupported'},
922925
'save-load.todo.mixed-calendar': {'support': 'unsupported'},
@@ -943,7 +946,7 @@ def dotted_feature_set_list(self, compact=False):
943946
## earlier versions of Zimbra display-name could be changed, but
944947
## then the calendar would not be available on the old URL
945948
## anymore)
946-
'event_by_url_is_broken',
949+
## 'event_by_url_is_broken' removed - works in zimbra/zcs-foss:latest
947950
'no_delete_event',
948951
'vtodo_datesearch_notime_task_is_skipped',
949952
'no_relships',
@@ -1070,6 +1073,8 @@ def dotted_feature_set_list(self, compact=False):
10701073
"search.recurrences.expanded.exception": {"support": "unsupported"},
10711074
"search.time-range.alarm": {"support": "ungraceful"},
10721075
'principal-search': {'support': 'ungraceful'},
1076+
# Cyrus enforces unique UIDs across all calendars for a user
1077+
"save.duplicate-uid.cross-calendar": {"support": "unsupported"},
10731078
# Ephemeral Docker container: wipe objects but keep calendar (avoids UID conflicts)
10741079
"test-calendar": {"cleanup-regime": "wipe-calendar"},
10751080
'delete-calendar': {

0 commit comments

Comments
 (0)