iCalendar Export
Export your calendar events to iCalendar (.ics) format for use in other calendar applications like Google Calendar, Apple Calendar, Outlook, and more.
The iCalendar export feature allows users to export their calendar events to the standard .ics format, so other calendar applications can import it. It follows RFC 5545 for the file syntax and supports simple events, all-day events, and recurring events.
Key Features
Section titled “Key Features”Complete Event Support
Section titled “Complete Event Support”- Simple events with title, description, location
- All-day events
- Recurring events with RRULE patterns
- Events with exception dates (EXDATE)
- Modified recurring instances (RECURRENCE-ID)
Compatibility
Section titled “Compatibility”- Google Calendar
- Apple Calendar
- Microsoft Outlook
- Thunderbird
These applications read the syntax; see the timezone note above for recurring series.
How to Use
Section titled “How to Use”Desktop Interface
Section titled “Desktop Interface”- Look for the “Export” button in the top-right corner of the calendar header
- Click the button to download the .ics file
- The file downloads as
ilamy-calendar-YYYY-MM-DD.ics, with today’s date (e.g.,ilamy-calendar-2025-08-04.ics)
To hide the button, pass hideExportButton to IlamyCalendar. With your own headerComponent, the prop has no effect: you provide the export control yourself.
The file holds every event the calendar has, not only the ones in view. A recurring series is one event with an RRULE, so the file stays small.
Mobile Interface
Section titled “Mobile Interface”- Tap the menu button (☰) in the top-right corner
- Select “Export Calendar (.ics)” from the dropdown menu
- The file will be downloaded to your device
File format details
Section titled “File format details”- Lines are separated by CRLF, and the file ends with a CRLF after
END:VCALENDAR. - A line longer than 75 octets is folded onto the next line, and a multi-byte character is never split.
,,;and\in the title, description and location are escaped, and newlines become\n.- An all-day series writes
UNTIL,EXDATEandRECURRENCE-IDas dates (UNTIL=20250330,EXDATE;VALUE=DATE:...), the same type as itsDTSTART. - Each event also carries
DTSTAMP,CREATED,LAST-MODIFIED,STATUS:CONFIRMED,SEQUENCE:0andTRANSP:OPAQUE.
Supported Event Properties
Section titled “Supported Event Properties”| Event Property | iCalendar Field | Description |
|---|---|---|
title |
SUMMARY |
Event title or summary |
description |
DESCRIPTION |
Detailed event description |
location |
LOCATION |
Event location or venue |
start |
DTSTART |
Event start date and time |
end |
DTEND |
Event end date and time |
uid |
UID |
Unique identifier for the event |
allDay |
VALUE=DATE |
Formats dates for all-day events |
rrule |
RRULE |
Recurrence rules for repeating events |
exdates |
EXDATE |
Exception dates for recurring events |
recurrenceId |
RECURRENCE-ID |
Modified instances of recurring events |
Example iCalendar Output
Section titled “Example iCalendar Output”Here’s what the exported iCalendar content looks like:
BEGIN:VCALENDARVERSION:2.0PRODID:-//ilamy//ilamy Calendar//ENCALSCALE:GREGORIANMETHOD:PUBLISHX-WR-CALNAME:ilamy CalendarX-WR-CALDESC:Exported from ilamy CalendarBEGIN:VTIMEZONETZID:UTCBEGIN:STANDARDDTSTART:19700101T000000TZNAME:UTCTZOFFSETFROM:+0000TZOFFSETTO:+0000END:STANDARDEND:VTIMEZONEBEGIN:VEVENTDTSTART:20250804T100000ZDTEND:20250804T110000ZSUMMARY:Team MeetingDESCRIPTION:Weekly team syncLOCATION:Conference Room ADTSTAMP:20250804T120000ZCREATED:20250804T120000ZLAST-MODIFIED:20250804T120000ZSTATUS:CONFIRMEDSEQUENCE:0TRANSP:OPAQUEEND:VEVENTEND:VCALENDAR