Wie lade ich alle meine Caldav- und Carddav-Daten mit einem Wget/Curl herunter?
Frage
Bis jetzt habe ich verwendet Google Calender
und mache mein persönliches Backup täglich wget
des public ".ics"
Verknüpfung.
Jetzt möchte ich zu einem neuen Dienst wechseln, der nur hat caldav
Zugang.
Gibt es eine Möglichkeit, alle meine herunterzuladen? caldav
Und carddav
Daten mit einem wget
/ curl
?
Diese heruntergeladenen Daten sollten mir die Möglichkeit geben, verlorene Daten zu sichern.
Dank im Voraus.
bearbeiten
Ich habe eine sehr einfache PHP-Datei erstellt, die so funktioniert, wie hmh es erklärt hat.Ich weiß nicht, ob dieser Weg bei verschiedenen Anbietern funktioniert, aber bei mailbox.org funktioniert er gut.
Sie können es hier finden https://gist.github.com/ahemwe/a2eaae4d56ac85969cf2.
Lösung
Bitte machen Sie genauere Angaben. Welchen neuen Dienst/Server verwenden Sie?
Dabei handelt es sich nicht speziell um CalDAV, aber die meisten DAV-Server bieten dennoch eine Möglichkeit, alle Ereignisse/Todos mit einem einzigen GET abzurufen.Normalerweise indem man mit einem GET auf die relevante Sammlung abzielt, z.B.wie eines davon:
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
In CalDAV/CardDAV können Sie mit einem PROPFIND den gesamten Inhalt einer Sammlung abrufen:
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/
Ersetzen Sie Calendar-Data durch
<address-data xmlns="urn:ietf:params:xml:ns:carddav"/>
für CardDAV.
Dadurch erhalten Sie eine XML-Entität, in die die iCal-/vCard-Inhalte eingebettet sind.Um es wiederherzustellen, müssten Sie das XML analysieren und die Daten extrahieren (nicht schwer).
Notiz:Obwohl dies schlichter Standard ist, lehnen einige Server dies ab oder lassen den Inhalt einfach weg (lahm!Dateifehlerberichte ;-).
Andere Tipps
Speziell für Menschen, die es verwenden Baikal (>= 0,3,3;Andere Sabre/Dav-basierte Lösungen werden ähnlich sein), können Sie direkt zu gehen
https://<Baïkal location>/html/dav.php/
in einem Browser und erhalten Sie eine HTML-Schnittstelle, mit der Sie ICS-Dateien herunterladen und so auch die richtigen Links für die Verwendung mit Curl/Wget finden können.
Ich habe die akzeptierte Antwort ausprobiert, die bei mir nicht funktioniert hat.Mit meinem CalDAV-Kalenderanbieter kann ich allerdings alle Kalenderdateien abrufen
wget -c -r -l 1 -nc --user='[myuser]' --password='[mypassword]' --accept=ics '[url]'
Wo [myuser]
Und [mypassword]
sind, was Sie erwarten und [url]
ist dieselbe URL wie die, die Sie in Ihrer regulären CalDAV-Software eingeben (wie von Ihrem Anbieter angegeben).
Der Befehl erstellt ein Verzeichnis, das alle ICS-Dateien enthält, die die Kalenderelemente darstellen.Ein ähnlicher Befehl funktioniert für mein Adressbuch.