Jump to content

CalDAV: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Resto1231 (talk | contribs)
Specification: link to the rfc
 
(40 intermediate revisions by 29 users not shown)
Line 1: Line 1:
{{short description|Internet standard for sharing calendar data}}
{{Use American English|date=June 2019}}
{{Use mdy dates|date=June 2019}}
{{More citations needed|date=April 2014}}
{{More citations needed|date=April 2014}}
{{Infobox networking protocol
{{Infobox networking protocol
Line 11: Line 10:
| rfcs = {{IETF RFC|4791|6638}}
| rfcs = {{IETF RFC|4791|6638}}
}}
}}
'''Calendaring Extensions to WebDAV''', or '''CalDAV''', is an [[Internet standard]] allowing a [[Client (computing)|client]] to access [[Calendaring software|scheduling]] information on a remote [[Server (computing)|server]]. It extends [[WebDAV]] ([[HTTP]]-based protocol for data manipulation) specification and uses [[iCalendar]] format for the data. The access protocol is defined by {{IETF RFC|4791}}. It allows multiple client access to the same information thus allowing cooperative planning and information sharing. Many server and client applications support the protocol. Extensions to CalDAV for automated scheduling are also standardized, as {{IETF RFC|6638}}.
'''Calendaring Extensions to WebDAV''', or '''CalDAV''', is an [[Internet standard]] allowing a [[Client (computing)|client]] to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote [[Server (computing)|servers]].<ref name="intro">{{cite web |archive-url=https://web.archive.org/web/20220504033831/https://devguide.calconnect.org/CalDAV/introduction/ |url=https://devguide.calconnect.org/CalDAV/introduction/ |archive-date=2022-05-04|title=Introduction |publisher=Calconnect}}</ref><ref name="glossary">{{cite web |url=https://devguide.calconnect.org/Appendix/Glossary/ |title=Glossary of Terms}}</ref> It lets multiple users in different locations share, search and synchronize calendar data.<ref name="linuxcom">{{cite web| url=https://www.linux.com/news/introduction-caldav/ |title=Introduction to CalDAV |date=February 14, 2006 |publisher=Linux.com}}</ref> It extends the [[WebDAV]] ([[HTTP]]-based protocol for data manipulation) specification and uses the [[iCalendar]] format for the calendar data.<ref name="glossary" /> The access protocol is defined by {{IETF RFC|4791}}.<ref name="intro"/> Extensions to CalDAV for scheduling are standardized as {{IETF RFC|6638}}.<ref name="intro" /> The protocol is used by many important open-source applications.<ref name="linuxcom" />


==History==
==History==
The ''CalDAV'' specification was first published in 2003 as an [[Internet Draft]] submitted to the Internet Engineering Task Force ([[IETF]]) by Lisa Dusseault. In March 2007, the ''CalDAV'' specification was finished and published by the IETF as RFC 4791, authored by Cyrus Daboo ([[Apple Inc.|Apple]]), Bernard Desruissaux ([[Oracle Corporation|Oracle]]), and Lisa Dusseault ([[CommerceNet]]). ''CalDAV'' is designed for implementation by any [[collaborative software]], client or server, that needs to maintain, access or share collections of events. It is developed as an [[open standard]] to foster interoperability between software from different implementers.{{Clarify|date=April 2010}}
The ''CalDAV'' specification was first published in 2003 as an [[Internet Draft]] submitted to the Internet Engineering Task Force ([[IETF]]) by Lisa Dusseault. In March 2007, the ''CalDAV'' specification was finished and published by the IETF as RFC 4791, authored by Cyrus Daboo ([[Apple Inc.|Apple]]), Bernard Desruissaux ([[Oracle Corporation|Oracle]]), and Lisa Dusseault ([[CommerceNet]]). ''CalDAV'' is designed for implementation by any [[collaborative software]], client or server, that needs to maintain, access or share collections of events. It is developed as an [[open standard]] to foster interoperability between software from different vendors.{{Clarify|date=April 2010}}


==Specification==
==Specification==
The architecture of ''CalDAV'' (partially inherited from the underlying specifications) organizes the data (events, tasks, free-busy info, notes) in directories (collections), where multiple items (resources) reside. The resources and collections can be accessed by one or more users, using standard HTTP and DAV semantics to detect conflicting changes, or to provide locking.
The architecture of ''CalDAV'' (partially inherited from the underlying specifications) organizes the data (events, tasks, free-busy info, notes) in directories (collections), where multiple items (resources) reside. The resources and collections can be accessed by one or more users, using standard HTTP and DAV semantics to detect conflicting changes, or to provide locking.


For access control the concept of [[Access control list|ACLs]] are used, so each operation (view, edit, delete etc.) can be denied or granted per user. Therefore, the specification requires that CalDAV servers must support "WebDAV Access Control Protocol" (RFC 3744).
For access control the concept of [[Access control list|ACLs]] are used, so each operation (view, edit, delete etc.) can be denied or granted per user. Therefore, the specification requires that CalDAV servers must support "WebDAV Access Control Protocol" ([https://datatracker.ietf.org/doc/html/rfc3744 RFC 3744]).
The calendar resources must use [[iCalendar]] format, which allows the server to understand and process the data. Parsing the [[iCalendar]] items is necessary, because the server has to support a number of calendaring-specific operations such as doing free-busy time reports and expansion of recurring events. With this functionality, a user may synchronize his or her own calendar to a CalDAV server, and share it among multiple devices or with other users. The protocol also supports non-personal calendars, such as calendars for sites or organizations.
The calendar resources must use iCalendar format, which allows the server to understand and process the data. Parsing the iCalendar items is necessary, because the server has to support a number of calendaring-specific operations such as doing free-busy time reports and expansion of recurring events. With this functionality, a user may synchronize their own calendar to a CalDAV server, and share it among multiple devices or with other users. The protocol also supports non-personal calendars, such as calendars for sites or organizations.

==Software==
{{Merge to|Comparison of CalDAV and CardDAV implementations|date=June 2019|section=yes}}

===Client===
The list of CalDAV clients includes:<ref>{{cite web |url=http://caldav.calconnect.org/implementations/clients.html |title=CalDAV Clients (English) |date=2010-09-18 |accessdate=2010-12-17 |url-status=dead |archiveurl=http://arquivo.pt/wayback/20160523203324/http://caldav.calconnect.org/implementations/clients.html |archivedate=2016-05-23 }}</ref>
* Windows 10, though restricted to certain providers<ref name="Win10">{{cite web|title=Windows 10 can sync email/contacts/calendars with all major providers – chooses to pick winners and losers in the market instead|url=https://ctrl.blog/entry/windows-pim-sync-partnersonly|website=Ctrl|accessdate=2017-03-02}}</ref>
*OpenSync for [[Android (operating system)|Android]]
* CalDAV Tasksync for [[Android (operating system)|Android]]<ref name="TaskSync">[https://play.google.com/store/apps/details?id=com.ntbab.ical.todolistsync TaskSync]</ref>
* CalDAV-Sync for [[Android (operating system)|Android]]<ref name="CalDAV-Sync">[http://dmfs.org/caldav/ CalDAV-Sync]</ref>
* CalendarSync for [[Android (operating system)|Android]]<ref name="CalendarSync">[http://ntbab.dyndns.org/apache2-default/seite/icalparseandroidde.html CalendarSync]</ref>
* DAVx⁵ (previously called DAVdroid) for [[Android (operating system)|Android]] (Open Source)<ref name="DAVx5">[https://www.davx5.com/ DAVx⁵]</ref>
* [[AgenDAV]] (Open Source multi-language CalDAV WebClient with AJAX interface)
* [[Apple iOS|iPhone]] (version 3.0 or version 2.1 with Remote Calendar)
* [[CalDavZAP]] (Web-based HTML5 / JavaScript application, Open Source)<ref name="CalDavZAP">[http://www.inf-it.com/open-source/clients/caldavzap/ CalDavZAP]</ref>
* [[EVO Collaborator for Outlook]] add caldav sync capability to Outlook <ref>[http://us.evomailserver.com/product_eco.php EVO Collaborator for Outlook]</ref>
* [[Evolution (Software)|Evolution]] (Linux, Unix, Windows) <ref>{{Cite web|url=https://help.gnome.org/users/evolution/stable/calendar-caldav.html.mk|title=Using a CalDAV calendar|website=help.gnome.org|access-date=2019-02-28}}</ref>
* [[gSyncit]]<ref name="fieldston">[http://www.fieldstonsoftware.com/software/gsyncit5 Fieldston Software]</ref> (Sync Microsoft Outlook with mobile/tablet device)
* [[Horde (software)|Horde Groupware]]<ref name="horde">[http://www.horde.org/apps/groupware Horde Groupware]</ref>
* [[Korganizer]] (calendar application from KDE)
* [[Mozilla Sunbird|Sunbird]] or [[Mozilla Thunderbird|Thunderbird]] with the [[Lightning (software)|Lightning]] extension (Linux, Windows, Unix, Mac OS X)
* Outlook CalDav Synchronizer (open source) adds CalDAV support to Microsoft Outlook<ref name="Outlook-CalDav-Synchronizer">[http://sourceforge.net/projects/outlookcaldavsynchronizer/ Outlook CalDav Synchronizer]</ref>
* [[eM Client]] (Windows)
* [[iCal4OL]] (No longer available for new customers)
* [[iCal]]/Calendar.app (Since [[Mac OS X#Mac OS X 10.5 (Leopard)|Mac OS X Leopard !V 10.5]])
* iCal Import/Export CalDAV for [[Android (operating system)|Android]]<ref name="iCal Import/Export CalDAV">[http://www.drlue.tk/ical iCal Import/Export CalDAV]</ref>
* [[vdirsyncer]] synchronizes calendars (and addressbooks) between two storages, e. g. CalDAV (CardDAV) server with a local folder or file.<ref>https://vdirsyncer.pimutils.org/</ref>
* [[Mailfence]] CalDAV client through iCAL/vCAL(only paid users)<ref>38</ref>

===Server===
The list of CalDAV servers includes:<ref>{{cite web|url=http://caldav.calconnect.org/implementations/servers.html |title=CalDAV Servers (English)| accessdate=2014-01-07}}</ref>
* [[Apple Inc.|Apple]] [[Darwin (operating system)|Darwin]] Calendar Server
* [[Baikal (Software)|Baikal]]<ref>{{Cite web |url=http://baikal-server.com/ |title=Baikal |access-date=2013-11-08 |archive-url=https://web.archive.org/web/20151114054905/http://baikal-server.com/ |archive-date=2015-11-14 |url-status=dead }}</ref> Lightweight CalDAV+CardDAV server
* [[Bedework]] (former UWCalendar)<ref>{{Cite web |url=http://www.bedework.org/bedework |title=Bedework |access-date=2015-11-10 |archive-url=https://web.archive.org/web/20111202032601/http://www.bedework.org/bedework |archive-date=2011-12-02 |url-status=dead }}</ref>
* [[Bynari Collaboration Suite]]<ref>[https://web.archive.org/web/20120804015415/http://www.bynari.net/products-page/product-category/bynari-collaboration-suite/ Bynari Collaboration Suite]</ref>
* [[Chandler (PIM)|Chandler Server]] (Cosmo)
* [[CommuniGate Pro]] Since version 5.2
* [[Cyrus IMAP server]] since version 2.4.17
* [[DAViCal]]<ref>[http://davical.dhits.nl/index.php?title=Main_Page DAViCal]</ref>
* [[DPCalendar]]<ref>[http://joomla.digital-peak.com/products/dpcalendar DPCalendar]</ref>
* [[DavMail]]
* [[Daylite CalDAV Server]]<ref>{{Cite web |url=https://www.marketcircle.com/daylite/ |title=Daylite CalDAV Server |access-date=2015-11-10 |archive-url=https://web.archive.org/web/20151015181119/https://www.marketcircle.com/daylite/ |archive-date=2015-10-15 |url-status=dead }}</ref>
* [[Dingo Calendar Server]]
* [[EGroupware]] Since version 1.6
* [[EVO Mail Server]]<ref>[http://us.evomailserver.com/ EVO Mail Server]</ref>
* [[Fabasoft Folio Cloud]]
* [[Google Calendar]]<ref>[https://developers.google.com/google-apps/calendar/caldav/v2/guide Google Calendar]</ref>
* [[Horde (software)|Horde Groupware]]<ref name="horde" />
* [[Icewarp Server|Icewarp-E-Mail-Server]] Since version 8.x
* [[Kerio Connect]]<ref>[http://www.kerio.com/connect Kerio Connect]</ref>
* [[MDaemon|MDaemon Email Server]]
* [[Nextcloud]]<ref>[https://nextcloud.com/ Nextloud]</ref>
* [[Open-Xchange]]
* [[Oracle Beehive]]
* [[Oracle Siebel CRM]]
* [[Oracle Communications Calendar Server]]<ref>[https://www.oracle.com/industries/communications/products/unified-communications/ Oracle Communications Calendar Server]</ref>
* [[ownCloud]]<ref>[https://owncloud.org/ ownCloud]</ref>
* [[Radicale (CalDAV)]]<ref>[http://radicale.org/ Radicale]</ref>
* [[SOGo]]<ref>[http://www.sogo.nu SOGo]</ref>
* [[SabreDAV]]<ref>[http://sabre.io/ sabre/dav]</ref>
* [[Scalix]]<ref>[http://scalix.com/ Scalix]</ref>
* [[Sun Java Calendar Server]]
* [[Synovel CollabSuite]]<ref>[http://www.synovel.com/ Synovel]</ref>
* [[Xandikos]]<ref>[https://www.xandikos.org/ Xandikos]</ref>
* [[Yahoo Calendar]]
* [[Zarafa (Software)|Zarafa]] Since la version 6.30.0
* [[Zimbra]] Since version 4.5<ref>[https://www.zimbra.com/ Zimbra]</ref>
* [[mod caldav]]<ref>[http://sourceforge.net/projects/modcaldav/ mod_caldav auf SourceForge]</ref>
* [[sync!Egw]]<ref>[http://www.syncgw.com sync!Egw]</ref>
* [[Mailfence]]<ref>[https://mailfence.com/en/doc/calendar.jsp#caldav Mailfence]</ref>


==See also==
==See also==
Line 97: Line 26:
* [[Calendar]]
* [[Calendar]]
* [[CardDAV]]
* [[CardDAV]]
* [[GroupDAV]], an effort to create a simplified, straightforward protocol for calendars as well as contacts.
* GroupDAV, an effort to create a simplified, straightforward protocol for calendars as well as contacts.
* [[iCalendar]]
* [[iCalendar]]
* [[Scheduling OSID]] defines a software interface abstraction for calendaring protocols
* [[Scheduling OSID]] defines a software interface abstraction for calendaring protocols.
* [[SyncML]]
* [[SyncML]]
* [[vCalendar]]
* [[vCalendar]]
Line 107: Line 36:
{{Reflist}}
{{Reflist}}


==External links==
== External links ==

* [http://caldav.calconnect.org/ CalDAV Resource Site]
* [http://caldav.calconnect.org/ CalDAV Resource Site]
* [http://www.calconnect.org/ CalConnect, The Calendaring and Scheduling Consortium]
* [http://www.calconnect.org/ CalConnect, The Calendaring and Scheduling Consortium]
* [https://web.archive.org/web/20120626092812/http://webdav.org/ WebDAV Resources]
* [https://web.archive.org/web/20120626092812/http://webdav.org/ WebDAV Resources]
* [https://www.researchgate.net/publication/3419713_Open_Calendar_Sharing_and_Scheduling_with_CalDAV Open Calendar Sharing and Scheduling with CalDAV] L. Dusseault, J. Whitehead, IEEE Internet Computing 9(2)
* [https://web.archive.org/web/20151114054905/http://baikal-server.com/ Baïkal, an open-source and lightweight CalDAV+CardDAV server]
* {{IETF RFC|2616|link=yes}}
* {{IETF RFC|3744|link=yes}}
* {{IETF RFC|4791|link=yes}}
* {{IETF RFC|4918|link=yes}}
* {{IETF RFC|5545|link=yes}}
* {{IETF RFC|5546|link=yes}}


{{Use American English|date=June 2019}}
===RFCs===
{{Use mdy dates|date=June 2019}}
* RFC 2616 – HTTP
* RFC 3744 – WebDAV Access Control Protocol
* RFC 4791 – CalDAV
* RFC 4918 – WebDAV
* RFC 5545 – iCalendar
* RFC 5546 – iTIP

{{DEFAULTSORT:Caldav}}
[[Category:Application layer protocols]]
[[Category:Application layer protocols]]
[[Category:Calendaring standards]]
[[Category:Calendaring standards]]

Latest revision as of 00:03, 17 August 2024

CalDAV
Communication protocol
PurposeAccess remote scheduling information
IntroductionMarch 2007; 17 years ago (2007-03)
Based onWebDAV
OSI layerApplication
Port(s)Any
RFC(s)RFC 4791, 6638

Calendaring Extensions to WebDAV, or CalDAV, is an Internet standard allowing a client to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote servers.[1][2] It lets multiple users in different locations share, search and synchronize calendar data.[3] It extends the WebDAV (HTTP-based protocol for data manipulation) specification and uses the iCalendar format for the calendar data.[2] The access protocol is defined by RFC 4791.[1] Extensions to CalDAV for scheduling are standardized as RFC 6638.[1] The protocol is used by many important open-source applications.[3]

History

[edit]

The CalDAV specification was first published in 2003 as an Internet Draft submitted to the Internet Engineering Task Force (IETF) by Lisa Dusseault. In March 2007, the CalDAV specification was finished and published by the IETF as RFC 4791, authored by Cyrus Daboo (Apple), Bernard Desruissaux (Oracle), and Lisa Dusseault (CommerceNet). CalDAV is designed for implementation by any collaborative software, client or server, that needs to maintain, access or share collections of events. It is developed as an open standard to foster interoperability between software from different vendors.[clarification needed]

Specification

[edit]

The architecture of CalDAV (partially inherited from the underlying specifications) organizes the data (events, tasks, free-busy info, notes) in directories (collections), where multiple items (resources) reside. The resources and collections can be accessed by one or more users, using standard HTTP and DAV semantics to detect conflicting changes, or to provide locking.

For access control the concept of ACLs are used, so each operation (view, edit, delete etc.) can be denied or granted per user. Therefore, the specification requires that CalDAV servers must support "WebDAV Access Control Protocol" (RFC 3744). The calendar resources must use iCalendar format, which allows the server to understand and process the data. Parsing the iCalendar items is necessary, because the server has to support a number of calendaring-specific operations such as doing free-busy time reports and expansion of recurring events. With this functionality, a user may synchronize their own calendar to a CalDAV server, and share it among multiple devices or with other users. The protocol also supports non-personal calendars, such as calendars for sites or organizations.

See also

[edit]

References

[edit]
  1. ^ a b c "Introduction". Calconnect. Archived from the original on May 4, 2022.
  2. ^ a b "Glossary of Terms".
  3. ^ a b "Introduction to CalDAV". Linux.com. February 14, 2006.
[edit]