A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.wikipedia.org/wiki/ICalendar below:

iCalendar - Wikipedia

From Wikipedia, the free encyclopedia

Computer file format for calendar information

".ics" redirects here. For other uses, see

ICS

.

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.

iCalendar is used and supported by many products, including:

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.

iCalendar components and their properties

iCalendar was 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) which has the .vcs file extension.[4] 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]

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
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
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 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.

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[edit] Name Kind RFC section (RFC 5545[1]: 155–159, section 8.3  by default) MS-OXCICAL section 2.1.3[18] subsections VCALENDAR Component 3.4. iCalendar Object 1.1 VEVENT Component 3.6.1. Event Component 1.1.20 VTODO Component 3.6.2. To-Do Component VJOURNAL Component 3.6.3. Journal Component VFREEBUSY Component 3.6.4. Free/Busy Component VTIMEZONE Component 3.6.5. Time Zone Component STANDARD Component 3.6.5. Time Zone Component 1.1.19.2 DAYLIGHT Component 3.6.5. Time Zone Component 1.1.19.3 VALARM Component 3.6.6. Alarm Component VAVAILABILITY Component RFC 7953 section 3.1. VAVAILABILITY Component AVAILABLE Component RFC 7953 section 3.1. VAVAILABILITY Component PARTICIPANT Component RFC 9073 section 7.1. Participant VLOCATION Component RFC 9073 section 7.2. Location VRESOURCE Component RFC 9073 section 7.3. Resource CALSCALE Property 3.7.1. Calendar Scale METHOD Property 3.7.2. Method 1.1.1 PRODID Property 3.7.3. Product Identifier 1.1.2 VERSION Property 3.7.4. Version 1.1.3 X-CALEND Property 1.1.4 X-CALSTART Property 1.1.5 X-CLIPEND Property 1.1.6 X-CLIPSTART Property 1.1.7 X-MICROSOFT-CALSCALE Property 1.1.8 X-MS-OLK-FORCEINSPECTOROPEN Property 1.1.9 X-MS-WKHRDAYS Property 1.1.10 X-MS-WKHREND Property 1.1.11 X-MS-WKHRSTART Property 1.1.12 X-OWNER Property 1.1.13 X-PRIMARY-CALENDAR Property 1.1.14 X-PUBLISHED-TTL Property 1.1.15 X-WR-CALDESC Property 1.1.16 X-WR-CALNAME Property 1.1.17 X-WR-RELCALID Property 1.1.18 ATTACH Property 3.8.1.1. Attachment 1.1.20.1 CATEGORIES Property 3.8.1.2. Categories, RFC 7986 section 5.6. CATEGORIES Property 1.1.20.3 CLASS Property 3.8.1.3. Classification 1.1.20.4 COMMENT Property 3.8.1.4. Comment 1.1.20.5 DESCRIPTION Property 3.8.1.5. Description, RFC 7986 section 5.2. DESCRIPTION Property 1.1.20.11, 1.1.20.62.3 GEO Property 3.8.1.6. Geographic Position LOCATION Property 3.8.1.7. Location 1.1.20.15 PERCENT-COMPLETE Property 3.8.1.8. Percent Complete PRIORITY Property 3.8.1.9. Priority 1.1.20.17 RESOURCES Property 3.8.1.10. Resources 1.1.20.21 STATUS Property 3.8.1.11. Status 1.1.20.23 SUMMARY Property 3.8.1.12. Summary 1.1.20.24 COMPLETED Property 3.8.2.1. Date-Time Completed DTEND Property 3.8.2.2. Date-Time End 1.1.20.8 DUE Property 3.8.2.3. Date-Time Due DTSTART Property 3.8.2.4. Date-Time Start 1.1.19.2.1, 1.1.19.3.1, 1.1.20.10 DURATION Property 3.8.2.5. Duration 1.1.20.12 FREEBUSY Property 3.8.2.6. Free/Busy Time TRANSP Property 3.8.2.7. Time Transparency 1.1.20.25 TZID Property 3.8.3.1. Time Zone Identifier 1.1.19.1 TZNAME Property 3.8.3.2. Time Zone Name 1.1.19.2.3, 1.1.19.3.3 TZOFFSETFROM Property 3.8.3.3. Time Zone Offset From 1.1.19.2.4, 1.1.19.3.4 TZOFFSETTO Property 3.8.3.4. Time Zone Offset To 1.1.19.2.5, 1.1.19.3.5 TZURL Property 3.8.3.5. Time Zone URL ATTENDEE Property 3.8.4.1. Attendee 1.1.20.2 CONTACT Property 3.8.4.2. Contact 1.1.20.6 ORGANIZER Property 3.8.4.3. Organizer 1.1.20.16 RECURRENCE-ID Property 3.8.4.4. Recurrence ID 1.1.20.20 RELATED-TO Property 3.8.4.5. Related To, RFC 9253 section 9.1. RELATED-TO URL Property 3.8.4.6. Uniform Resource Locator, RFC 7986 section 5.5. URL Property UID Property 3.8.4.7. Unique Identifier, RFC 7986 section 5.3. UID Property 1.1.20.26 EXDATE Property 3.8.5.1. Exception Date-Times 1.1.20.13 RDATE Property 3.8.5.2. Recurrence Date-Times 1.1.20.18 RRULE Property 3.8.5.3. Recurrence Rule 1.1.19.2.2, 1.1.19.3.2, 1.1.20.19 ACTION Property 3.8.6.1. Action 1.1.20.62.2 REPEAT Property 3.8.6.2. Repeat Count TRIGGER Property 3.8.6.3. Trigger 1.1.20.62.1 CREATED Property 3.8.7.1. Date-Time Created 1.1.20.7 DTSTAMP Property 3.8.7.2. Date-Time Stamp 1.1.20.9 LAST-MODIFIED Property 3.8.7.3. Last Modified, RFC 7986 section 5.4. LAST-MODIFIED Property 1.1.20.14 SEQUENCE Property 3.8.7.4. Sequence Number 1.1.20.22 REQUEST-STATUS Property 3.8.8.3. Request Status X-ALT-DESC Property 1.1.20.27 X-MICROSOFT-CDO-ALLDAYEVENT Property 1.1.20.28 X-MICROSOFT-CDO-APPT-SEQUENCE Property 1.1.20.29 X-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE Property 1.1.20.30 X-MICROSOFT-CDO-BUSYSTATUS Property 1.1.20.31 X-MICROSOFT-CDO-IMPORTANCE Property 1.1.20.32 X-MICROSOFT-CDO-INSTTYPE Property 1.1.20.33 X-MICROSOFT-CDO-INTENDEDSTATUS Property 1.1.20.34 X-MICROSOFT-CDO-OWNERAPPTID Property 1.1.20.35 X-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE Property 1.1.20.36 X-MICROSOFT-CDO-REPLYTIME Property 1.1.20.37 X-MICROSOFT-DISALLOW-COUNTER Property 1.1.20.38 X-MICROSOFT-EXDATE Property 1.1.20.39 X-MICROSOFT-ISDRAFT Property 1.1.20.40 X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT Property 1.1.20.41 X-MICROSOFT-MSNCALENDAR-BUSYSTATUS Property 1.1.20.42 X-MICROSOFT-MSNCALENDAR-IMPORTANCE Property 1.1.20.43 X-MICROSOFT-MSNCALENDAR-INTENDEDSTATUS Property 1.1.20.44 X-MICROSOFT-RRULE Property 1.1.20.45 X-MS-OLK-ALLOWEXTERNCHECK Property 1.1.20.46 X-MS-OLK-APPTLASTSEQUENCE Property 1.1.20.47 X-MS-OLK-APPTSEQTIME Property 1.1.20.48 X-MS-OLK-AUTOFILLLOCATION Property 1.1.20.49 X-MS-OLK-AUTOSTARTCHECK Property 1.1.20.50 X-MS-OLK-COLLABORATEDOC Property 1.1.20.51 X-MS-OLK-CONFCHECK Property 1.1.20.52 X-MS-OLK-CONFTYPE Property 1.1.20.53 X-MS-OLK-DIRECTORY Property 1.1.20.54 X-MS-OLK-MWSURL Property 1.1.20.55 X-MS-OLK-NETSHOWURL Property 1.1.20.56 X-MS-OLK-ONLINEPASSWORD Property 1.1.20.57 X-MS-OLK-ORGALIAS Property 1.1.20.58 X-MS-OLK-SENDER Property 1.1.20.61 BUSYTYPE Property RFC 7953 section 3.2. Busy Time Type NAME Property RFC 7986 section 5.1. NAME Property REFRESH-INTERVAL Property RFC 7986 section 5.7. REFRESH-INTERVAL Property SOURCE Property RFC 7986 section 5.8. SOURCE Property COLOR Property RFC 7986 section 5.9. COLOR Property IMAGE Property RFC 7986 section 5.10. IMAGE Property CONFERENCE Property RFC 7986 section 5.11. CONFERENCE Property CALENDAR-ADDRESS Property RFC 9073 section 6.4. Calendar Address LOCATION-TYPE Property RFC 9073 section 6.1. Location Type PARTICIPANT-TYPE Property RFC 9073 section 6.2. Participant Type RESOURCE-TYPE Property RFC 9073 section 6.3. Resource Type STRUCTURED-DATA Property RFC 9073 section 6.6. Structured-Data STYLED-DESCRIPTION Property RFC 9073 section 6.5. Styled-Description ACKNOWLEDGED Property RFC 9074 section 6.1. Acknowledged Property PROXIMITY Property RFC 9074 section 8.1. Proximity Property CONCEPT Property RFC 9253 section 8.1. Concept LINK Property RFC 9253 section 8.2. Link REFID Property RFC 9253 section 8.3. Refid ALTREP Parameter 3.2.1. Alternate Text Representation 1.1.20.15.1 CN Parameter 3.2.2. Common Name 1.1.13.1, 1.1.20.2.1, 1.1.20.16.1, 1.1.20.61.1 CUTYPE Parameter 3.2.3. Calendar User Type 1.1.20.2.2 DELEGATED-FROM Parameter 3.2.4. Delegators DELEGATED-TO Parameter 3.2.5. Delegatees DIR Parameter 3.2.6. Directory Entry Reference ENCODING Parameter 3.2.7. Inline Encoding 1.1.20.1.1 FMTTYPE Parameter 3.2.8. Format Type 1.1.20.1.2, 1.1.20.27.1 FBTYPE Parameter 3.2.9. Free/Busy Time Type LANGUAGE Parameter 3.2.10. Language 1.1.20.11.1, 1.1.20.15.2, 1.1.20.24.1 MEMBER Parameter 3.2.11. Group or List Membership PARTSTAT Parameter 3.2.12. Participation Status 1.1.20.2.3 RANGE Parameter 3.2.13. Recurrence Identifier Range RELATED Parameter 3.2.14. Alarm Trigger Relationship RELTYPE Parameter 3.2.15. Relationship Type, RFC 9074 section 7.1. Relationship Type Property Parameter, RFC 9253 sections 4 and 5 ROLE Parameter 3.2.16. Participation Role 1.1.20.2.4 RSVP Parameter 3.2.17. RSVP Expectation 1.1.20.2.5 SENT-BY Parameter 3.2.18. Sent By TZID Parameter 3.2.19. Time Zone Identifier 1.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 VALUE Parameter 3.2.20. Value Data Types 1.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-FILENAME Parameter 1.1.20.1.4 X-MS-OLK-RESPTIME Parameter 1.1.20.2.6 X-MICROSOFT-ISLEAPMONTH Parameter 1.1.20.45.2 DISPLAY Parameter RFC 7986 section 6.1. DISPLAY Property Parameter EMAIL Parameter RFC 7986 section 6.2. EMAIL Property Parameter FEATURE Parameter RFC 7986 section 6.3. FEATURE Property Parameter LABEL Parameter RFC 7986 section 6.4. LABEL Property Parameter ORDER Parameter RFC 9073 section 5.1. Order SCHEMA Parameter RFC 9073 section 5.2. Schema DERIVED Parameter RFC 9073 section 5.3. Derived GAP Parameter RFC 9253 section 6.2. Gap LINKREL Parameter RFC 9253 section 6.1. Link Relation Other representations[edit]

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.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4