VCalendar
   HOME

TheInfoList



OR:

The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a
media type In information and communications technology, a media type, content type or MIME type is a two-part identifier for file formats and content formats. Their purpose is comparable to filename extensions and uniform type identifiers, in that they ide ...
which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, and together with its associated standards has been a cornerstone of the standardization and interoperability of
digital calendar A digital calendar is a collaborative or personal time management software with a calendar that can be used to keep track of planned events. The calendar can also contain an appointment book, address book or contact list. Common features of ...
s across different vendors. Files formatted according to the specification usually have an
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (proof theory) * Extension (predicate logic), the set of tuples of values that ...
of . With supporting software, such as an email reader or
calendar application A digital calendar is a collaborative or personal time management software with a calendar that can be used to keep track of planned events. The calendar can also contain an appointment book, address book or contact list. Common features of ...
, 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. Apple Inc. is an American multinational corporation and technology company headquartered in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. Founded in 1976 as Apple Comput ...
calendar program until 2012 (see
iCal Calendar is a personal calendar app made by Apple Inc. for its macOS, iOS, iPadOS, watchOS and visionOS operating systems. It offers online cloud backup of calendars using Apple's iCloud service, or can synchronize with other calendar service ...
), which provides one of the implementations of the standard. iCalendar is used and supported by many products, including: * general consumer: Apple Calendar (formerly iCal), eM Client,
Google Calendar Google Calendar is a time-management and scheduling calendar service developed by Google. It was created by Mike Samuel as part of his 20% project at Google. It became available in Software release life cycle#Beta, beta release April 13, 2006, ...
,
Yahoo! Calendar Yahoo Calendar is a Web-based calendar service from Yahoo!. It can read calendar feeds and events syndicated from sites that make use of the published Yahoo calendar programming interfaces. While users are not required to have a Yahoo Mail account ...
* corporate:
HCL Domino HCL Notes (formerly Lotus Notes then IBM Notes) is a proprietary collaborative software platform for Unix (AIX), IBM i, Windows, Linux, and macOS, sold by HCLTech. The client application is called Notes while the server component is branded HCL ...
(formerly IBM Notes and Lotus Notes) *
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
:
GNOME Evolution GNOME Evolution (formerly Novell Evolution and Ximian Evolution, prior to Novell's 2003 acquisition of Ximian) is the official personal information manager for GNOME. It has been an official part of GNOME since Evolution 2.0 was included with th ...
,
GNU Emacs GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU ...
,
Mozilla Thunderbird Mozilla Thunderbird is a free and open-source email client that also functions as a personal information manager with a Digital calendar, calendar and contactbook, as well as an RSS feed reader, chat client (IRC/XMPP/Matrix (protocol), Matrix), ...
, and
SeaMonkey SeaMonkey is a free and open-source Internet suite. It is the continuation of the former Mozilla Application Suite, based on the same source code, which itself grew out of Netscape Communicator and formed the base of Netscape 6 and Netscape ...
It is partially supported by
Microsoft Outlook Microsoft Outlook is a personal information manager software system from Microsoft, available as a part of the Microsoft 365 software suites. Primarily popular as an email client for businesses, Outlook also includes functions such as Calendari ...
and
Novell GroupWise GroupWise is a messaging and collaboration platform from OpenText that supports email, calendaring, personal information management, instant messaging, and document management. The GroupWise platform consists of desktop client software, which ...
. 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 WebDAV (Web Distributed Authoring and Versioning) 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 conc ...
server, or
SyncML SyncML, or Synchronization Markup Language, was originally developed as a platform-independent standard for information synchronization. Established by the SyncML Initiative, this project has evolved to become a key component in data synchroniza ...
. 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 hCalendar (short for ''HTML iCalendar'') is a microformat standard for displaying a semantic (X)HTML representation of iCalendar-format calendar information about an event, on web pages, using HTML classes and ''rel'' attributes. It allows pa ...
, a 1:1
microformat Microformats (μF) are predefined HTML markup (like HTML classes) created to serve as descriptive and consistent metadata about elements, designating them as representing a certain type of data (such as contact information, geographic coor ...
representation of iCalendar in semantic (X)
HTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
.


History

iCalendar components and their properties iCalendar was created in 1998 by the Calendaring and Scheduling Working Group of the
Internet Engineering Task Force The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
, chaired by Anik Ganguly of
Open Text Corporation OpenText Corporation (styled as opentext) is a global software company that develops and sells information management software. OpenText, headquartered in Waterloo, Ontario, Canada, is Canada's fourth-largest software company as of 2022, and r ...
, and was authored by Frank Dawson of
Lotus Development Corporation Lotus Software (called Lotus Development Corporation before its acquisition by IBM) was an American software company based in Massachusetts; it was sold to India's HCL Technologies in 2018. Lotus is most commonly known for the Lotus 1-2-3 sprea ...
and Derik Stenerson of
Microsoft Corporation Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
. iCalendar data files are
plain text In computing, plain text is a loose term for data (e.g. file contents) that represent only characters of readable material but not its graphical representation nor other objects ( floating-point numbers, images, etc.). It may also include a lim ...
files with the
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (proof theory) * Extension (predicate logic), the set of tuples of values that ...
or (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 The Internet Mail Consortium (IMC) was an organization between 1996 and 2002 that claimed to be the only international organization focused on cooperatively managing and promoting the rapidly expanding world of electronic mail on the Internet. P ...
(IMC) which has the 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." 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 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 differe ...
emerging as informal standards and seeing some adoption in both client and server
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
packages. A first effort to simplify iCalendar standards by the
IETF The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
"Calendaring and Scheduling Working Group" (ietf-calsify WG) ended in January 2011 without seeing adoption. The work was then picked up by the "Calendaring Extensions Working Group" (ietf-calext WG).


Design

iCalendar data have the
MIME A mime artist, or simply mime (from Greek language, Greek , , "imitator, actor"), is a person who uses ''mime'' (also called ''pantomime'' outside of Britain), the acting out of a story through body motions without the use of speech, as a the ...
content type . The filename extension of is to be used for files containing calendaring and scheduling information, for files with free or busy time information consistent with this MIME content type. The equivalent file
type code A resource fork is a fork of a file on Apple's classic Mac OS operating system that is used to store structured data. It is one of the two forks of a file, along with the data fork, which stores data that the operating system treats as unstruct ...
s in Apple Macintosh operating system environments are and . By default, iCalendar uses the
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
character set Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical values that make up a c ...
; a different character set can be specified using the "charset" MIME parameter (if the transport method used supports MIME, such as
Email Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
or
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
). Each line is terminated by CR+ LF (in
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
: ). Lines should be limited to 75
octets Octet may refer to: Music * Octet (music), ensemble consisting of eight instruments or voices, or composition written for such an ensemble ** String octet, a piece of music written for eight string instruments *** Octet (Mendelssohn), 1825 compos ...
(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 or 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 , , , , , , (to negotiate a change in the entry), and (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 , and the last line must be ; the contents between these lines is called the "icalbody". The body must include the "" and "" calendar properties. In addition, it must include at least one calendar component. is used to specify that data is in the old vCalendar format. 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 Bastille Day is the common name given in English-speaking countries to the national day of France, which is celebrated on 14 July each year. It is referred to, both legally and commonly, as () in French, though ''la fête nationale'' is also u ...
Party" event starting at 5pm on July 14, 1997, and ending at 4am the following morning: BEGIN:VCALENDAR VERSION:2.0 PRODID:-//hacksw/handcal//NONSGML v1.0//EN BEGIN:VEVENT UID:[email protected] ORGANIZER;CN=John Doe:MAILTO:[email protected] DTSTAMP:19970701T100000Z 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 [email protected], 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 A Universally Unique Identifier (UUID) is a 128-bit nominal number, label used to uniquely identify objects in computer systems. The term Globally Unique Identifier (GUID) is also used, mostly in Microsoft systems. When generated according to the ...
recommended instead. The most common representation of date and time is a ''tz timestamp'' such as with the format for a total fixed length of 16 characters. ''Z'' indicates the use of
UTC Coordinated Universal Time (UTC) is the primary time standard globally used to regulate clocks and time. It establishes a reference for the current time, forming the basis for civil time and time zones. UTC facilitates international communica ...
(referring to its Zulu time zone). When used in and 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. Components include: * describes an event, which has a scheduled amount of time on a calendar. Normally, when a user accepts the calendar event, this will cause that time to be considered busy, though an event can be set to be to change this interpretation. A may include a which allows an alarm. Such events have a which sets a starting time, and a which sets an ending time. If the calendar event is recurring, sets up the start of the first event. * explains a to-do item, i.e., an action-item or assignment. Not all calendar applications recognize items. In particular, Outlook does not export Tasks as items, and ignores items in imported calendars. * is a journal entry. They attach descriptive text to a particular calendar date, may be used to record a daily record of activities or accomplishments, or describe progress with a related to-do entry. A calendar component does not take up time on a calendar, so it has no effect on free or busy time (just like entries). In practice, few programs support entries. * is a request for free/busy time, is a response to a request, or is a published set of busy time. * Other component types include , (time zones) and (alarms). Some components can include other components ( is often included in other components). Some components are often defined to support other components defined after them ( is often used this way). 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 (). s have had conversion problems as well. iCalendar's calendar is also not compatible with some non- Gregorian calendars such as the
lunar calendar A lunar calendar is a calendar based on the monthly cycles of the Moon's phases ( synodic months, lunations), in contrast to solar calendars, whose annual cycles are based on the solar year, and lunisolar calendars, whose lunar months are br ...
s used in
Israel Israel, officially the State of Israel, is a country in West Asia. It Borders of Israel, shares borders with Lebanon to the north, Syria to the north-east, Jordan to the east, Egypt to the south-west, and the Mediterranean Sea to the west. Isr ...
and
Saudi Arabia Saudi Arabia, officially the Kingdom of Saudi Arabia (KSA), is a country in West Asia. Located in the centre of the Middle East, it covers the bulk of the Arabian Peninsula and has a land area of about , making it the List of Asian countries ...
. Although there exist one-to-one mappings between Gregorian and many other calendar scales, the lack of defined values for those calendars and limitations in various date fields can make native support impossible. For example the
Hebrew calendar The Hebrew calendar (), also called the Jewish calendar, is a lunisolar calendar used today for Jewish religious observance and as an official calendar of Israel. It determines the dates of Jewish holidays and other rituals, such as '' yahrze ...
year may contain either 12 or 13 months, and the
Japanese Japanese may refer to: * Something from or related to Japan, an island country in East Asia * Japanese language, spoken mainly in Japan * Japanese people, the ethnic group that identifies with Japan through ancestry or culture ** Japanese diaspor ...
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: * X-RECURRENCE-ID: vCalendar 1.0 extension which mimics the iCalendar 2.0 RECURRENCE-ID (Nokia S60 3rd Edition) * X-EPOCAGENDAENTRYTYPE: defines the client calendar type * X-FUNAMBOL-AALARMOPTIONS * X-FUNAMBOL-ALLDAY: All Day event flag * X-MICROSOFT-CDO-ALLDAYEVENT: Microsoft Outlook all day event flag * X-MICROSOFT-CDO-BUSYSTATUS
/code>: Microsoft Outlook status information * X-MICROSOFT-CDO-INTENDEDSTATUS
/code> * X-WR-CALNAME: The display name of the calendar * X-WR-CALDESC: A description of the calendar * X-WR-RELCALID: A globally unique identifier for the calendar * X-WR-TIMEZONE * X-PUBLISHED-TTL: Recommended update interval for subscription to the calendar * X-ALT-DESC: Used to include HTML markup in an event's description. Standard DESCRIPTION tag should contain non-HTML version. * X-FMTTYPE, X-FILEDATE, X-NAME, X-CN, X-STATUS, X-ROLE, X-SENTBY, X-SYMBIAN-DTSTAMP, X-METHOD, X-RECURRENCE-ID, X-EPOCALARM, X-SYMBIAN-LUID, X-EPOCAGENDAENTRYTYPE


List of components, properties, and parameters


Other representations

xCal is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
representation of iCalendar data, as defined in . jCal is a
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
representation of iCalendar data, as defined in .
hCalendar hCalendar (short for ''HTML iCalendar'') is a microformat standard for displaying a semantic (X)HTML representation of iCalendar-format calendar information about an event, on web pages, using HTML classes and ''rel'' attributes. It allows pa ...
is an
(x)HTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, prior ...
representation of a subset of iCalendar data using
microformat Microformats (μF) are predefined HTML markup (like HTML classes) created to serve as descriptive and consistent metadata about elements, designating them as representing a certain type of data (such as contact information, geographic coor ...
s. hEvent is an HTML representation of a subset of iCalendar data using
microformat Microformats (μF) are predefined HTML markup (like HTML classes) created to serve as descriptive and consistent metadata about elements, designating them as representing a certain type of data (such as contact information, geographic coor ...
s addressing some accessibility concerns with the hCalendar format.


See also

* *


References


External links

* Internet Calendaring and Scheduling Core Object Specification (iCalendar) (replaces ) * iCalendar Transport-Independent Interoperability Protocol (iTIP) (replaces ) * iCalendar Message-Based Interoperability Protocol (iMIP) (replaces ) * xCal: The XML format for iCalendar (iCalendar XML Representation) * update of the data formats for including certain characters, forbidden by the existing specification, in parameter values * jCal: The JSON Format for iCalendar * Calendar Availability * New Properties for iCalendar (additional properties to the iCalendar specification) * Event Publishing Extensions to iCalendar * "VALARM" Extensions for iCalendar * Support for iCalendar Relationships * * {{cite web , url = https://icalendar.org/resources.html , title = iCalendar Resources: A list of resources for iCalendar and related standards. Computer file formats Calendaring standards Internet Standards