iCalendar MIME Type

Learn what text/calendar and .ics files contain, how iCalendar represents events and recurrence, and how Poly supports them.

MIME type details for text/calendar

In active use
MIME typetext/calendar
Extensions
.ics.ifb
First standardized1998
Created byIETF Calendaring and Scheduling Working Group
Browser support
Example applicationsApple Calendar, Google Calendar, Microsoft Outlook
Poly supportYes. Poly recognizes `.ics` files and makes their calendar text available for preview, search, and agent use. It does not turn them into a calendar view or expand recurring events.
Indexed by PolyYes. Poly indexes iCalendar source text for exact and semantic search, including readable titles, descriptions, locations, and attendee details.
Preview in PolyPartial. iCalendar files open in Poly's text editor as readable source, not as a calendar grid or event form.
Poly agentYes. The Poly agent can read and reason about iCalendar text. Recurrence rules, time zones, and vendor extensions remain source fields rather than normalized events.

What does text/calendar mean?

The text/calendar media type identifies iCalendar data, a text format for exchanging events, tasks, journal entries, free/busy information, alarms, and time-zone definitions. It is a data format rather than a calendar service. The same iCalendar object can travel in an email invitation, be downloaded as a file, or be served from a calendar subscription.1

IANA registers .ics for general calendar and scheduling data and .ifb for free/busy data. There is no magic number. A typical file instead begins with BEGIN:VCALENDAR and contains VERSION:2.0, but those text lines are structural markers rather than a binary signature.12

The leading “i” in iCalendar does not mean Apple-only. iCalendar is an IETF standard used across Apple Calendar, Google Calendar, Microsoft Outlook, CalDAV services, email scheduling, and many other products.

How is an iCalendar file structured?

An iCalendar object is a sequence of content lines inside a VCALENDAR component. Each content line has a property name, optional parameters, a colon, and a value. PRODID identifies the software that created the data, while VERSION:2.0 selects the iCalendar version.2

This small .ics file describes one event:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp//Calendar Export//EN
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20260806T180000Z
DTSTART:20260812T170000Z
DTEND:20260812T180000Z
SUMMARY:Project planning
LOCATION:Conference room 2
END:VEVENT
END:VCALENDAR

VEVENT is the component most people encounter, but the standard defines several others:2

ComponentRepresentsCommon properties
VEVENTAn event or appointmentDTSTART, DTEND, SUMMARY, LOCATION
VTODOA taskDUE, STATUS, PERCENT-COMPLETE
VJOURNALA journal entrySUMMARY, DESCRIPTION
VFREEBUSYAvailability periodsFREEBUSY, DTSTART, DTEND
VTIMEZONEA time-zone definitionTZID, STANDARD, DAYLIGHT
VALARMAn alarm nested inside an event or taskTRIGGER, ACTION

The format has a few details that make hand editing less simple than it looks. Lines use CRLF endings. A content line longer than 75 octets should be folded, with each continuation beginning with a space or tab. Text values escape characters such as commas, semicolons, backslashes, and newlines. Current iCalendar streams are generated as UTF-8.2

When troubleshooting an import, use an iCalendar validator or a calendar application's own export as a reference. A general text editor will not automatically unfold lines, validate recurrence rules, or detect a missing required property.

Where did text/calendar come from?

The IETF Calendaring and Scheduling Working Group standardized iCalendar in RFC 2445 in November 1998. Frank Dawson of Lotus and Derik Stenerson of Microsoft edited that first specification to provide a common, open exchange format for Internet calendaring.3

RFC 5545 replaced RFC 2445 in September 2009 and remains the core specification. It clarified the grammar and interoperability rules while retaining VERSION:2.0. The format was based heavily on the earlier vCalendar industry specification, which is why older files and products may use the similar vCalendar name.12

Newer RFCs extend iCalendar without changing the media type. For example, RFC 7986 added properties for a calendar's name, description, color, image, and refresh interval. Readers are expected to tolerate properties they do not understand, including vendor-defined names beginning with X-, although they may ignore them.4

How do you open an .ics file?

Use a calendar application when you want to see or add the events. Apple Calendar imports and exports .ics files. Google Calendar can import them and documents the required VCALENDAR and VEVENT boundaries. Outlook on the web can upload an .ics file or subscribe to a calendar URL.567

Current web browsers do not provide a standard native iCalendar viewer. Clicking an .ics link normally downloads the file or hands it to a calendar application. A website may offer its own event preview, but that interface is not browser rendering of text/calendar itself.

Importing and subscribing are different:

  • Importing copies the events that exist in the file at that moment.
  • Subscribing keeps a relationship with a published calendar URL so later updates can be fetched.

Outlook explicitly notes that imported .ics events do not refresh when the source calendar changes, while a subscribed calendar does.7 If continued updates matter, use a trusted subscription URL rather than repeatedly importing snapshots.

Support in Poly

Poly recognizes .ics calendar files and keeps their readable content easy to inspect and find. Titles, descriptions, locations, attendee details, dates, and recurrence fields can participate in exact and meaning-based search. The file opens in Poly's text editor, where you can inspect the original iCalendar source.

The preview is intentionally source-oriented. Poly does not render a month or agenda view, expand an RRULE into every occurrence, resolve every time-zone definition into local display times, or turn each VEVENT into a separate Poly object. It also does not infer the registered .ifb extension as text/calendar from the filename alone.

The Poly agent can read the calendar text and answer questions about its stated events and fields. For ambiguous local times, complex recurrence, or vendor extensions, treat the answer as an interpretation of the source and confirm it in a calendar application that implements the relevant rules.

Time zones and recurring events

iCalendar can express a date-time in three important ways:2

  • A value ending in Z, such as 20260812T170000Z, is UTC.
  • A value with TZID, such as DTSTART;TZID=America/Los_Angeles:20260812T100000, refers to a named time zone.
  • A local value without Z or TZID is a “floating” time. It is interpreted in the viewer's current time zone.

Recurrence uses RRULE, often with exception dates in EXDATE and additional dates in RDATE. For example, RRULE:FREQ=WEEKLY;COUNT=6 describes six weekly occurrences beginning with DTSTART. The displayed result can still depend on the start time, time-zone definition, daylight-saving transitions, exclusions, and how the receiving application handles unsupported extensions.2

Do not remove a VTIMEZONE component or TZID merely to make a file shorter. Doing so can shift an appointment or turn a wall-clock meeting into a different instant, especially across daylight-saving changes.

Converting iCalendar to other formats

Choose a destination based on whether the result must remain calendar-aware:

DestinationUseful forImportant loss or limitation
Another .ics fileFiltering or combining calendars while retaining iCalendar semanticsPreserve unique IDs, recurrence exceptions, time zones, and unknown extensions
CSVSimple one-row-per-event analysisRecurrence, alarms, attendees, time zones, and nested components need custom columns or expansion
JSONApplication APIs and custom processingThere is no single universal iCalendar-to-JSON mapping
PDF or HTMLA fixed human-readable scheduleThe result is not importable as a live calendar and does not update

Export or convert with a calendar-aware library. Renaming .ics to .csv does not convert its content. If recurrence is expanded into rows, record the time zone and the date range used, since an unbounded recurring series has no natural final row.

Security, privacy, and interoperability

Calendar data is often sensitive. An .ics file may expose attendee email addresses, meeting locations, conference links, descriptions, organizer details, travel plans, or availability. RFC 5545 calls calendar information privacy-sensitive and recommends protecting it against eavesdropping, replay, insertion, deletion, and modification during transport.2

The CLASS:PRIVATE property is calendar metadata, not encryption or access control. Share the file through an appropriately protected channel, and inspect the source before publishing it.

iCalendar can also contain external URLs and attachments. Treat unexpected links and imported invitations as untrusted input. A calendar application should place limits on file size, nesting, recurrence expansion, and embedded data, and it should not fetch remote resources without an appropriate trust decision.

Interoperability problems usually come from malformed line folding, incorrect escaping, unsupported vendor extensions, time-zone differences, or applications preserving different subsets of properties. Keep the original file, test important exports in the receiving application, and verify several recurring occurrences around daylight-saving transitions.

Footnotes

  1. Internet Assigned Numbers Authority. text/calendar Media Type Registration. The registration lists the media-type parameters, .ics and .ifb extensions, absence of a magic number, and intended uses. 2 3
  2. Internet Engineering Task Force. RFC 5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar). The current core specification defines the object model, syntax, components, recurrence, time zones, UTF-8 requirements, and security considerations. 2 3 4 5 6 7 8
  3. Internet Engineering Task Force. RFC 2445: Internet Calendaring and Scheduling Core Object Specification (iCalendar). The original November 1998 standard records the format's purpose, authors, and working-group origin.
  4. Internet Engineering Task Force. RFC 7986: New Properties for iCalendar. This extension defines calendar-level name, description, color, image, source, and refresh properties.
  5. Apple Support. Import or export calendars on Mac. Apple documents importing and exporting .ics calendars in Calendar.
  6. Google Calendar Help. Import events to Google Calendar. Google documents .ics import and the required iCalendar wrapper and event lines.
  7. Microsoft Support. Import or subscribe to a calendar in Outlook.com or Outlook on the web. Microsoft documents .ics upload, calendar subscriptions, and the update difference between them. 2
© Poly Corp. 2026