Skip to content

jly-engineer/ICS-Splitter_GUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICS File Splitter v2.0

A lightweight, user-friendly desktop application built with Python and CustomTkinter to split large iCalendar (.ics) files into smaller, more manageable chunks. This is particularly useful for calendar services that have import limits on file size or the number of events.

Features

  • Portable Version: Includes a standalone Windows EXE—run it directly without installing Python or dependencies.
  • Modern GUI: Clean and intuitive interface using CustomTkinter.
  • Customizable Splitting: Define the maximum number of events (VEVENT blocks) per output file.
  • Header & Footer Preservation: Automatically retains the original calendar headers and footers in every split file to ensure compatibility.
  • Non-Blocking UI: Processing runs in a separate thread, keeping the interface responsive during large file operations.
  • Validation: Includes error handling for invalid file paths, non-numeric event counts, and empty calendar files.
  • Real-time Status: Provides visual feedback and pop-up notifications upon success or failure.

Requirements

  • Windows Users: No requirements (use the provided EXE in the dist folder).
  • Other Platforms / Developers: Python 3.7+ and dependencies.

Installation & Usage

Windows (Direct Run)

  1. Download the latest version.
  2. Navigate to the dist folder.
  3. Run gui_ics_splitter.exe. No installation required!

Python Environment

  1. Clone the repository:

    git clone https://github.com/your-username/ics-splitter.git
    cd ics-splitter
  2. Install dependencies: It is recommended to use a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
  3. Run the application:

    python gui_ics_splitter.py
  4. Follow the on-screen steps:

    • Step 1: Click Browse... to select your large .ics file.
    • Step 2: Click Browse... to choose the destination folder for the split files.
    • Step 3: Enter the Maximum Events per File (default is 1500).
    • Step 4: Click Split File.
  5. Check Output: The split files will be named [OriginalName]_part_1.ics, [OriginalName]_part_2.ics, etc., in your selected directory.

Technical Details

The application parses the input file to identify BEGIN:VEVENT and END:VEVENT blocks. It extracts the global calendar metadata (everything before the first event) and the footer (usually END:VCALENDAR) to wrap each new chunk of events, ensuring every output file is a valid iCalendar file.

License

MIT License (or your preferred license)

About

ICS File Splitter v2.0: A modern Python GUI tool built with CustomTkinter for splitting large iCalendar (.ics) files. Easily divide files by a custom event count while preserving headers and footers for full compatibility. Features a responsive, threaded UI and robust error validation, perfect for bypassing calendar service import restrictions now.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages