Proposal: Sync Interoperability Commons
We could specify things like extended properties that we sync and which are not part of the Android calendar contract (or the task provider contracts) in a separate repository that can be used by others, for instance calendar apps who want to implement the fields.
The only such property is currently URL, which is documented in the manual: https://manual.davx5.com/integration.html#extended-event-properties
Instead, it should be defined in the new Extended Contract and then the manual should just link to it. A calendar app that wants to implement the property can:
- Include the Extended Contract as dependency.
- Use the defined the fields etc. to view/edit the respective property.
The whole thing should probably have a vendor-neutral name and domain (like sync-interop.dev ), which can be used for namespaces (also to avoid DAVx5 in namespaces).
Core ideas
- Probably a separate repository (or multiple ones) so that others can import the contracts as lib or submodule.
- Contracts are versioned to make changes clear to implementing apps.
- As client-independent as possible (no hardcoded references to DAVx5 symbols or synctools internals).
- For properties: Contract should include parameters (including unknown parameters) so that they can be re-generated correctly.
- Probably for CalDAV (events), CardDAV (contacts) and also WebDAV (for instance to collect X-Properties which are defined and used by specific servers).
- Intended audience: client/server developers.
- Openness: Should be easy to contribute in an informal way and open for all who want to contribute.
- What it should not be: an alternative way to define real standards.
What could be defined
- Android interoperability
- Task contracts
- Intent definitions of how to start CalDAV/CardDAV setup (currently DAVx5-specific)
- Contracts for storing extended properties in the Android Calendar Provider:
- URL
- ATTACH + attachment operations (CRUD)
- Contracts to define extended operations regarding Android Calendar Provider, like free/busy queries and other scheduling stuff
- WebDAV Push (at least as a link and/or as long as it's not an RFC)
- WebDAV/CalDAV/CardDAV extensions which are too small/specific for a "real standard", like
- the preconfigured settings JSON format used by DAVx⁵
- WebDAV X-properties that are defined/used by specific servers
- Implementation notes for RFCs and how they're used in specific clients/servers
Proposal: Sync Interoperability Commons
We could specify things like extended properties that we sync and which are not part of the Android calendar contract (or the task provider contracts) in a separate repository that can be used by others, for instance calendar apps who want to implement the fields.
The only such property is currently
URL, which is documented in the manual: https://manual.davx5.com/integration.html#extended-event-propertiesInstead, it should be defined in the new Extended Contract and then the manual should just link to it. A calendar app that wants to implement the property can:
The whole thing should probably have a vendor-neutral name and domain (like
sync-interop.dev), which can be used for namespaces (also to avoid DAVx5 in namespaces).Core ideas
What could be defined