Search code examples
javaweb-servicesreportwebdavcaldav

CALDAV protocol


sorry for my english but I'm french. I will do my best.

I have to write a WEB SERVICE ( in java with JAX-RS ) to transform my data to icalendar format. This part is ok.

Now I'm learning the caldav protocol to use my web service with mozilla Thunderbird. But I not able to find any doc on how the exchange is ?

What request is sent from thunderbird to retreive the calendar ? My webservice should be able to catch all of the type ( REPORT - MOVE - COPY - PUT - POST - ....) ?

I need some explication or a good documentation of how caldav works.

Thanks a lot.


Solution

  • I think that I understand the pop3 part - If I was explaining IMAP4 to someone then rather than pointing to the RFC I would say:

    telnet imap.example.org 143
    A login username password
    B list "" *
    C logout

    These are the raw commands that I use to test IMAP4; What are the ones for CalDAV? Something like https://github.com/alexxroche/AIF/blob/master/ISP/servers/POP3

    update

    ok, I think I've got this:

    To read/list an entry

    curl -X GET --user admin:pass-phrase --output test.ics "https://api.example.com/calDAV/calNAME"
    

    To add an entry:

    curl --basic --request PUT \\
    --header "Content-Type: text/calendar; charset=utf-8" \\
    --user admin:pass-phrase --data-binary @out.ics 
    

    (I've tried to use a few of the cURL flags/arguments as demonstration. You can even send data as a string with

    curl -X PUT "https://api.url/calDAV/calNAME" \\
    -F "data-binary=really-long-string" \\
    -F "user=admin:pass-phrase" \\
    -F "the other data=can be added like this"