feat: add caldav support
There's quite a lot here - because caldav support needed some fair
refactoring/etc. to get working. Happily after this I can commit a
little more incrementally as I'll be able to deploy what I have here...
...due to needing a password, I don't have any caldav test data- the
format for making a dav subscription is something like so:
INSERT INTO dav_connections ("id", "url", "username", "password") VALUES ('00069420-74d2-4ba8-85d6-4fc679810c02', <base URI>, <username>, <password>);
INSERT INTO subscriptions ("id", "reference", "dav_connection") VALUES ('12a89516-65f7-4874-8449-671b7c8444af', '/my/href/of/my/calendar/', '00069420-74d2-4ba8-85d6-4fc679810c02');
It's worth noting that - I believe - we return some minorly noncompliant
data for colors (i.e. I think the list of values that are supported for
calendar colors is greater than the list of values supported for, say,
event colors). Happily, I guess, after I wrote the caldav colors feature
I found out that Google Calendar doesn't support ical colors anyway. I
also then didn't write the feature for direct ical subscriptions so...
...another time, maybe.