请更具体地说,您使用的新服务/服务器是什么?
这不是专门的 CalDAV,但大多数 DAV 服务器仍然提供一种使用单个 GET 获取所有事件/待办事项的方法。通常通过使用 GET 来定位相关集合,例如其中之一:
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home/
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home.ics
在 CalDAV/CardDAV 中,您可以使用 PROPFIND 获取集合的全部内容:
curl -X PROPFIND -u login -H "Content-Type: text/xml" -H "Depth: 1" \
--data "<propfind xmlns='DAV:'><prop><calendar-data xmlns='urn:ietf:params:xml:ns:caldav'/></prop></propfind>" \
https://myserver/joe/home/
将日历数据替换为
<address-data xmlns="urn:ietf:params:xml:ns:carddav"/>
对于 CardDAV。
这将为您提供一个嵌入了 iCal/vCard 内容的 XML 实体。要恢复它,您需要解析 XML 并提取数据(不难)。
注意:虽然是普通标准,但一些服务器拒绝该内容或只是省略内容(蹩脚!文件错误报告;-)。