Skip to content
Surf Wiki
Save to docs
general/computer-file-formats

From Surf Wiki (app.surf) — the open knowledge base

ICalendar

Computer file format for calendar information


Computer file format for calendar information

FieldValue
extension.ical, .ics, .ifb, .icalendar
mimetext/calendar
genreCalendar data exchange
standard(Updated by: , , , )
openYes

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, 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 . 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:

  • general consumer: Apple Calendar (formerly iCal), eM Client, Google Calendar, Yahoo! Calendar
  • corporate: HCL Domino (formerly IBM Notes and Lotus Notes)
  • free software: GNOME Evolution, GNU Emacs, Mozilla Thunderbird, and SeaMonkey 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

thumb|iCalendar components and their properties

iCalendar was created in 1998 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 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 (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 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. The work was then picked up by the "Calendaring Extensions Working Group" (ietf-calext WG).

Design

iCalendar data have the MIME 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 codes in Apple Macintosh operating system environments are and .

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: ). 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 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 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: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.

The most common representation of date and time is a tz timestamp based on ISO 8601 format, such as , with the format for a total fixed length of 16 characters. Z indicates the use of UTC (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 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 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:

  • 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](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/cd68eae7-ed65-4dd3-8ea7-ad585c76c736): Microsoft Outlook status information
  • [X-MICROSOFT-CDO-INTENDEDSTATUS](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/df1c7988-9908-4ee6-95b0-fcd180b02b44)
  • 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

NameKindpages=155–159location=section 8.3page=}} by default)last=date=2020-10-13title=[MS-OXCICAL]: 2.1.3 Processing Rulesurl=https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/74d3bf60-f30d-4fca-84d3-cfd04da8e627url-status=livearchive-url=https://web.archive.org/web/20231116165430/https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcical/74d3bf60-f30d-4fca-84d3-cfd04da8e627archive-date=2023-11-16access-date=2023-11-16website=learn.microsoft.comlanguage=en-us}} 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
VAVAILABILITYComponentRFC 7953 section 3.1. VAVAILABILITY Component
AVAILABLEComponentRFC 7953 section 3.1. VAVAILABILITY Component
PARTICIPANTComponentRFC 9073 section 7.1. Participant
VLOCATIONComponentRFC 9073 section 7.2. Location
VRESOURCEComponentRFC 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
BUSYTYPEPropertyRFC 7953 section 3.2. Busy Time Type
NAMEPropertyRFC 7986 section 5.1. NAME Property
REFRESH-INTERVALPropertyRFC 7986 section 5.7. REFRESH-INTERVAL Property
SOURCEPropertyRFC 7986 section 5.8. SOURCE Property
COLORPropertyRFC 7986 section 5.9. COLOR Property
IMAGEPropertyRFC 7986 section 5.10. IMAGE Property
CONFERENCEPropertyRFC 7986 section 5.11. CONFERENCE Property
CALENDAR-ADDRESSPropertyRFC 9073 section 6.4. Calendar Address
LOCATION-TYPEPropertyRFC 9073 section 6.1. Location Type
PARTICIPANT-TYPEPropertyRFC 9073 section 6.2. Participant Type
RESOURCE-TYPEPropertyRFC 9073 section 6.3. Resource Type
STRUCTURED-DATAPropertyRFC 9073 section 6.6. Structured-Data
STYLED-DESCRIPTIONPropertyRFC 9073 section 6.5. Styled-Description
ACKNOWLEDGEDPropertyRFC 9074 section 6.1. Acknowledged Property
PROXIMITYPropertyRFC 9074 section 8.1. Proximity Property
CONCEPTPropertyRFC 9253 section 8.1. Concept
LINKPropertyRFC 9253 section 8.2. Link
REFIDPropertyRFC 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
DISPLAYParameterRFC 7986 section 6.1. DISPLAY Property Parameter
EMAILParameterRFC 7986 section 6.2. EMAIL Property Parameter
FEATUREParameterRFC 7986 section 6.3. FEATURE Property Parameter
LABELParameterRFC 7986 section 6.4. LABEL Property Parameter
ORDERParameterRFC 9073 section 5.1. Order
SCHEMAParameterRFC 9073 section 5.2. Schema
DERIVEDParameterRFC 9073 section 5.3. Derived
GAPParameterRFC 9253 section 6.2. Gap
LINKRELParameterRFC 9253 section 6.1. Link Relation

Other representations

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

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

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.

References

References

  1. (September 2009). "Internet Calendaring and Scheduling Core Object Specification (iCalendar)". [[Internet Engineering Task Force]].
  2. "IBM Lotus Notes 8.5 iCalendar: Interoperability, implementation, and application". IBM DeveloperWorks.
  3. "iCalendar.org". Z Content.
  4. (1996-09-18). "vCalendar: The Electronic Calendaring and Scheduling Exchange Format, Version 1.0". [[Internet Mail Consortium]].
  5. (2006-11-26). "vCalendar: The Basis for Cross-Platform Scheduling". [[Internet Mail Consortium]].
  6. "Calendaring and Scheduling Standards Simplification (calsify)". [[IETF]].
  7. Lear, Eliot. (2010-12-10). "the end of calsify working group– not the end of the mailing list". ietf-calsify mailing list.
  8. "Calendaring Extensions (calext)". [[IETF]].
  9. "Internet Calendaring and Scheduling Core Object Specification (iCalendar)".
  10. From RFC 2445
  11. "iCalendar Property Extensions".
  12. "Internet Calendaring and Scheduling Core Object Specification (iCalendar)".
  13. "Internet Calendaring and Scheduling Core Object Specification (iCalendar)".
  14. "[RFC5546] Section 3.4 Methods for VTODO Components".
  15. CalConnect, 2004
  16. "[MS-OXCICAL]: Property: X-WR-RELCALID".
  17. (October 8, 2009). "iCal and vCal Properties".
  18. (2020-10-13). "[MS-OXCICAL]: 2.1.3 Processing Rules".
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about ICalendar — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report