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:VEVENT…END:VEVENT and BEGIN:VTODO…END: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:
- Parse every file into a list of component blocks.
- For each block, find its
UIDline. - If deduplication is on and that UID was already added, skip the block; otherwise keep it and record the UID.
- Wrap all surviving blocks in one fresh
VCALENDARwith a newVERSIONandPRODIDheader.
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.