From 3d62557fa3d368ad2e5fec728d4f60bdcae35be6 Mon Sep 17 00:00:00 2001 From: Ryan Mwangi Date: Wed, 30 Oct 2024 16:01:10 +0300 Subject: [PATCH] sanitize linkgroup name to replace spaces with underscores --- calendar/Date Based Calendar.ics | 62 +++++++++ calendar/Date Based Calendar.json | 11 ++ calendar/No Prefix Calendar.ics | 214 ++++++++++++++++++++++++++++++ calendar/No Prefix Calendar.json | 11 ++ calendar/Override Calendar.ics | 214 ++++++++++++++++++++++++++++++ calendar/Override Calendar.json | 11 ++ calendar/Time Based Calendar.ics | 214 ++++++++++++++++++++++++++++++ calendar/Time Based Calendar.json | 11 ++ server.js | 2 +- 9 files changed, 749 insertions(+), 1 deletion(-) create mode 100644 calendar/Date Based Calendar.ics create mode 100644 calendar/Date Based Calendar.json create mode 100644 calendar/No Prefix Calendar.ics create mode 100644 calendar/No Prefix Calendar.json create mode 100644 calendar/Override Calendar.ics create mode 100644 calendar/Override Calendar.json create mode 100644 calendar/Time Based Calendar.ics create mode 100644 calendar/Time Based Calendar.json diff --git a/calendar/Date Based Calendar.ics b/calendar/Date Based Calendar.ics new file mode 100644 index 0000000..b763206 --- /dev/null +++ b/calendar/Date Based Calendar.ics @@ -0,0 +1,62 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//sebbo.net//ical-generator//EN +NAME:Date Based Calendar +X-WR-CALNAME:Date Based Calendar +BEGIN:VEVENT +UID:2j0k@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20230219T210000Z +DTEND:20230224T210000Z +SUMMARY:Date Event Winterferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:0ug3@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20230402T210000Z +DTEND:20230415T210000Z +SUMMARY:Date Event Osterferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:5u1l@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20230529T210000Z +DTEND:20230609T210000Z +SUMMARY:Date Event Pfingstferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:hf4c@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20230730T210000Z +DTEND:20230911T210000Z +SUMMARY:Date Event Sommerferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:41b3@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20231029T210000Z +DTEND:20231103T210000Z +SUMMARY:Date Event Herbstferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:gmms@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20231121T210000Z +DTEND:20231122T210000Z +SUMMARY:Date Event Herbstferien 2023 Bayern +END:VEVENT +BEGIN:VEVENT +UID:k7ag@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124806Z +DTSTART:20231222T210000Z +DTEND:20240105T210000Z +SUMMARY:Date Event Weihnachtsferien 2023 Bayern +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/calendar/Date Based Calendar.json b/calendar/Date Based Calendar.json new file mode 100644 index 0000000..02389f7 --- /dev/null +++ b/calendar/Date Based Calendar.json @@ -0,0 +1,11 @@ +{ + "id": "Date Based Calendar", + "linkGroupName": "Date Based Calendar", + "calendars": [ + { + "url": "https://www.schulferien.org/media/ical/deutschland/ferien_bayern_2023.ics?k=PsL0S2B9rScFMn5PAxtf4OVQjMkWZsqqkK13zEJ0FCW5Q-2xQejfLJYaTN4EdYUsQHLDDbGVnVl93ms7en5vMUISjZ3H9Esu88Vp2ndnL5Q", + "prefix": "Date Event", + "override": false + } + ] +} \ No newline at end of file diff --git a/calendar/No Prefix Calendar.ics b/calendar/No Prefix Calendar.ics new file mode 100644 index 0000000..294be7b --- /dev/null +++ b/calendar/No Prefix Calendar.ics @@ -0,0 +1,214 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//sebbo.net//ical-generator//EN +NAME:No Prefix Calendar +X-WR-CALNAME:No Prefix Calendar +BEGIN:VEVENT +UID:97to@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20231231T210000Z +DTEND:20231231T210000Z +SUMMARY: New Year's Day +END:VEVENT +BEGIN:VEVENT +UID:uv3g@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240101T210000Z +DTEND:20240101T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:0ehc@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240102T210000Z +DTEND:20240102T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:ho86@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240103T210000Z +DTEND:20240103T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:nmei@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240104T210000Z +DTEND:20240104T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:yqf8@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240106T210000Z +DTEND:20240106T210000Z +SUMMARY: Orthodox Christmas +END:VEVENT +BEGIN:VEVENT +UID:i71u@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240107T210000Z +DTEND:20240107T210000Z +SUMMARY: Orthodox Christmas Holiday +END:VEVENT +BEGIN:VEVENT +UID:1hhq@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240222T210000Z +DTEND:20240222T210000Z +SUMMARY: Defender of the Fatherland +END:VEVENT +BEGIN:VEVENT +UID:o022@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240307T210000Z +DTEND:20240307T210000Z +SUMMARY: Intl. Women's Day +END:VEVENT +BEGIN:VEVENT +UID:17yk@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240430T210000Z +DTEND:20240430T210000Z +SUMMARY: Spring and Labor Day +END:VEVENT +BEGIN:VEVENT +UID:isc9@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240508T210000Z +DTEND:20240508T210000Z +SUMMARY: Victory Day +END:VEVENT +BEGIN:VEVENT +UID:t10p@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240611T210000Z +DTEND:20240611T210000Z +SUMMARY: Russia Day +END:VEVENT +BEGIN:VEVENT +UID:5zfk@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20241103T210000Z +DTEND:20241103T210000Z +SUMMARY: Civil Unity Day +END:VEVENT +BEGIN:VEVENT +UID:540b@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20241231T210000Z +DTEND:20241231T210000Z +SUMMARY: New Year's Day +END:VEVENT +BEGIN:VEVENT +UID:ut2e@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250101T210000Z +DTEND:20250101T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:zz4x@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250102T210000Z +DTEND:20250102T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:pyog@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250103T210000Z +DTEND:20250103T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:acj8@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250104T210000Z +DTEND:20250104T210000Z +SUMMARY: New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:3umc@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250106T210000Z +DTEND:20250106T210000Z +SUMMARY: Orthodox Christmas +END:VEVENT +BEGIN:VEVENT +UID:zngf@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250107T210000Z +DTEND:20250107T210000Z +SUMMARY: Orthodox Christmas Holiday +END:VEVENT +BEGIN:VEVENT +UID:hisd@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250223T210000Z +DTEND:20250223T210000Z +SUMMARY: Defender of the Fatherland +END:VEVENT +BEGIN:VEVENT +UID:05nq@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250309T210000Z +DTEND:20250309T210000Z +SUMMARY: Intl. Women's Day +END:VEVENT +BEGIN:VEVENT +UID:qsc6@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250430T210000Z +DTEND:20250430T210000Z +SUMMARY: Spring and Labor Day +END:VEVENT +BEGIN:VEVENT +UID:rbdz@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250508T210000Z +DTEND:20250508T210000Z +SUMMARY: Victory Day +END:VEVENT +BEGIN:VEVENT +UID:ctg3@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250611T210000Z +DTEND:20250611T210000Z +SUMMARY: Russia Day +END:VEVENT +BEGIN:VEVENT +UID:g5gz@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20251103T210000Z +DTEND:20251103T210000Z +SUMMARY: Civil Unity Day +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/calendar/No Prefix Calendar.json b/calendar/No Prefix Calendar.json new file mode 100644 index 0000000..a59884a --- /dev/null +++ b/calendar/No Prefix Calendar.json @@ -0,0 +1,11 @@ +{ + "id": "No Prefix Calendar", + "linkGroupName": "No Prefix Calendar", + "calendars": [ + { + "url": "https://www.calendarlabs.com/ical-calendar/ics/65/San_Francisco_Public_Holidays.ics", + "prefix": "", + "override": false + } + ] +} \ No newline at end of file diff --git a/calendar/Override Calendar.ics b/calendar/Override Calendar.ics new file mode 100644 index 0000000..bcf3dca --- /dev/null +++ b/calendar/Override Calendar.ics @@ -0,0 +1,214 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//sebbo.net//ical-generator//EN +NAME:Override Calendar +X-WR-CALNAME:Override Calendar +BEGIN:VEVENT +UID:byac@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20231231T210000Z +DTEND:20231231T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:n988@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240101T210000Z +DTEND:20240101T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:jkuk@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240102T210000Z +DTEND:20240102T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:3vw6@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240103T210000Z +DTEND:20240103T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:rzrw@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240104T210000Z +DTEND:20240104T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:5ij9@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240106T210000Z +DTEND:20240106T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:ggsp@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240107T210000Z +DTEND:20240107T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:nu3r@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240222T210000Z +DTEND:20240222T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:2vot@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240307T210000Z +DTEND:20240307T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:0xb5@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240430T210000Z +DTEND:20240430T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:wqid@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240508T210000Z +DTEND:20240508T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:rpka@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20240611T210000Z +DTEND:20240611T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:6zp1@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20241103T210000Z +DTEND:20241103T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:4b5t@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20241231T210000Z +DTEND:20241231T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:0rok@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250101T210000Z +DTEND:20250101T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:6m1u@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250102T210000Z +DTEND:20250102T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:0ndk@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250103T210000Z +DTEND:20250103T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:oe71@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250104T210000Z +DTEND:20250104T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:sfzq@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250106T210000Z +DTEND:20250106T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:8q24@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250107T210000Z +DTEND:20250107T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:a64z@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250223T210000Z +DTEND:20250223T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:tj17@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250309T210000Z +DTEND:20250309T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:pija@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250430T210000Z +DTEND:20250430T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:97qd@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250508T210000Z +DTEND:20250508T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:cjjc@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20250611T210000Z +DTEND:20250611T210000Z +SUMMARY:Override Event +END:VEVENT +BEGIN:VEVENT +UID:uczl@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124808Z +DTSTART:20251103T210000Z +DTEND:20251103T210000Z +SUMMARY:Override Event +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/calendar/Override Calendar.json b/calendar/Override Calendar.json new file mode 100644 index 0000000..86c7eed --- /dev/null +++ b/calendar/Override Calendar.json @@ -0,0 +1,11 @@ +{ + "id": "Override Calendar", + "linkGroupName": "Override Calendar", + "calendars": [ + { + "url": "https://www.calendarlabs.com/ical-calendar/ics/65/San_Francisco_Public_Holidays.ics", + "prefix": "Override Event", + "override": true + } + ] +} \ No newline at end of file diff --git a/calendar/Time Based Calendar.ics b/calendar/Time Based Calendar.ics new file mode 100644 index 0000000..e3970d2 --- /dev/null +++ b/calendar/Time Based Calendar.ics @@ -0,0 +1,214 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//sebbo.net//ical-generator//EN +NAME:Time Based Calendar +X-WR-CALNAME:Time Based Calendar +BEGIN:VEVENT +UID:q5m4@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20231231T210000Z +DTEND:20231231T210000Z +SUMMARY:Time Event New Year's Day +END:VEVENT +BEGIN:VEVENT +UID:9lje@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240101T210000Z +DTEND:20240101T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:hf2x@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240102T210000Z +DTEND:20240102T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:xwzc@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240103T210000Z +DTEND:20240103T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:8pzm@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240104T210000Z +DTEND:20240104T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:aa76@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240106T210000Z +DTEND:20240106T210000Z +SUMMARY:Time Event Orthodox Christmas +END:VEVENT +BEGIN:VEVENT +UID:6tkg@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240107T210000Z +DTEND:20240107T210000Z +SUMMARY:Time Event Orthodox Christmas Holiday +END:VEVENT +BEGIN:VEVENT +UID:14t0@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240222T210000Z +DTEND:20240222T210000Z +SUMMARY:Time Event Defender of the Fatherland +END:VEVENT +BEGIN:VEVENT +UID:r1xp@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240307T210000Z +DTEND:20240307T210000Z +SUMMARY:Time Event Intl. Women's Day +END:VEVENT +BEGIN:VEVENT +UID:g8yq@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240430T210000Z +DTEND:20240430T210000Z +SUMMARY:Time Event Spring and Labor Day +END:VEVENT +BEGIN:VEVENT +UID:atae@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240508T210000Z +DTEND:20240508T210000Z +SUMMARY:Time Event Victory Day +END:VEVENT +BEGIN:VEVENT +UID:ashf@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20240611T210000Z +DTEND:20240611T210000Z +SUMMARY:Time Event Russia Day +END:VEVENT +BEGIN:VEVENT +UID:u9a6@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20241103T210000Z +DTEND:20241103T210000Z +SUMMARY:Time Event Civil Unity Day +END:VEVENT +BEGIN:VEVENT +UID:5pwn@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20241231T210000Z +DTEND:20241231T210000Z +SUMMARY:Time Event New Year's Day +END:VEVENT +BEGIN:VEVENT +UID:cpul@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250101T210000Z +DTEND:20250101T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:xkx5@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250102T210000Z +DTEND:20250102T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:2x9h@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250103T210000Z +DTEND:20250103T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:bm15@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250104T210000Z +DTEND:20250104T210000Z +SUMMARY:Time Event New Year's Day Holiday +END:VEVENT +BEGIN:VEVENT +UID:ex5t@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250106T210000Z +DTEND:20250106T210000Z +SUMMARY:Time Event Orthodox Christmas +END:VEVENT +BEGIN:VEVENT +UID:8jpa@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250107T210000Z +DTEND:20250107T210000Z +SUMMARY:Time Event Orthodox Christmas Holiday +END:VEVENT +BEGIN:VEVENT +UID:xyvk@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250223T210000Z +DTEND:20250223T210000Z +SUMMARY:Time Event Defender of the Fatherland +END:VEVENT +BEGIN:VEVENT +UID:kg26@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250309T210000Z +DTEND:20250309T210000Z +SUMMARY:Time Event Intl. Women's Day +END:VEVENT +BEGIN:VEVENT +UID:3cyv@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250430T210000Z +DTEND:20250430T210000Z +SUMMARY:Time Event Spring and Labor Day +END:VEVENT +BEGIN:VEVENT +UID:5jkc@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250508T210000Z +DTEND:20250508T210000Z +SUMMARY:Time Event Victory Day +END:VEVENT +BEGIN:VEVENT +UID:p0az@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20250611T210000Z +DTEND:20250611T210000Z +SUMMARY:Time Event Russia Day +END:VEVENT +BEGIN:VEVENT +UID:kaku@Ryan-jr +SEQUENCE:0 +DTSTAMP:20241030T124807Z +DTSTART:20251103T210000Z +DTEND:20251103T210000Z +SUMMARY:Time Event Civil Unity Day +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/calendar/Time Based Calendar.json b/calendar/Time Based Calendar.json new file mode 100644 index 0000000..c6cb549 --- /dev/null +++ b/calendar/Time Based Calendar.json @@ -0,0 +1,11 @@ +{ + "id": "Time Based Calendar", + "linkGroupName": "Time Based Calendar", + "calendars": [ + { + "url": "https://www.calendarlabs.com/ical-calendar/ics/65/San_Francisco_Public_Holidays.ics", + "prefix": "Time Event", + "override": false + } + ] +} \ No newline at end of file diff --git a/server.js b/server.js index 53efe00..edee9f1 100644 --- a/server.js +++ b/server.js @@ -26,7 +26,7 @@ app.get('/', (req, res) => { // Function to sanitize the linkGroupName for use as a filename function sanitizeFilename(filename) { - return filename.replace(/[<>:"/\\|?*]/g, '_'); // Replace invalid characters with underscores + return filename.replace(/[<>:"/\\|?* ]/g, '_'); // Replace invalid characters with underscores } // Merge calendars endpoint