From 3b590958a05a2594ebe9534858a24d6f383fc932 Mon Sep 17 00:00:00 2001
From: Ryan Mwangi <ryannganga13325@gmail.com>
Date: Mon, 11 Nov 2024 14:03:37 +0300
Subject: [PATCH] test: run tests to check the produced output against the
 expected output

---
 test/calendar.test.js                         |  48 +--
 test/expected_outputs/Date_Based_Calendar.ics | 337 +-----------------
 .../expected_outputs/Date_Based_Calendar.json |   7 +-
 .../Merged_Date_and_Time_Based_Calendar.ics   |  17 +
 .../Merged_Date_and_Time_Based_Calendar.json  |  15 +
 test/expected_outputs/No_Prefix_Calendar.ics  | 265 +-------------
 test/expected_outputs/No_Prefix_Calendar.json |   3 +-
 test/expected_outputs/Override_Calendar.ics   | 263 +-------------
 test/expected_outputs/Override_Calendar.json  |   3 +-
 test/expected_outputs/Time_Based_Calendar.ics |  47 +--
 .../expected_outputs/Time_Based_Calendar.json |   9 +-
 .../UTCEAT_Time_Zone_Calendar.ics             |  17 +
 .../UTCEAT_Time_Zone_Calendar.json            |  15 +
 13 files changed, 124 insertions(+), 922 deletions(-)
 create mode 100644 test/expected_outputs/Merged_Date_and_Time_Based_Calendar.ics
 create mode 100644 test/expected_outputs/Merged_Date_and_Time_Based_Calendar.json
 create mode 100644 test/expected_outputs/UTCEAT_Time_Zone_Calendar.ics
 create mode 100644 test/expected_outputs/UTCEAT_Time_Zone_Calendar.json

diff --git a/test/calendar.test.js b/test/calendar.test.js
index 4ca9bb0..2b6303e 100644
--- a/test/calendar.test.js
+++ b/test/calendar.test.js
@@ -60,10 +60,10 @@ describe('Calendar Merging API', () => {
         console.log('Checking if file exists at:', filePath);
         expect(fs.existsSync(filePath)).toBe(true);
 
-        // // Load expected output and compare
-        // const expectedOutput = loadExpectedOutput('Date_Based_Calendar.ics');
-        // const actualOutput = fs.readFileSync(filePath, 'utf8');
-        // // expect(actualOutput).toBe(expectedOutput);
+        // Load expected output and compare
+        const expectedOutput = loadExpectedOutput('Date_Based_Calendar.ics');
+        const actualOutput = fs.readFileSync(filePath, 'utf8');
+        expect(actualOutput).toBe(expectedOutput);
     });
 
     test('Merge time-based calendar', async () => {
@@ -92,10 +92,10 @@ describe('Calendar Merging API', () => {
         const filePath = path.join(CALENDARS_DIR, 'Time_Based_Calendar.ics');
         expect(fs.existsSync(filePath)).toBe(true);
 
-        // // Load expected output and compare
-        // const expectedOutput = loadExpectedOutput('Time_Based_Calendar.ics');
-        // const actualOutput = fs.readFileSync (filePath, 'utf8');
-        // // expect(actualOutput).toBe(expectedOutput);
+        // Load expected output and compare
+        const expectedOutput = loadExpectedOutput('Time_Based_Calendar.ics');
+        const actualOutput = fs.readFileSync (filePath, 'utf8');
+        expect(actualOutput).toBe(expectedOutput);
     });
 
     test('Merge calendar without prefix', async () => {
@@ -119,10 +119,10 @@ describe('Calendar Merging API', () => {
         const filePath = path.join(CALENDARS_DIR, 'No_Prefix_Calendar.ics');
         expect(fs.existsSync(filePath)).toBe(true);
 
-        // // Load expected output and compare
-        // const expectedOutput = loadExpectedOutput('No_Prefix_Calendar.ics');
-        // const actualOutput = fs.readFileSync(filePath, 'utf8');
-        // // expect(actualOutput).toBe(expectedOutput);
+        // Load expected output and compare
+        const expectedOutput = loadExpectedOutput('No_Prefix_Calendar.ics');
+        const actualOutput = fs.readFileSync(filePath, 'utf8');
+        expect(actualOutput).toBe(expectedOutput);
     });
     
     test('Merge calendar with override', async () => {
@@ -146,10 +146,10 @@ describe('Calendar Merging API', () => {
         const filePath = path.join(CALENDARS_DIR, 'Override_Calendar.ics');
         expect(fs.existsSync(filePath)).toBe(true);
 
-        // // Load expected output and compare
-        // const expectedOutput = loadExpectedOutput('Override_Calendar.ics');
-        // const actualOutput = fs.readFileSync(filePath, 'utf8');
-        // // expect(actualOutput).toBe(expectedOutput);
+        // Load expected output and compare
+        const expectedOutput = loadExpectedOutput('Override_Calendar.ics');
+        const actualOutput = fs.readFileSync(filePath, 'utf8');
+        expect(actualOutput).toBe(expectedOutput);
     });
 
     test('Merge UTC and EAT time zone calendar', async () => {
@@ -177,10 +177,10 @@ describe('Calendar Merging API', () => {
         const filePath = path.join(CALENDARS_DIR, 'UTCEAT_Time_Zone_Calendar.ics');
         expect(fs.existsSync(filePath)).toBe(true);
 
-        // // Load expected output and compare
-        // const expectedOutput = loadExpectedOutput('UTC_Time_Zone_Calendar.ics');
-        // const actualOutput = fs.readFileSync(filePath, 'utf8');
-        // // expect(actualOutput).toBe(expectedOutput);
+        // Load expected output and compare
+        const expectedOutput = loadExpectedOutput('UTCEAT_Time_Zone_Calendar.ics');
+        const actualOutput = fs.readFileSync(filePath, 'utf8');
+        expect(actualOutput).toBe(expectedOutput);
     });
 
     test('Merge date-based and time-based calendars', async () => {
@@ -209,10 +209,10 @@ describe('Calendar Merging API', () => {
     const filePath = path.join(CALENDARS_DIR, 'Merged_Date_and_Time_Based_Calendar.ics');
     expect(fs.existsSync(filePath)).toBe(true);
 
-    // // Load expected output and compare
-    // const expectedOutput = loadExpectedOutput('Merged_Date_and_Time_Based_Calendar.ics');
-    // const actualOutput = fs.readFileSync(filePath, 'utf8');
-    // // expect(actualOutput).toBe(expectedOutput);
+    // Load expected output and compare
+    const expectedOutput = loadExpectedOutput('Merged_Date_and_Time_Based_Calendar.ics');
+    const actualOutput = fs.readFileSync(filePath, 'utf8');
+    expect(actualOutput).toBe(expectedOutput);
     });
 
 });
diff --git a/test/expected_outputs/Date_Based_Calendar.ics b/test/expected_outputs/Date_Based_Calendar.ics
index f94da4e..601e75d 100644
--- a/test/expected_outputs/Date_Based_Calendar.ics
+++ b/test/expected_outputs/Date_Based_Calendar.ics
@@ -1,336 +1,17 @@
 BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
 VERSION:2.0
-PRODID:-//sebbo.net//ical-generator//EN
 NAME:Date Based Calendar
-X-WR-CALNAME:Date Based Calendar
 BEGIN:VEVENT
-UID:l93d@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20230219
-DTEND;VALUE=DATE:20230224
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Winterferien 2023 Bayern
+UID:20231225T000000-001@example.com
+SUMMARY:holiday_calendar_2023 Christmas Day
+DTSTART:20231225T000000
+DTEND:20231226T000000
 END:VEVENT
 BEGIN:VEVENT
-UID:bxei@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20230402
-DTEND;VALUE=DATE:20230415
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Osterferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:csr1@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20230529
-DTEND;VALUE=DATE:20230609
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Pfingstferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:gamv@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20230730
-DTEND;VALUE=DATE:20230911
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Sommerferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:xuty@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20231029
-DTEND;VALUE=DATE:20231103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Herbstferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:l9k9@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20231121
-DTEND;VALUE=DATE:20231122
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Herbstferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:om17@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20231222
-DTEND;VALUE=DATE:20240105
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Ferien_Bayern_2023 Weihnachtsferien 2023 Bayern
-END:VEVENT
-BEGIN:VEVENT
-UID:1i1v@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20231231
-DTEND;VALUE=DATE:20231231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays New Year's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:qga1@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240114
-DTEND;VALUE=DATE:20240114
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays M L King Day
-END:VEVENT
-BEGIN:VEVENT
-UID:axvt@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240218
-DTEND;VALUE=DATE:20240218
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Presidents' Day
-END:VEVENT
-BEGIN:VEVENT
-UID:3t87@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240328
-DTEND;VALUE=DATE:20240328
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Good Friday
-END:VEVENT
-BEGIN:VEVENT
-UID:olsu@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240330
-DTEND;VALUE=DATE:20240330
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Easter Sunday
-END:VEVENT
-BEGIN:VEVENT
-UID:xts1@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240526
-DTEND;VALUE=DATE:20240526
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Memorial Day
-END:VEVENT
-BEGIN:VEVENT
-UID:0e36@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240618
-DTEND;VALUE=DATE:20240618
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Juneteenth
-END:VEVENT
-BEGIN:VEVENT
-UID:rc80@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240703
-DTEND;VALUE=DATE:20240703
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Independence Day
-END:VEVENT
-BEGIN:VEVENT
-UID:386s@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20240901
-DTEND;VALUE=DATE:20240901
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Labor Day
-END:VEVENT
-BEGIN:VEVENT
-UID:102z@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20241013
-DTEND;VALUE=DATE:20241013
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Columbus Day
-END:VEVENT
-BEGIN:VEVENT
-UID:qqbg@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20241110
-DTEND;VALUE=DATE:20241110
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Veterans Day
-END:VEVENT
-BEGIN:VEVENT
-UID:dyh3@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20241127
-DTEND;VALUE=DATE:20241127
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Thanksgiving Day
-END:VEVENT
-BEGIN:VEVENT
-UID:oqsd@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20241224
-DTEND;VALUE=DATE:20241224
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Christmas
-END:VEVENT
-BEGIN:VEVENT
-UID:8140@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20241231
-DTEND;VALUE=DATE:20241231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays New Year's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:fmmb@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250119
-DTEND;VALUE=DATE:20250119
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays M L King Day
-END:VEVENT
-BEGIN:VEVENT
-UID:l4x1@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250216
-DTEND;VALUE=DATE:20250216
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Presidents' Day
-END:VEVENT
-BEGIN:VEVENT
-UID:fpt7@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250417
-DTEND;VALUE=DATE:20250417
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Good Friday
-END:VEVENT
-BEGIN:VEVENT
-UID:x3y4@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250419
-DTEND;VALUE=DATE:20250419
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Easter Sunday
-END:VEVENT
-BEGIN:VEVENT
-UID:fhn8@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250525
-DTEND;VALUE=DATE:20250525
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Memorial Day
-END:VEVENT
-BEGIN:VEVENT
-UID:wue7@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250618
-DTEND;VALUE=DATE:20250618
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Juneteenth
-END:VEVENT
-BEGIN:VEVENT
-UID:oq6h@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250703
-DTEND;VALUE=DATE:20250703
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Independence Day
-END:VEVENT
-BEGIN:VEVENT
-UID:4gm3@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20250831
-DTEND;VALUE=DATE:20250831
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Labor Day
-END:VEVENT
-BEGIN:VEVENT
-UID:8he3@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20251012
-DTEND;VALUE=DATE:20251012
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Columbus Day
-END:VEVENT
-BEGIN:VEVENT
-UID:3u40@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20251110
-DTEND;VALUE=DATE:20251110
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Veterans Day
-END:VEVENT
-BEGIN:VEVENT
-UID:s651@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20251126
-DTEND;VALUE=DATE:20251126
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Thanksgiving Day
-END:VEVENT
-BEGIN:VEVENT
-UID:yzoz@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART;VALUE=DATE:20251224
-DTEND;VALUE=DATE:20251224
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:US_holidays Christmas
+UID:20231225T000000-001@example.com
+SUMMARY:US_holidays Christmas Day
+DTSTART:20231225T000000
+DTEND:20231226T000000
 END:VEVENT
 END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/Date_Based_Calendar.json b/test/expected_outputs/Date_Based_Calendar.json
index cdf1c35..653e002 100644
--- a/test/expected_outputs/Date_Based_Calendar.json
+++ b/test/expected_outputs/Date_Based_Calendar.json
@@ -1,14 +1,13 @@
 {
-  "id": "Date_Based_Calendar",
   "linkGroupName": "Date Based Calendar",
   "calendars": [
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\ferien_bayern_2023.ics",
-      "prefix": "Ferien_Bayern_2023",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\holiday_calendar_2023.ics",
+      "prefix": "holiday_calendar_2023",
       "override": false
     },
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\US_Holidays.ics",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\US_Holidays.ics",
       "prefix": "US_holidays",
       "override": false
     }
diff --git a/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.ics b/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.ics
new file mode 100644
index 0000000..696cdd8
--- /dev/null
+++ b/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.ics
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
+VERSION:2.0
+NAME:Merged Date and Time Based Calendar
+BEGIN:VEVENT
+UID:20231225T000000-001@example.com
+SUMMARY:Holiday_2023 Christmas Day
+DTSTART:20231225T000000
+DTEND:20231226T000000
+END:VEVENT
+BEGIN:VEVENT
+UID:20231108T090000-001@example.com
+SUMMARY:Work_Task Work Task
+DTSTART:20231108T120000
+DTEND:20231108T130000
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.json b/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.json
new file mode 100644
index 0000000..032ec79
--- /dev/null
+++ b/test/expected_outputs/Merged_Date_and_Time_Based_Calendar.json
@@ -0,0 +1,15 @@
+{
+  "linkGroupName": "Merged Date and Time Based Calendar",
+  "calendars": [
+    {
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\holiday_calendar_2023.ics",
+      "prefix": "Holiday_2023",
+      "override": false
+    },
+    {
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\work_task_calendar.ics",
+      "prefix": "Work_Task",
+      "override": false
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test/expected_outputs/No_Prefix_Calendar.ics b/test/expected_outputs/No_Prefix_Calendar.ics
index a1d82e7..862d877 100644
--- a/test/expected_outputs/No_Prefix_Calendar.ics
+++ b/test/expected_outputs/No_Prefix_Calendar.ics
@@ -1,266 +1,11 @@
 BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
 VERSION:2.0
-PRODID:-//sebbo.net//ical-generator//EN
 NAME:No Prefix Calendar
-X-WR-CALNAME:No Prefix Calendar
 BEGIN:VEVENT
-UID:jfle@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20231231
-DTEND;VALUE=DATE:20231231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:s4ov@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240101
-DTEND;VALUE=DATE:20240101
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:ov14@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240102
-DTEND;VALUE=DATE:20240102
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:qdqh@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240103
-DTEND;VALUE=DATE:20240103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:i05i@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240104
-DTEND;VALUE=DATE:20240104
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:k6ih@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240106
-DTEND;VALUE=DATE:20240106
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Orthodox Christmas
-END:VEVENT
-BEGIN:VEVENT
-UID:32bn@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240107
-DTEND;VALUE=DATE:20240107
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Orthodox Christmas Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:k1o7@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240222
-DTEND;VALUE=DATE:20240222
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Defender of the Fatherland
-END:VEVENT
-BEGIN:VEVENT
-UID:4l5n@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240307
-DTEND;VALUE=DATE:20240307
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Intl. Women's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:ymwf@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240430
-DTEND;VALUE=DATE:20240430
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Spring and Labor Day
-END:VEVENT
-BEGIN:VEVENT
-UID:t4fd@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240508
-DTEND;VALUE=DATE:20240508
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Victory Day
-END:VEVENT
-BEGIN:VEVENT
-UID:foxu@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240611
-DTEND;VALUE=DATE:20240611
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Russia Day
-END:VEVENT
-BEGIN:VEVENT
-UID:ne1r@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20241103
-DTEND;VALUE=DATE:20241103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Civil Unity Day
-END:VEVENT
-BEGIN:VEVENT
-UID:jzcn@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20241231
-DTEND;VALUE=DATE:20241231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:dfzn@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250101
-DTEND;VALUE=DATE:20250101
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:v9mu@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250102
-DTEND;VALUE=DATE:20250102
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:x79k@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250103
-DTEND;VALUE=DATE:20250103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:gj06@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250104
-DTEND;VALUE=DATE:20250104
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: New Year's Day Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:s75j@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250106
-DTEND;VALUE=DATE:20250106
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Orthodox Christmas
-END:VEVENT
-BEGIN:VEVENT
-UID:u16z@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250107
-DTEND;VALUE=DATE:20250107
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Orthodox Christmas Holiday
-END:VEVENT
-BEGIN:VEVENT
-UID:c1co@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250223
-DTEND;VALUE=DATE:20250223
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Defender of the Fatherland
-END:VEVENT
-BEGIN:VEVENT
-UID:s1ga@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250309
-DTEND;VALUE=DATE:20250309
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Intl. Women's Day
-END:VEVENT
-BEGIN:VEVENT
-UID:7050@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250430
-DTEND;VALUE=DATE:20250430
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Spring and Labor Day
-END:VEVENT
-BEGIN:VEVENT
-UID:stsk@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250508
-DTEND;VALUE=DATE:20250508
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Victory Day
-END:VEVENT
-BEGIN:VEVENT
-UID:n4iy@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250611
-DTEND;VALUE=DATE:20250611
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Russia Day
-END:VEVENT
-BEGIN:VEVENT
-UID:7dco@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20251103
-DTEND;VALUE=DATE:20251103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY: Civil Unity Day
+UID:20231225T000000-001@example.com
+SUMMARY: Christmas Day
+DTSTART:20231225T000000
+DTEND:20231226T000000
 END:VEVENT
 END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/No_Prefix_Calendar.json b/test/expected_outputs/No_Prefix_Calendar.json
index 798f7a9..5a47c5e 100644
--- a/test/expected_outputs/No_Prefix_Calendar.json
+++ b/test/expected_outputs/No_Prefix_Calendar.json
@@ -1,9 +1,8 @@
 {
-  "id": "No_Prefix_Calendar",
   "linkGroupName": "No Prefix Calendar",
   "calendars": [
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\San_Francisco_Public_Holidays.ics",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\sf_public_holidays.ics",
       "prefix": "",
       "override": false
     }
diff --git a/test/expected_outputs/Override_Calendar.ics b/test/expected_outputs/Override_Calendar.ics
index de1f7ca..bbfdc91 100644
--- a/test/expected_outputs/Override_Calendar.ics
+++ b/test/expected_outputs/Override_Calendar.ics
@@ -1,266 +1,11 @@
 BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
 VERSION:2.0
-PRODID:-//sebbo.net//ical-generator//EN
 NAME:Override Calendar
-X-WR-CALNAME:Override Calendar
 BEGIN:VEVENT
-UID:cknb@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20231231
-DTEND;VALUE=DATE:20231231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:p03j@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240101
-DTEND;VALUE=DATE:20240101
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:s2a8@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240102
-DTEND;VALUE=DATE:20240102
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:ptdn@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240103
-DTEND;VALUE=DATE:20240103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:d7oa@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240104
-DTEND;VALUE=DATE:20240104
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:wuts@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240106
-DTEND;VALUE=DATE:20240106
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:g3b0@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240107
-DTEND;VALUE=DATE:20240107
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:qbx4@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240222
-DTEND;VALUE=DATE:20240222
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:v25w@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240307
-DTEND;VALUE=DATE:20240307
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:7u8c@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240430
-DTEND;VALUE=DATE:20240430
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:apf4@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240508
-DTEND;VALUE=DATE:20240508
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:jfpb@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20240611
-DTEND;VALUE=DATE:20240611
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:2ykv@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20241103
-DTEND;VALUE=DATE:20241103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:0b26@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20241231
-DTEND;VALUE=DATE:20241231
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:qs49@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250101
-DTEND;VALUE=DATE:20250101
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:559o@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250102
-DTEND;VALUE=DATE:20250102
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:8giv@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250103
-DTEND;VALUE=DATE:20250103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:e57i@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250104
-DTEND;VALUE=DATE:20250104
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:ur8w@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250106
-DTEND;VALUE=DATE:20250106
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:08hg@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250107
-DTEND;VALUE=DATE:20250107
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:gvgf@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250223
-DTEND;VALUE=DATE:20250223
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:rllx@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250309
-DTEND;VALUE=DATE:20250309
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:sy19@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250430
-DTEND;VALUE=DATE:20250430
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:um2w@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250508
-DTEND;VALUE=DATE:20250508
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:fdjj@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20250611
-DTEND;VALUE=DATE:20250611
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
-SUMMARY:Override Event
-END:VEVENT
-BEGIN:VEVENT
-UID:fsik@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122935Z
-DTSTART;VALUE=DATE:20251103
-DTEND;VALUE=DATE:20251103
-X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
-X-MICROSOFT-MSNCALENDAR-ALLDAYEVENT:TRUE
+UID:20231225T000000-001@example.com
 SUMMARY:Override Event
+DTSTART:20231225T000000
+DTEND:20231226T000000
 END:VEVENT
 END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/Override_Calendar.json b/test/expected_outputs/Override_Calendar.json
index f1eed77..d831b29 100644
--- a/test/expected_outputs/Override_Calendar.json
+++ b/test/expected_outputs/Override_Calendar.json
@@ -1,9 +1,8 @@
 {
-  "id": "Override_Calendar",
   "linkGroupName": "Override Calendar",
   "calendars": [
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\San_Francisco_Public_Holidays.ics",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\sf_public_holidays.ics",
       "prefix": "Override Event",
       "override": true
     }
diff --git a/test/expected_outputs/Time_Based_Calendar.ics b/test/expected_outputs/Time_Based_Calendar.ics
index ab25285..fa1aced 100644
--- a/test/expected_outputs/Time_Based_Calendar.ics
+++ b/test/expected_outputs/Time_Based_Calendar.ics
@@ -1,46 +1,17 @@
 BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
 VERSION:2.0
-PRODID:-//sebbo.net//ical-generator//EN
 NAME:Time Based Calendar
-X-WR-CALNAME:Time Based Calendar
 BEGIN:VEVENT
-UID:upko@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART:20241001T183000Z
-DTEND:20241001T193000Z
-SUMMARY:other_work calmerge
+UID:20231109T110000-001@example.com
+SUMMARY:team_meeting_calendar Team Meeting
+DTSTART:20231109T140000
+DTEND:20231109T150000
 END:VEVENT
 BEGIN:VEVENT
-UID:myd3@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART:20241010T173000Z
-DTEND:20241010T183000Z
-SUMMARY:other_work to do
-END:VEVENT
-BEGIN:VEVENT
-UID:zs1z@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART:20240930T113000Z
-DTEND:20240930T123000Z
-SUMMARY:work other work
-END:VEVENT
-BEGIN:VEVENT
-UID:d6rq@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART:20241003T190000Z
-DTEND:20241003T200000Z
-SUMMARY:work progodessey
-END:VEVENT
-BEGIN:VEVENT
-UID:6c65@Ryan-jr
-SEQUENCE:0
-DTSTAMP:20241105T122934Z
-DTSTART:20241009T173000Z
-DTEND:20241009T183000Z
-SUMMARY:work do
+UID:20231108T090000-001@example.com
+SUMMARY:work_task Work Task
+DTSTART:20231108T120000
+DTEND:20231108T130000
 END:VEVENT
 END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/Time_Based_Calendar.json b/test/expected_outputs/Time_Based_Calendar.json
index 321646e..93cf21b 100644
--- a/test/expected_outputs/Time_Based_Calendar.json
+++ b/test/expected_outputs/Time_Based_Calendar.json
@@ -1,15 +1,14 @@
 {
-  "id": "Time_Based_Calendar",
   "linkGroupName": "Time Based Calendar",
   "calendars": [
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\other_work.ics",
-      "prefix": "other_work",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\team_meeting_calendar.ics",
+      "prefix": "team_meeting_calendar",
       "override": false
     },
     {
-      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship tasks\\final calmerg\\test_calendars\\work.ics",
-      "prefix": "work",
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\work_task_calendar.ics",
+      "prefix": "work_task",
       "override": false
     }
   ]
diff --git a/test/expected_outputs/UTCEAT_Time_Zone_Calendar.ics b/test/expected_outputs/UTCEAT_Time_Zone_Calendar.ics
new file mode 100644
index 0000000..59ad75d
--- /dev/null
+++ b/test/expected_outputs/UTCEAT_Time_Zone_Calendar.ics
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+PRODID:-//Your Product ID//EN
+VERSION:2.0
+NAME:UTCEAT Time Zone Calendar
+BEGIN:VEVENT
+UID:20231108T100000Z-001@example.com
+SUMMARY:UTC_Event UTC Event
+DTSTART:20231108T130000
+DTEND:20231108T140000
+END:VEVENT
+BEGIN:VEVENT
+UID:20231108T090000+0300-001@example.com
+SUMMARY:EAT_Event EAT Event
+DTSTART:20231108T090000
+DTEND:20231108T100000
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/test/expected_outputs/UTCEAT_Time_Zone_Calendar.json b/test/expected_outputs/UTCEAT_Time_Zone_Calendar.json
new file mode 100644
index 0000000..6fc1de5
--- /dev/null
+++ b/test/expected_outputs/UTCEAT_Time_Zone_Calendar.json
@@ -0,0 +1,15 @@
+{
+  "linkGroupName": "UTCEAT Time Zone Calendar",
+  "calendars": [
+    {
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\utc_time_zone_event.ics",
+      "prefix": "UTC_Event",
+      "override": false
+    },
+    {
+      "url": "C:\\Users\\user\\OneDrive\\Desktop\\Internship_tasks\\final calmerg\\test\\test_calendars\\eat_time_zone_event.ics",
+      "prefix": "EAT_Event",
+      "override": false
+    }
+  ]
+}
\ No newline at end of file