← Files Holiday Calendar BuilderARCHIVED FILE
plugin.json
5.79 KB · Nov 3, 2026 · 19:21 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "holiday-calendar",
"version": "1.0.0",
"description": "Builds validated .ics calendars that skip the public and school holidays of a German state, Austria or Switzerland.",
"author": {
"name": "Tim Eiko Neunzig",
"email": "tim@ki-katapult.de",
"url": "https://plugins.ki-katapult.de"
},
"homepage": "https://plugins.ki-katapult.de/plugins/holiday-calendar",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Holiday Calendar Builder",
"shortDescription": "Holiday-aware .ics schedules",
"longDescription": "Turns a schedule into a calendar file that skips the right holidays. Lists public holidays for Germany (every state and regional variants such as Assumption Day in Catholic Bavarian communes), Austria and Switzerland, computed with correct movable feasts, plus German school holidays for 2026 to 2028 from the Kultusministerkonferenz. Builds RFC 5545 .ics files with recurring events, holiday exclusions and extra dates off, keeps local time across daylight-saving changes, shows a preview of every occurrence and checks its own output before offering the download. Also checks any .ics file and explains why it won't import. Every holiday result names its source and data date.",
"category": "Productivity",
"capabilities": [
"Public holidays for DE (16 states and regional variants), AT and CH",
"German school holidays 2026\u20132028 per state, with source",
"Recurring .ics events that skip holidays and extra dates off",
"Correct local time across daylight-saving changes",
"RFC 5545 validation of uploaded .ics files"
],
"defaultPrompt": [
"Make an .ics for our Monday team meeting until July, skipping Brandenburg holidays.",
"Turn this course timetable into events for Berlin, without school holidays.",
"Which public holidays fall on weekdays in Bavaria in 2027?"
],
"brandColor": "#B03A2E",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"developerName": "Tim Eiko Neunzig",
"websiteURL": "https://plugins.ki-katapult.de/plugins/holiday-calendar",
"supportURL": "https://plugins.ki-katapult.de/support",
"privacyPolicyURL": "https://plugins.ki-katapult.de/privacy",
"termsOfServiceURL": "https://plugins.ki-katapult.de/terms"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Weekly training in Bavaria skips Ascension and Corpus Christi",
"prompt": "Weekly Thursday training 18:00 in Bavaria, all of May 2027, skip public holidays",
"tools_triggered": "create_ics_calendar",
"expected_behavior": "Builds an .ics series every Thursday 18:00 Europe/Berlin in May 2027 that excludes Ascension (6 May) and Corpus Christi (27 May); 13 and 20 May remain. Returns a 60-minute download link."
},
{
"description": "Same series for Brandenburg keeps Corpus Christi",
"prompt": "Same series for Brandenburg",
"tools_triggered": "create_ics_calendar",
"expected_behavior": "Excludes only Ascension (6 May); 27 May stays because Corpus Christi is not a public holiday in Brandenburg."
},
{
"description": "Bavarian public holidays 2027 with movable feasts",
"prompt": "Public holidays in Bavaria in 2027?",
"tools_triggered": "list_holidays",
"expected_behavior": "Lists the Bavarian public holidays for 2027, including Easter Monday on 29 March and Corpus Christi on 27 May, each with its scope, and cites python-holidays and the state holiday acts."
},
{
"description": "Daily stand-up keeps 09:00 Berlin time after daylight saving ends",
"prompt": "Daily 09:00 stand-up, 20\u201330 Oct 2026, Berlin time",
"tools_triggered": "create_ics_calendar",
"expected_behavior": "Builds a daily series with a VTIMEZONE for Europe/Berlin; every occurrence is at 09:00 local time, including after the change to winter time on 25 October (08:00 UTC)."
},
{
"description": "Explains why an .ics file won't import (missing DTSTART)",
"prompt": "Why won't this .ics import?",
"tools_triggered": "validate_ics",
"expected_behavior": "Reports the file as invalid per RFC 5545 and names the missing DTSTART property and the affected event \"Team meeting\" (by UID and title).",
"file_attachment_urls": [
"https://holiday-calendar.ki-katapult.de/review/missing-dtstart.ics"
]
}
],
"negative": [
{
"description": "Refuses to write into Google Calendar and offers the .ics file",
"prompt": "Add these events to my Google Calendar."
},
{
"description": "Refuses to send invitations",
"prompt": "Email an invitation to all participants."
},
{
"description": "Refuses Austrian school holidays without inventing dates",
"prompt": "Skip the Austrian school holidays."
}
]
},
"demo_recording_url": "https://plugins.ki-katapult.de/review-videos/holiday-calendar.mp4",
"commerce": false
},
"publication": {
"countries": [
"DE",
"AT",
"CH"
],
"release_notes": "1.0.0: first version. Public holidays DE/AT/CH, German school holidays 2026\u20132028, .ics build and validation."
},
"apps": "./.app.json"
}
}
}
SHA-256: a03e29e09c8d43e8cea4137dd6a6551591f25dfa1ea2a729891d99735934b798