ICS Calendar Merger

Combine multiple .ics files into one calendar without duplicates

Free ICS merger — paste several iCalendar files and combine their VEVENT and VTODO items into a single valid VCALENDAR, with optional UID-based deduplication. Produces a download-ready .ics entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

How are duplicate events detected?

Each VEVENT and VTODO carries a UID. With deduplication on, the merger keeps only the first item it sees for any given UID and skips later copies, which removes the duplicates that appear when the same calendar is shared twice.

An ICS merger combines several iCalendar files into one. When you subscribe to multiple calendars or export the same events from different tools, you often end up with separate .ics files and duplicate entries. This free tool stitches the events and tasks together into a single valid calendar, optionally removing duplicates, all in your browser.

How it works

The merger reads each pasted file and extracts the text between every BEGIN:VEVENTEND:VEVENT and BEGIN:VTODOEND:VTODO pair, preserving the original lines inside each block. For deduplication it reads the UID property of each block and keeps a set of UIDs already seen:

  1. Parse every file into a list of component blocks.
  2. For each block, find its UID line.
  3. If deduplication is on and that UID was already added, skip the block; otherwise keep it and record the UID.
  4. Wrap all surviving blocks in one fresh VCALENDAR with a new VERSION and PRODID header.

Because the inner lines are copied verbatim, properties, alarms, and recurrence rules inside each event are kept intact.

When you need a calendar merger

Common scenarios where merging several ICS files is necessary:

  • Team calendar export plus personal calendar — you exported a work project calendar and your personal calendar separately and want one file for offline use.
  • Duplicate subscriptions — you accidentally subscribed to the same shared calendar in two apps, both of which exported to ICS, resulting in every event appearing twice.
  • Archive consolidation — you have yearly ICS exports from an old calendar app and want a single file covering all years.
  • Tool migration — you switched from one project management tool to another, each exporting events in ICS, and want a merged history.

Understanding the deduplication option

ICS deduplication works on UID values — the unique identifier each VEVENT or VTODO carries. When the same event is exported from two different calendar apps, it usually retains the same UID, so the merger can detect and remove the copy.

When to turn deduplication on: you have the same calendar exported from two different tools, or you accidentally subscribed twice.

When to turn deduplication off: you have two genuinely different calendars that coincidentally contain events with the same title but different UIDs — or you want to keep both copies of a recurring event that was modified and re-exported.

Events with no UID are always kept regardless of the deduplication setting, since there is no key to compare. RFC 5545 requires every VEVENT to have a UID, but not all exporters comply.

Time zone considerations

This tool merges event blocks verbatim but does not carry VTIMEZONE definitions from the source files into the output. Events that reference a named time zone via TZID will still have the correct TZID string in the merged file, but the corresponding VTIMEZONE definition will not be present unless you add it manually or export events in UTC.

For most calendar apps this is not a problem — they recognise common TZID strings (like America/New_York or Europe/London) from their own time zone database. However, if a strict app rejects the merged file, use the ICS validator tool and look for TZID-related warnings.

Tips

  • Put your most authoritative calendar in the first box. On a UID clash the first occurrence wins.
  • Export source calendars to UTC when precision across time zones matters most.
  • Run the merged file through the ICS validator if a destination app rejects it.
  • All processing is local. Event details, attendee information, and notes in your calendar files never leave your browser.