到目前为止,我使用Google Calender
并使用wget
链接的每日public ".ics"
进行个人备份。
现在我想切换到只有caldav
访问权限的新服务。
是否可以使用一个caldav
/ carddav
下载所有wget
和curl
数据?
这个下载的数据应该可以让我备份丢失的数据。
提前致谢。
修改
我创建了一个非常简单的php文件,它以hmh解释的方式工作。不知道这种方式是否适用于不同的提供商,但对于mailbox.org,它运作良好。
答案 0 :(得分:12)
请更具体地说,您使用的新服务/服务器是什么?
这不是专门的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并提取数据(不是很难)。
注意:虽然普通标准,但有些服务器拒绝或只是省略内容(lame!file bug reports; - )。
答案 1 :(得分:0)
特别是对于使用Baïkal(&gt; = 0.3.3;其他基于Sabre / dav的解决方案将类似)的人,您可以直接进入
https://<Baïkal location>/html/dav.php/
在浏览器中获取一个html界面,允许您下载ics文件,因此也可以找到与curl / wget一起使用的正确链接。
答案 2 :(得分:0)
我尝试了一个无法接受的答案。但是,借助CalDAV日历提供程序,我可以使用
检索所有日历文件。wget -c -r -l 1 -nc --user='[myuser]' --password='[mypassword]' --accept=ics '[url]'
其中[myuser]
和[mypassword]
是您所期望的,而[url]
是您在常规CalDAV软件(由提供商指定)中输入的URL相同的URL。
该命令创建一个目录,其中包含代表日历项目的所有ICS文件。类似的命令适用于我的地址簿。