What is an ICS file and what is it used for?
Daniel Arochena · Creator of Calendaro · Updated 26 October 2026
ICS is a standard format for exchanging calendar information between applications. An ICS file or feed can contain events, dates, times, recurrence rules and other information that apps such as Apple Calendar and Google Calendar can understand.
ICS is a format, not an application
The .ics extension usually identifies an iCalendar document: structured text describing events. Compatible apps can open it without a Calendaro account. The standard defines event properties, but does not dictate how each app displays reminders or when it checks a subscription.
A downloaded file is a copy of the content at that moment. A feed is an address returning that document when the app requests it. Both may contain the same events; the practical difference is how you add them and receive changes.
Reading the parts of an event
VEVENT encloses an event. DTSTART is its start and DTEND its end; for all-day events, the end is exclusive. TZID identifies the time zone and VTIMEZONE describes it. RRULE expresses recurrence, while EXDATE excludes a specific occurrence.
UID identifies the same event across versions. Calendaro keeps that identifier when you edit a saved event; SEQUENCE and LAST-MODIFIED describe revisions. This helps a client recognise updates, but does not force clients to refresh or prevent duplicates caused by importing a file several times.
An example for understanding the format
The snippet below is illustrative, not a URL or a user export. It describes a fictional one-hour appointment using UTC. The Z means UTC: an app may display another time according to its time zone. A complete feed also includes VCALENDAR headers and other fields; this snippet alone is not a complete calendar file.
For a weekly appointment, RRULE:FREQ=WEEKLY;BYDAY=MO,WE expresses Monday and Wednesday. Calendaro offers daily, weekly, monthly and yearly frequencies, rather than an editor for every rule in the standard.
Choosing import or subscription
For a fixed programme, downloading and importing may be enough. Check which calendar receives the events: removing them later depends on that app. For classes or shifts that will be corrected, use the subscription link and edit the original in Calendaro.
Do not both import and subscribe to the same calendar unless you want two copies. A subscription does not write into your other calendars; its events are managed at the source. Removing it in Apple or Google does not delete the original in Calendaro.
When events are missing or duplicated
First check the start date, recurrence end date and selected weekdays in the review. Make sure the calendar is visible in your app. If the downloaded version is correct but the subscription is old, the client's refresh may still be pending.
For duplicates, look for a previous import or two subscriptions. Do not delete the Calendaro original to solve a local copy. If a link stopped working after revocation, use the new address and replace the old subscription. Treat it as an access link: anyone with it can read its events.
BEGIN:VEVENT
UID:fictional-example@calendaro.xyz
DTSTAMP:20261026T080000Z
DTSTART:20261110T160000Z
DTEND:20261110T170000Z
SUMMARY:Dentist (fictional example)
SEQUENCE:0
END:VEVENTFrequently asked questions
Are ICS and iCalendar the same?
iCalendar is the format defined by RFC 5545; .ics is a common extension for files using it. It is not the same as Apple's Calendar app.
Does a downloaded ICS file update?
The downloaded copy does not change. A subscription checks an address and can receive new versions when the app reads it again.
Can I edit a subscription on my phone?
Subscribed events are managed at their source. Edit in Calendaro and wait for the client's next check; this is not two-way synchronisation.