ICalendar

Last updated
ICalendar
Filename extension
.ical, .ics, .ifb, .icalendar
Internet media type
text/calendar
Type of format Calendar data exchange
Standard RFC  5545 (Updated by: RFC  5546, RFC  6868, RFC  7529, RFC  7986)
Open format?Yes

The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a media type which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, [1] and together with its associated standards has been a cornerstone of the standardization and interoperability of digital calendars across different vendors. Files formatted according to the specification usually have an extension of .ics. With supporting software, such as an email reader or calendar application, recipients of an iCalendar data file can respond to the sender easily or counter-propose another meeting date/time. The file format is specified in a proposed Internet standard (RFC 5545) for calendar data exchange. The standard and file type are sometimes referred to as "iCal", which was the name of the Apple Inc. calendar program until 2012 (see iCal), which provides one of the implementations of the standard.

Contents

iCalendar is used and supported by many products, including:

It is also worth noting that it is partially supported by Microsoft Outlook and Novell GroupWise.

iCalendar is designed to be independent of the transport protocol. For example, certain events can be sent by traditional email or whole calendar files can be shared and edited by using a WebDav server, or SyncML. Simple web servers (using just the HTTP protocol) are often used to distribute iCalendar data about an event and to publish busy times of an individual. Publishers can embed iCalendar data in web pages using hCalendar, a 1:1 microformat representation of iCalendar in semantic (X) HTML.

History

iCalendar components and their properties ICalendarSpecification.png
iCalendar components and their properties

iCalendar was first created in 1998 [3] by the Calendaring and Scheduling Working Group of the Internet Engineering Task Force, chaired by Anik Ganguly of Open Text Corporation, and was authored by Frank Dawson of Lotus Development Corporation and Derik Stenerson of Microsoft Corporation. iCalendar data files are plain text files with the extension .ics or .ifb (for files containing availability information only). RFC 5545 replaced RFC 2445 in September 2009 and now defines the standard.

iCalendar is heavily based on the earlier vCalendar by the Internet Mail Consortium (IMC). [4] It has the .vcs file extension. After iCalendar was released, the Internet Mail Consortium stated that it "hopes that all vCalendar developers take advantage of these new open standards and make their software compatible with both vCalendar 1.0 and iCalendar." [5]

The memo "Calendar Access Protocol" (RFC 4324) was an initial attempt at a universal system to create real-time calendars, but was eventually abandoned. Instead, iCalendar saw some adoption for such purposes with ad hoc extensions such as GroupDAV and CalDAV emerging as informal standards and seeing some adoption in both client and server software packages.

A first effort to simplify iCalendar standards by the IETF "Calendaring and Scheduling Working Group" (ietf-calsify WG) ended in January 2011 without seeing adoption. [6] [7] The work was then picked up by the "Calendaring Extensions Working Group" (ietf-calext WG). [8]

Design

iCalendar data have the MIME content type text/calendar. The filename extension of ics is to be used for files containing calendaring and scheduling information, ifb for files with free or busy time information consistent with this MIME content type. The equivalent file type codes in Apple Macintosh operating system environments are iCal and iFBf.

By default, iCalendar uses the UTF-8 character set; a different character set can be specified using the "charset" MIME parameter (if the transport method used supports MIME, such as Email or HTTP). Each line is terminated by CR+LF (in hexadecimal: 0D0A). Lines should be limited to 75 octets (not characters) long. Where a data item is too long to fit on a single line it can be continued on following lines by starting the continuation lines with a space character (in hex: 20) or a tab character (in hex: 09). Actual line feeds in data items are encoded as a backslash followed by the letter n or N (the bytes 5C 6E or 5C 4E in UTF-8).

The iCalendar format is designed to transmit calendar-based data, such as events, and intentionally does not describe what to do with that data. Thus, other programming may be needed to negotiate what to do with this data. A companion standard, "iCalendar Transport-Independent Interoperability" (iTIP) (RFC 2446), defines a protocol for exchanging iCalendar objects for collaborative calendaring and scheduling between "Calendar Users" (CUs) facilitated by an "Organizer" initiating the exchange of data. This standard defines methods such as PUBLISH, REQUEST, REPLY, ADD, CANCEL, REFRESH, COUNTER (to negotiate a change in the entry), and DECLINE-COUNTER (to decline the counter-proposal). Another companion standard, "iCalendar Message-based Interoperability Protocol (iMIP)" (RFC 2447), defines a standard method for implementing iTIP on standard Internet email-based transports. The "Guide to Internet Calendaring" (RFC 3283) explains how iCalendar interacts with other calendar computer language (current and future).

The top-level element in iCalendar is the Calendaring and Scheduling Core Object, a collection of calendar and scheduling information. Typically, this information will consist of a single iCalendar object. However, multiple iCalendar objects can be grouped together. The first line must be BEGIN:VCALENDAR, and the last line must be END:VCALENDAR; the contents between these lines is called the "icalbody". The body must include the "PRODID" and "VERSION" calendar properties. In addition, it must include at least one calendar component. [9]

VERSION:1.0 is used to specify that data is in the old vCalendar format. VERSION is 2.0 for the current iCalendar format as of 2016.

The body of the iCalendar object (the icalbody) contains single-line Calendar Properties that apply to the entire calendar, as well as one or more blocks of multiple lines that each define a Calendar Component such as an event, journal entry, alarm, or one of several other types. Here is a simple example of an iCalendar object with a single calendar containing a single Calendar Component, a "Bastille Day Party" event starting at 5pm on July 14, 1997, and ending at 4am the following morning: [10]

BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:uid1@example.com DTSTAMP:19970714T170000Z ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com DTSTART:19970714T170000Z DTEND:19970715T040000Z SUMMARY:Bastille Day Party GEO:48.85299;2.36885 END:VEVENT END:VCALENDAR 

The UID field distributes updates when a scheduled event changes. When the event is first generated a globally unique identifier is created. If a later event is distributed with the same UID, it replaces the original one. An example UID might be Y2007S2C131M5@example.edu, for the 5th meeting of class 131 in semester 2 at a hypothetical college. Email-style UIDs are now considered bad practice, with a UUID recommended instead. [11]

The most common representation of date and time is a tz timestamp such as 20010911T124640Z with the format <year (4 digits)><month (2)><day (2)>T<hour (2)><minute (2)><second (2)>Z for a total fixed length of 16 characters. Z indicates the use of UTC (referring to its Zulu time zone). [12] When used in DTSTART and DTEND properties, start times are inclusive while end times are not. This allows an event's end time to be the same as a consecutive event's start without those events overlapping and potentially creating (false) scheduling conflicts. [13]

Components include:

iCalendar is meant to "provide the definition of a common format for openly exchanging calendaring and scheduling information across the Internet". While the features most often used by users are widely supported by iCalendar, some more advanced capabilities have problems. For example, most vendors do not support Journals (VJOURNAL). VTODOs have had conversion problems as well. [15]

iCalendar's calendar is also not compatible with some non-Gregorian calendars such as the lunar calendars used in Israel and Saudi Arabia. Although there exist one-to-one mappings between Gregorian and many other calendar scales, the lack of defined CALSCALE values for those calendars and limitations in various date fields can make native support impossible. For example the Hebrew calendar year may contain either 12 or 13 months, and the Japanese Emperor-based calendar scale contains many eras.

Extensions

vCalendar and iCalendar support private software extensions, with a "X-" prefix, a number of which are in common usage.

Some of these include:

List of components, properties, and parameters

NameKindRFC section (RFC 5545 [1] :155–159,section 8.3 by default)MS-OXCICAL section 2.1.3 [18] subsections
VCALENDARComponent3.4. iCalendar Object1.1
VEVENTComponent3.6.1. Event Component1.1.20
VTODOComponent3.6.2. To-Do Component
VJOURNALComponent3.6.3. Journal Component
VFREEBUSYComponent3.6.4. Free/Busy Component
VTIMEZONEComponent3.6.5. Time Zone Component
STANDARDComponent3.6.5. Time Zone Component1.1.19.2
DAYLIGHTComponent3.6.5. Time Zone Component1.1.19.3
VALARMComponent3.6.6. Alarm Component
VAVAILABILITYComponent RFC 7953 section 3.1. VAVAILABILITY Component
AVAILABLEComponent RFC 7953 section 3.1. VAVAILABILITY Component
PARTICIPANTComponent RFC 9073 section 7.1. Participant
VLOCATIONComponent RFC 9073 section 7.2. Location
VRESOURCEComponent RFC 9073 section 7.3. Resource
CALSCALEProperty3.7.1. Calendar Scale
METHODProperty3.7.2. Method1.1.1
PRODIDProperty3.7.3. Product Identifier1.1.2
VERSIONProperty3.7.4. Version1.1.3
X-CALENDProperty1.1.4
X-CALSTARTProperty1.1.5
X-CLIPENDProperty1.1.6
X-CLIPSTARTProperty1.1.7
X-MICROSOFT-CALSCALEProperty1.1.8
X-MS-OLK-FORCEINSPECTOROPENProperty1.1.9
X-MS-WKHRDAYSProperty1.1.10
X-MS-WKHRENDProperty1.1.11
X-MS-WKHRSTARTProperty1.1.12
X-OWNERProperty1.1.13
X-PRIMARY-CALENDARProperty1.1.14
X-PUBLISHED-TTLProperty1.1.15
X-WR-CALDESCProperty1.1.16
X-WR-CALNAMEProperty1.1.17
X-WR-RELCALIDProperty1.1.18
ATTACHProperty3.8.1.1. Attachment1.1.20.1
CATEGORIESProperty3.8.1.2. Categories, RFC 7986 section 5.6. CATEGORIES Property1.1.20.3
CLASSProperty3.8.1.3. Classification1.1.20.4
COMMENTProperty3.8.1.4. Comment1.1.20.5
DESCRIPTIONProperty3.8.1.5. Description, RFC 7986 section 5.2. DESCRIPTION Property1.1.20.11, 1.1.20.62.3
GEOProperty3.8.1.6. Geographic Position
LOCATIONProperty3.8.1.7. Location1.1.20.15
PERCENT-COMPLETEProperty3.8.1.8. Percent Complete
PRIORITYProperty3.8.1.9. Priority1.1.20.17
RESOURCESProperty3.8.1.10. Resources1.1.20.21
STATUSProperty3.8.1.11. Status1.1.20.23
SUMMARYProperty3.8.1.12. Summary1.1.20.24
COMPLETEDProperty3.8.2.1. Date-Time Completed
DTENDProperty3.8.2.2. Date-Time End1.1.20.8
DUEProperty3.8.2.3. Date-Time Due
DTSTARTProperty3.8.2.4. Date-Time Start1.1.19.2.1, 1.1.19.3.1, 1.1.20.10
DURATIONProperty3.8.2.5. Duration1.1.20.12
FREEBUSYProperty3.8.2.6. Free/Busy Time
TRANSPProperty3.8.2.7. Time Transparency1.1.20.25
TZIDProperty3.8.3.1. Time Zone Identifier1.1.19.1
TZNAMEProperty3.8.3.2. Time Zone Name1.1.19.2.3, 1.1.19.3.3
TZOFFSETFROMProperty3.8.3.3. Time Zone Offset From1.1.19.2.4, 1.1.19.3.4
TZOFFSETTOProperty3.8.3.4. Time Zone Offset To1.1.19.2.5, 1.1.19.3.5
TZURLProperty3.8.3.5. Time Zone URL
ATTENDEEProperty3.8.4.1. Attendee1.1.20.2
CONTACTProperty3.8.4.2. Contact1.1.20.6
ORGANIZERProperty3.8.4.3. Organizer1.1.20.16
RECURRENCE-IDProperty3.8.4.4. Recurrence ID1.1.20.20
RELATED-TOProperty3.8.4.5. Related To, RFC 9253 section 9.1. RELATED-TO
URLProperty3.8.4.6. Uniform Resource Locator, RFC 7986 section 5.5. URL Property
UIDProperty3.8.4.7. Unique Identifier, RFC 7986 section 5.3. UID Property1.1.20.26
EXDATEProperty3.8.5.1. Exception Date-Times1.1.20.13
RDATEProperty3.8.5.2. Recurrence Date-Times1.1.20.18
RRULEProperty3.8.5.3. Recurrence Rule1.1.19.2.2, 1.1.19.3.2, 1.1.20.19
ACTIONProperty3.8.6.1. Action1.1.20.62.2
REPEATProperty3.8.6.2. Repeat Count
TRIGGERProperty3.8.6.3. Trigger1.1.20.62.1
CREATEDProperty3.8.7.1. Date-Time Created1.1.20.7
DTSTAMPProperty3.8.7.2. Date-Time Stamp1.1.20.9
LAST-MODIFIEDProperty3.8.7.3. Last Modified, RFC 7986 section 5.4. LAST-MODIFIED Property1.1.20.14
SEQUENCEProperty3.8.7.4. Sequence Number1.1.20.22
REQUEST-STATUSProperty3.8.8.3. Request Status
X-ALT-DESCProperty1.1.20.27
X-MICROSOFT-CDO-ALLDAYEVENTProperty1.1.20.28
X-MICROSOFT-CDO-APPT-SEQUENCEProperty1.1.20.29
X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGEProperty1.1.20.30
X-MICROSOFT-CDO-BUSYSTATUSProperty1.1.20.31
X-MICROSOFT-CDO-IMPORTANCEProperty1.1.20.32
X-MICROSOFT-CDO-INSTTYPEProperty1.1.20.33
X-MICROSOFT-CDO-INTENDEDSTATUSProperty1.1.20.34
X-MICROSOFT-CDO-OWNERAPPTIDProperty1.1.20.35
X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGEProperty1.1.20.36
X-MICROSOFT-CDO-REPLYTIMEProperty1.1.20.37
X-MICROSOFT-DISALLOW-COUNTERProperty1.1.20.38
X-MICROSOFT-EXDATEProperty1.1.20.39
X-MICROSOFT-ISDRAFTProperty1.1.20.40
X-MICROSOFT-MSNCALENDAR-ALLDAYEVENTProperty1.1.20.41
X-MICROSOFT-MSNCALENDAR-BUSYSTATUSProperty1.1.20.42
X-MICROSOFT-MSNCALENDAR-IMPORTANCEProperty1.1.20.43
X-MICROSOFT-MSNCALENDAR-INTENDEDSTATUSProperty1.1.20.44
X-MICROSOFT-RRULEProperty1.1.20.45
X-MS-OLK-ALLOWEXTERNCHECKProperty1.1.20.46
X-MS-OLK-APPTLASTSEQUENCEProperty1.1.20.47
X-MS-OLK-APPTSEQTIMEProperty1.1.20.48
X-MS-OLK-AUTOFILLLOCATIONProperty1.1.20.49
X-MS-OLK-AUTOSTARTCHECKProperty1.1.20.50
X-MS-OLK-COLLABORATEDOCProperty1.1.20.51
X-MS-OLK-CONFCHECKProperty1.1.20.52
X-MS-OLK-CONFTYPEProperty1.1.20.53
X-MS-OLK-DIRECTORYProperty1.1.20.54
X-MS-OLK-MWSURLProperty1.1.20.55
X-MS-OLK-NETSHOWURLProperty1.1.20.56
X-MS-OLK-ONLINEPASSWORDProperty1.1.20.57
X-MS-OLK-ORGALIASProperty1.1.20.58
X-MS-OLK-SENDERProperty1.1.20.61
BUSYTYPEProperty RFC 7953 section 3.2. Busy Time Type
NAMEProperty RFC 7986 section 5.1. NAME Property
REFRESH-INTERVALProperty RFC 7986 section 5.7. REFRESH-INTERVAL Property
SOURCEProperty RFC 7986 section 5.8. SOURCE Property
COLORProperty RFC 7986 section 5.9. COLOR Property
IMAGEProperty RFC 7986 section 5.10. IMAGE Property
CONFERENCEProperty RFC 7986 section 5.11. CONFERENCE Property
CALENDAR-ADDRESSProperty RFC 9073 section 6.4. Calendar Address
LOCATION-TYPEProperty RFC 9073 section 6.1. Location Type
PARTICIPANT-TYPEProperty RFC 9073 section 6.2. Participant Type
RESOURCE-TYPEProperty RFC 9073 section 6.3. Resource Type
STRUCTURED-DATAProperty RFC 9073 section 6.6. Structured-Data
STYLED-DESCRIPTIONProperty RFC 9073 section 6.5. Styled-Description
ACKNOWLEDGEDProperty RFC 9074 section 6.1. Acknowledged Property
PROXIMITYProperty RFC 9074 section 8.1. Proximity Property
CONCEPTProperty RFC 9253 section 8.1. Concept
LINKProperty RFC 9253 section 8.2. Link
REFIDProperty RFC 9253 section 8.3. Refid
ALTREPParameter3.2.1. Alternate Text Representation1.1.20.15.1
CNParameter3.2.2. Common Name1.1.13.1, 1.1.20.2.1, 1.1.20.16.1, 1.1.20.61.1
CUTYPEParameter3.2.3. Calendar User Type1.1.20.2.2
DELEGATED-FROMParameter3.2.4. Delegators
DELEGATED-TOParameter3.2.5. Delegatees
DIRParameter3.2.6. Directory Entry Reference
ENCODINGParameter3.2.7. Inline Encoding1.1.20.1.1
FMTTYPEParameter3.2.8. Format Type1.1.20.1.2, 1.1.20.27.1
FBTYPEParameter3.2.9. Free/Busy Time Type
LANGUAGEParameter3.2.10. Language1.1.20.11.1, 1.1.20.15.2, 1.1.20.24.1
MEMBERParameter3.2.11. Group or List Membership
PARTSTATParameter3.2.12. Participation Status1.1.20.2.3
RANGEParameter3.2.13. Recurrence Identifier Range
RELATEDParameter3.2.14. Alarm Trigger Relationship
RELTYPEParameter3.2.15. Relationship Type, RFC 9074 section 7.1. Relationship Type Property Parameter, RFC 9253 sections 4 and 5
ROLEParameter3.2.16. Participation Role1.1.20.2.4
RSVPParameter3.2.17. RSVP Expectation1.1.20.2.5
SENT-BYParameter3.2.18. Sent By
TZIDParameter3.2.19. Time Zone Identifier1.1.4.1, 1.1.5.1, 1.1.6.1, 1.1.7.1, 1.1.11.1, 1.1.12.1, 1.1.20.8.1, 1.1.20.9.1, 1.1.20.10.1, 1.1.20.13.1, 1.1.20.18.1, 1.1.20.20.1, 1.1.20.48.1
VALUEParameter3.2.20. Value Data Types1.1.20.1.3, 1.1.20.8.2, 1.1.20.10.2, 1.1.20.13.2, 1.1.20.18.2, 1.1.20.20.2, 1.1.20.39.1, 1.1.20.45.1
X-FILENAMEParameter1.1.20.1.4
X-MS-OLK-RESPTIMEParameter1.1.20.2.6
X-MICROSOFT-ISLEAPMONTHParameter1.1.20.45.2
DISPLAYParameter RFC 7986 section 6.1. DISPLAY Property Parameter
EMAILParameter RFC 7986 section 6.2. EMAIL Property Parameter
FEATUREParameter RFC 7986 section 6.3. FEATURE Property Parameter
LABELParameter RFC 7986 section 6.4. LABEL Property Parameter
ORDERParameter RFC 9073 section 5.1. Order
SCHEMAParameter RFC 9073 section 5.2. Schema
DERIVEDParameter RFC 9073 section 5.3. Derived
GAPParameter RFC 9253 section 6.2. Gap
LINKRELParameter RFC 9253 section 6.1. Link Relation

Other representations

xCal is an XML representation of iCalendar data, as defined in RFC   6321.

jCal is a JSON representation of iCalendar data, as defined in RFC   7265.

hCalendar is an (x)HTML representation of a subset of iCalendar data using microformats.

hEvent is an HTML representation of a subset of iCalendar data using microformats addressing some accessibility concerns with the hCalendar format.

See also

Related Research Articles

<span class="mw-page-title-main">Email</span> Mail sent using electronic means

Electronic mail is a method of transmitting and receiving messages using electronic devices. It was conceived in the late–20th century as the digital version of, or counterpart to, mail. Email is a ubiquitous and very widely used communication medium; in current use, an email address is often treated as a basic and necessary part of many processes in business, commerce, government, education, entertainment, and other spheres of daily life in most countries.

In computer network engineering, an Internet Standard is a normative specification of a technology or methodology applicable to the Internet. Internet Standards are created and published by the Internet Engineering Task Force (IETF). They allow interoperation of hardware and software from different sources which allows internets to function. As the Internet became global, Internet Standards became the lingua franca of worldwide communications.

<span class="mw-page-title-main">IPv6</span> Version 6 of the Internet Protocol

Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion, and was intended to replace IPv4. In December 1998, IPv6 became a Draft Standard for the IETF, which subsequently ratified it as an Internet Standard on 14 July 2017.

The Lightweight Directory Access Protocol is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. Directory services play an important role in developing intranet and Internet applications by allowing the sharing of information about users, systems, networks, services, and applications throughout the network. As examples, directory services may provide any organized set of records, often with a hierarchical structure, such as a corporate email directory. Similarly, a telephone directory is a list of subscribers with an address and a phone number.

The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telephone systems, as well as mobile phone calling over LTE (VoLTE).

Telnet is a client/server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main goal was to connect terminal devices and terminal-oriented processes.

A Uniform Resource Identifier (URI) is a unique sequence of characters that identifies an abstract or physical resource, such as resources on a webpage, mail address, phone number, books, real-world objects such as people and places, concepts. URIs are used to identify anything described using the Resource Description Framework (RDF), for example, concepts that are part of an ontology defined using the Web Ontology Language (OWL), and people who are described using the Friend of a Friend vocabulary would each have an individual URI.

<span class="mw-page-title-main">Interface description language</span> Computer language used to describe a software components interface

An interface description language or interface definition language (IDL) is a generic term for a language that lets a program or object written in one language communicate with another program written in an unknown language. IDLs are usually used to describe data types and interfaces in a language-independent way, for example, between those written in C++ and those written in Java.

WebDAV is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents directly in an HTTP web server by providing facilities for concurrency control and namespace operations, thus allowing Web to be viewed as a writeable, collaborative medium and not just a read-only medium. WebDAV is defined in RFC 4918 by a working group of the Internet Engineering Task Force (IETF).

The Internet Printing Protocol (IPP) is a specialized communication protocol for communication between client devices and printers. It allows clients to submit one or more print jobs to the network-attached printer or print server, and perform tasks such as querying the status of a printer, obtaining the status of print jobs, or cancelling individual print jobs.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. APIs that extend across diverse platforms and networks are typically provided by MOM.

<span class="mw-page-title-main">Preboot Execution Environment</span> Standard for booting from a server

In computing, the Preboot eXecution Environment, PXE specification describes a standardized client–server environment that boots a software assembly, retrieved from a network, on PXE-enabled clients. On the client side it requires only a PXE-capable network interface controller (NIC), and uses a small set of industry-standard network protocols such as DHCP and TFTP.

A Service record is a specification of data in the Domain Name System defining the location, i.e., the hostname and port number, of servers for specified services. It is defined in RFC 2782, and its type code is 33. Some Internet protocols such as the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) often require SRV support by network elements.

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. It lets multiple users in different locations share, search and synchronize calendar data. It extends the WebDAV specification and uses the iCalendar format for the calendar data. The access protocol is defined by RFC 4791. Extensions to CalDAV for scheduling are standardized as RFC 6638. The protocol is used by many important open-source applications.

<span class="mw-page-title-main">JSON</span> Open standard file format and data interchange

JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. It is a commonly used data format with diverse uses in electronic data interchange, including that of web applications with servers.

Webcal is a uniform resource identifier (URI) scheme for accessing iCalendar files. WebCal allows you to create and maintain an interactive events calendar or scheduling system on a Web site or app.

An IPv6 transition mechanism is a technology that facilitates the transitioning of the Internet from the Internet Protocol version 4 (IPv4) infrastructure in use since 1983 to the successor addressing and routing system of Internet Protocol Version 6 (IPv6). As IPv4 and IPv6 networks are not directly interoperable, transition technologies are designed to permit hosts on either network type to communicate with any other host.

The Microsoft Open Specification Promise is a promise by Microsoft, published in September 2006, to not assert its patents, in certain conditions, against implementations of a certain list of specifications.

WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

<span class="mw-page-title-main">Well-known URI</span>

A well-known URI is a Uniform Resource Identifier for URL path prefixes that start with /.well-known/. They are implemented in webservers so that requests to the servers for well-known services or information are available at URLs consistent well-known locations across servers.

References

  1. 1 2 Desruisseaux, Bernard, ed. (September 2009). Internet Calendaring and Scheduling Core Object Specification (iCalendar). Internet Engineering Task Force. doi: 10.17487/RFC5545 . RFC 5545 . Retrieved 2018-12-07.
  2. "IBM Lotus Notes 8.5 iCalendar: Interoperability, implementation, and application". IBM DeveloperWorks . Retrieved 2015-04-05.
  3. "iCalendar.org". Z Content. Retrieved 2018-03-28.
  4. "vCalendar: The Electronic Calendaring and Scheduling Exchange Format, Version 1.0". Internet Mail Consortium. 1996-09-18. Archived from the original on 2016-03-21. Retrieved 2018-03-28.
  5. "vCalendar: The Basis for Cross-Platform Scheduling". Internet Mail Consortium. 2006-11-26. Archived from the original on 2015-09-06. Retrieved 2016-02-28.
  6. "Calendaring and Scheduling Standards Simplification (calsify)". IETF . Retrieved 2015-04-05.
  7. Lear, Eliot (2010-12-10). "the end of calsify working group– not the end of the mailing list". ietf-calsify mailing list. Archived from the original on 2012-12-09. Retrieved 2015-04-05.
  8. "Calendaring Extensions (calext)". IETF . Retrieved 2016-12-01.
  9. "Section 3.6 Calendar Components". Internet Calendaring and Scheduling Core Object Specification (iCalendar). sec. 3.6. doi: 10.17487/RFC5545 . RFC 5545 . Retrieved 1 July 2020.
  10. From RFC 2445
  11. "UID Property". iCalendar Property Extensions. sec. 5.3. doi: 10.17487/RFC7986 . RFC 7986 . Retrieved 3 October 2022.
  12. "Section 3.3.5 Date-Time". Internet Calendaring and Scheduling Core Object Specification (iCalendar). sec. 3.3.5. doi: 10.17487/RFC5545 . RFC 5545.
  13. "Section 3.6.1 Event Components". Internet Calendaring and Scheduling Core Object Specification (iCalendar). sec. 3.6.1. doi: 10.17487/RFC5545 . RFC 5545.
  14. "[RFC5546] Section 3.4 Methods for VTODO Components". Microsoft Developer Network. Retrieved 7 August 2015.
  15. CalConnect, 2004
  16. "[MS-OXCICAL]: Property: X-WR-RELCALID". msdn.microsoft.com. Retrieved 2016-02-23.
  17. "iCal and vCal Properties". Nokia Symbian^3 Developer's Library v1.1. © Nokia Corporation 2011. October 8, 2009. Archived from the original on May 9, 2021. Retrieved 2023-11-17.{{cite web}}: CS1 maint: others (link)
  18. "[MS-OXCICAL]: 2.1.3 Processing Rules". learn.microsoft.com. 2020-10-13. Archived from the original on 2023-11-16. Retrieved 2023-11-16.