Web Calendar Access Protocol
Appearance
Web Calendar Access Protocol is an protocol for remote client-server calendar access and scheduling based on the XML, HTTP, iCalendar and vCard Internet standards. WCAP was created for use with the product that eventually became Sun Java Calendar Server, but is also used by the open source Buni Meldware project [1]. WCAP uses simple HTTP GET commands for accessing iCalendar, Freebusy, TODO and vCard entries. [2]
Example
Client:
GET /wcap/get_freebusy.wcap?appid=mozilla-calendar&calid=mailto%3Atom%40localhost&busyonly=1&dtstart=20070521T040000Z&dtend=20070525T040000Z&fmt-out=text%2Fxml&id=17046506 HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.10) Gecko/20070403 Thunderbird/1.5.0.10 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache
Response:
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)/Tomcat-5.5 Set-Cookie: JSESSIONID=41DAC48C79927D68EDFAF5FBFD491236; Path=/ Content-Type: text/html;charset=ISO-8859-1 Content-Length: 1399 Date: Mon, 21 May 2007 19:43:37 GMT <?xml version="1.0" encoding="UTF-8"?> <iCalendar> <iCal version="2.0" prodid="-//Buni Meldware Calendar Server 0.8//EN" METHOD="PUBLISH"> <X-NSCP-CALPROPS-LAST-MODIFIED>20061102T170639Z</X-NSCP-CALPROPS-LAST-MODIFIED> <X-NSCP-CALPROPS-CREATED>20060814T110002Z</X-NSCP-CALPROPS-CREATED> <X-NSCP-CALPROPS-READ>999</X-NSCP-CALPROPS-READ> <X-NSCP-CALPROPS-WRITE>999</X-NSCP-CALPROPS-WRITE> <X-NSCP-CALPROPS-RELATIVE-CALID>tom</X-NSCP-CALPROPS-RELATIVE-CALID> <X-NSCP-CALPROPS-NAME>tom</X-NSCP-CALPROPS-NAME> <X-NSCP-CALPROPS-PRIMARY-OWNER>tom</X-NSCP-CALPROPS-PRIMARY-OWNER> <X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@@o^c^WDEIC^g</X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY> <X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@@o^a^RSF^g</X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY> <X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@^a^rsf^g</X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY> <X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@^c^^g</X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY> <X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY>@^p^r^g</X-NSCP-CALPROPS-ACCESS-CONTROL-ENTRY> <X-NSCP-CALPROPS-RESOURCE>0</X-NSCP-CALPROPS-RESOURCE> <X-S1CS-CALPROPS-ALLOW-DOUBLEBOOKING>1</X-S1CS-CALPROPS-ALLOW-DOUBLEBOOKING> <FREEBUSY> <START>20070521T040000Z</START> <END>20070525T040000Z</END> <FB FBTYPE="BUSY">20070521T130000Z/20070521T140000Z</FB><FB FBTYPE="BUSY">20070521T150000Z/20070521T160000Z</FB> </FREEBUSY> <X-NSCP-WCAP-ERRNO>0</X-NSCP-WCAP-ERRNO> </iCal> </iCalendar>