---
title: "Split ICS"
description: "Drop a large .ics calendar, choose how many entries each part may hold, and download a ZIP of smaller .ics files that importers accept. Each part is a complete calendar with the time zones its own events need. Recurring series stay whole, and nothing is uploaded."
url: https://findutils.com/convert/split-ics/
category: convert
---

# Split ICS

Drop a large .ics calendar, choose how many entries each part may hold, and download a ZIP of smaller .ics files that importers accept. Each part is a complete calendar with the time zones its own events need. Recurring series stay whole, and nothing is uploaded.

**Use this tool:** [Split ICS](https://findutils.com/convert/split-ics/)

## Programmatic access

- REST id `split-ics`: POST https://api.findutils.com/api/tools/split-ics/execute (reference: https://findutils.com/api/split-ics/)
- MCP tool `split_ics` on https://mcp.findutils.com (reference: https://findutils.com/mcp/split-ics/)

## Why Split an ICS File in the Browser?

A big calendar export is the one that fails to import. A calendar app times out, rejects the file, or imports a fraction of it and says nothing, and the usual advice is to split the file into smaller ones. Doing that by hand means cutting VEVENT blocks out of a text file, keeping every part a valid calendar with its header and its time zone definitions, and never cutting a recurring series in half. This page does the cut for you: pick how many entries each part may hold, and download a ZIP of complete .ics files to import one at a time. The calendar never leaves your browser.

## Frequently Asked Questions

### Why does my calendar app refuse to import a large .ics file?

Calendar apps and web importers differ in how much they accept in one request, and most do not publish the limit; an import can time out, be rejected, or stop partway with no message. The practical fix is smaller files. This page cuts the calendar into parts of a size you choose, and if a part still fails, pick a smaller chunk and try again. No specific limit is claimed here, because none is guaranteed.

### What chunk size should I choose?

Start with the default of 250 entries per part. If an import still fails, halve it. If every part imports easily and there are many of them, double it. The chunk size counts entries of every kind: events, to-dos and journal entries. The table under the input shows how many events each part holds and how large each part is, so you can judge before downloading.

### Is each part a valid calendar on its own?

Yes. Each part starts with BEGIN:VCALENDAR and ends with END:VCALENDAR, carries the source header properties (VERSION, PRODID, CALSCALE, METHOD and the X-WR- hints), holds only the VTIMEZONE definitions its own entries reference, and then the entries themselves, written exactly as they were read. A part imports on its own, in any order.

### What happens to recurring events?

A recurring series stays in one part. The master event and any modified occurrences share a UID, and entries with the same UID are moved as one unit; when the unit does not fit in the part being filled, it starts the next one. That is why a part can hold slightly fewer entries than the chunk size. Recurrence rules are copied as text and never expanded into occurrences.

### How are time zones handled?

Each part carries only the VTIMEZONE blocks that its own entries reference through a TZID parameter. A part whose events are all in UTC carries none; a part with events in Europe/Istanbul and America/New_York carries both definitions. Times are copied as stated, with their TZID or trailing Z, and are never converted between zones.

### What are the parts named?

Inside the ZIP the files are part-001.ics, part-002.ics and so on, and the ZIP is named after the uploaded file with -split added. If you type a calendar name prefix, each part's X-WR-CALNAME becomes the prefix and its position, such as Work (part 2 of 5), which some calendar apps show as the calendar title on import. Without a prefix, the source calendar's own name is copied into every part.

### Why do I get a single file instead of a ZIP?

Because the whole calendar fits in one part at the chunk size you chose, so there is nothing to split. The page then offers the single .ics rather than a ZIP holding one file. Pick a smaller chunk size to get several parts.

### Does splitting change the order of my events?

No. Entries are cut in file order and keep that order inside each part. Nothing is sorted by date, so the first part holds the first entries of the file, whatever their dates. Sorting a calendar before splitting it is a different job; the ICS to CSV tool can show you the dates in order first.

### Is my calendar uploaded anywhere?

No. The file is read, split and packed into the ZIP in your browser, and no request carries the calendar text. You can confirm that in the browser's network panel while splitting.

### Can I split calendars from a script?

Yes. The same code runs on the FindUtils API and MCP server as the split_ics tool. Send the .ics text as input with chunk_size and an optional name_prefix, and read the parts array, which holds one complete .ics text per part, along with the per-part event counts.

## Related Tools

- [Merge ICS](https://findutils.com/convert/merge-ics/)
- [ICS to CSV](https://findutils.com/convert/ics-to-csv/)
- [ICS to JSON](https://findutils.com/convert/ics-to-json/)
- [CSV to ICS](https://findutils.com/convert/csv-to-ics/)
- [Timezone Converter](https://findutils.com/productivity/timezone-converter/)
- [Date Difference Calculator](https://findutils.com/calculate/date-difference-calculator/)
- [CSV Viewer](https://findutils.com/convert/csv-viewer/)
