https://github.com/ronknight/Text-to-Google-Calendar-CSV-ICS-Converter
🔧 A Python-based system that converts retail event calendars (tab-delimited text files) into Google Calendar-compatible ICS files with notifications for both major and minor events.
https://github.com/ronknight/Text-to-Google-Calendar-CSV-ICS-Converter
calendar csv google txt-files
Last synced: 6 months ago
JSON representation
🔧 A Python-based system that converts retail event calendars (tab-delimited text files) into Google Calendar-compatible ICS files with notifications for both major and minor events.
- Host: GitHub
- URL: https://github.com/ronknight/Text-to-Google-Calendar-CSV-ICS-Converter
- Owner: ronknight
- License: mit
- Created: 2024-04-05T23:19:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-17T18:05:23.000Z (10 months ago)
- Last Synced: 2025-04-10T14:45:52.667Z (6 months ago)
- Topics: calendar, csv, google, txt-files
- Language: Python
- Homepage: https://www.pinoyitsolution.com
- Size: 119 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
🗓️ Text to Google Calendar CSV/ICS Converter
🔧 A Python-based system that converts retail event calendars (tab-delimited text files) into Google Calendar-compatible ICS files with notifications for both major and minor events.
Project Overview •
Files •
Installation •
Usage •
Retail Calendar Content •
Visualization •
Disclaimer---
## 📋 Project Overview
This project provides tools to convert tab-delimited retail event calendar text files into **Google Calendar ICS files**. It distinguishes between **major events** and **minor events**, categorizing them and generating notifications ahead of event dates.
**Features**:
- Generates separate ICS files for **major** and **minor events**.
- Creates **notification reminders** 1-3 months in advance for major events.
- Handles input files in **tab-delimited text format**.---
## 📝 Files
| File Name | Description |
|-----------------------------------|-----------------------------------------------------------------------------|
| `txt_to_ics_converter_internal.py` | Converts text files into **separate ICS files** for major and minor events. |
| `txt_to_ics_converter_external.py` | Creates **ICS files with notifications** for each event. |---
## 🛠️ Installation
To set up this project locally:
1. Clone the repository:
```bash
git clone https://github.com/ronknight/Text-to-Google-Calendar-CSV-Converter-Retail-Calendar.git
cd Text-to-Google-Calendar-CSV-Converter-Retail-Calendar
```2. Install dependencies:
```bash
pip install python-dateutil
```---
## 🚀 Usage
### **1. Generating ICS Files for Major and Minor Events**
Use the `txt_to_ics_converter_internal.py` script:
```bash
python txt_to_ics_converter_internal.py
```- Input file: `retail-calendar-2025-final.txt`
- Outputs:
- `major_events.ics` (Major events)
- `minor_events.ics` (Minor events)### **2. Generating ICS Files with Notifications**
Use the `txt_to_ics_converter_external.py` script:
```bash
python txt_to_ics_converter_external.py
```- Input file: `retail-calendar-2025-final.txt`
- Output:
- `events_with_notifications.ics` (ICS file with notifications for events)---
## 📊 Retail Calendar Content
The file `retail-calendar-2025-final.txt` contains events and was curated from a 3rd-party website. It was processed both by AI tools and manually to select content relevant to **4sgm.com**.
### **Content of retail-calendar-2025-final.txt**
| Notification Date | Event Date | Event |
|-------------------|--------------|-------------------------------|
| 01-Oct-2024 | 01-Jan-2025 | New Year's Day |
| 14-Nov-2024 | 14-Feb-2025 | Valentine's Day |
| 20-Jan-2025 | 20-Mar-2025 | First Day of Spring |
| 25-Jan-2025 | 25-Mar-2025 | International Waffle Day |
| 01-Feb-2025 | 01-Apr-2025 | April Fool's Day |
| 20-Jan-2025 | 20-Apr-2025 | Easter Sunday |
| 10-Feb-2025 | 10-May-2025 | National Apple Pie Day |
| 11-Feb-2025 | 11-May-2025 | World Fair Trade Day |
| 14-Feb-2025 | 14-May-2025 | National Biscuit Day |
| 21-Feb-2025 | 21-May-2025 | National Pizza Day |
| 04-Mar-2025 | 04-Jun-2025 | National Cheese Day |
| 08-Apr-2025 | 08-Jul-2025 | World Chocolate Day |
| 04-May-2025 | 04-Aug-2025 | International Beer Day |
| 08-Jun-2025 | 08-Aug-2025 | International Cat Day |
| 12-Jun-2025 | 12-Aug-2025 | International Youth Day |
| 19-Jun-2025 | 19-Aug-2025 | World Photography Day |
| 26-Jun-2025 | 26-Aug-2025 | Women's Equality Day |
| 31-Jul-2025 | 31-Aug-2025 | National Eat Outside Day |
| 05-Jul-2025 | 05-Sep-2025 | International Day of Charity |
| 06-Jul-2025 | 06-Sep-2025 | Read a Book Day |
| 21-Jul-2025 | 21-Sep-2025 | International Day of Peace |
| 23-Jul-2025 | 23-Sep-2025 | First Day of Autumn |
| 29-Jul-2025 | 29-Sep-2025 | World Heart Day |
| 04-Aug-2025 | 04-Oct-2025 | World Animal Day |
| 10-Aug-2025 | 10-Oct-2025 | World Mental Health Day |
| 16-Aug-2025 | 16-Oct-2025 | World Food Day |
| 31-Aug-2025 | 31-Oct-2025 | Halloween |
| 01-Sep-2025 | 01-Nov-2025 | All Saints' Day |
| 11-Sep-2025 | 11-Nov-2025 | Remembrance Day |
| 26-Sep-2025 | 26-Nov-2025 | Thanksgiving (US) |
| 27-Sep-2025 | 27-Nov-2025 | Black Friday |
| 01-Oct-2025 | 01-Dec-2025 | World AIDS Day |
| 10-Oct-2025 | 10-Dec-2025 | Human Rights Day |
| 25-Oct-2025 | 25-Dec-2025 | Christmas Day |
| 31-Oct-2025 | 31-Dec-2025 | New Year's Eve |---
## 📊 Visualization
### Workflow for `txt_to_ics_converter_internal.py`:
```mermaid
graph TD
A[Input: Retail Calendar Text File] --> B[Read Events and Categorize]
B -->|Major Events| C[Generate Major ICS File]
B -->|Minor Events| D[Generate Minor ICS File]
C --> E[Save as major_events.ics]
D --> F[Save as minor_events.ics]
```### Workflow for `txt_to_ics_converter_external.py`:
```mermaid
graph TD
A[Input: Retail Calendar Text File] --> B[Parse Event and Notification Dates]
B --> C[Generate Main Event in ICS Format]
B --> D[Generate Notification Event in ICS Format]
C --> E[Save to events_with_notifications.ics]
D --> E
```---
## ⚠️ Disclaimer
This project processes date-sensitive retail calendars and generates notification files. Ensure that the input text files are correctly formatted. Always validate generated ICS files before importing them into calendar applications.