InviteKit Calendar Files
Server Details
.ics files & calendar links
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one generates a single event or regularly repeating event, while the other generates one .ics file containing multiple different sessions. Each description explicitly includes cross-references telling the agent when not to use it, eliminating ambiguity.
Both names follow the same snake_case generate_<object> convention and use predictable calendar-domain nouns. The slight structural difference between generate_calendar_event and generate_event_series still reads consistently.
Two tools is slightly below the typical 3-15 range, but for this narrow calendar-file generation purpose each tool maps directly to a real use case. There is no unnecessary surface area, though a third utility tool could be justified if the scope expanded.
The tool set covers the core lifecycle for producing .ics files: single events, recurring events, and multi-session series. Minor gaps remain, such as no per-session add-to-calendar links for series and no explicit standalone link-generation mode, but these are workable limitations rather than dead ends.
Available Tools
2 toolsgenerate_calendar_eventGenerate calendar event file and linksARead-onlyIdempotentInspect
Use this when the user wants a calendar invite, an .ics file, or an add-to-calendar link (Google Calendar, Outlook, Office 365, Yahoo) for one event or one repeating event: a webinar, class, meeting, party, deadline, or launch. Takes the title, local start/end and the event's time zone (city or IANA zone), or dates only for all-day events, plus optional location, description, link, organizer name, reminders, and a repeat rule (daily, weekly on chosen weekdays, monthly by date, nth weekday such as the last Friday, or the first/last weekday of the month, yearly; with count, until date, and skipped dates). Returns a downloadable RFC 5545 .ics file with time zone data, four add-to-calendar links, and the first 5 dates in the event's zone and optional attendee zones, with daylight saving changes flagged. Does not send invitations, read or change anyone's calendar, or track RSVPs. Do not use for a list of different sessions (use generate_event_series) or for finding a meeting time across zones.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Local end YYYY-MM-DDTHH:MM, or just a time HH:MM on the start day, e.g. 21:00. For all-day events, the last day YYYY-MM-DD (inclusive). Default: 1 hour, or 1 day for all-day. | |
| url | No | Optional event page or video-call link, e.g. https://example.com/webinar. | |
| start | Yes | Local start YYYY-MM-DDTHH:MM in the event's time zone, e.g. 2026-11-05T18:30, or a date YYYY-MM-DD for an all-day event. No UTC offset. | |
| title | Yes | Event title, e.g. Product launch webinar. | |
| all_day | No | true for an all-day event (dates only), e.g. a conference day or a deadline. Automatic when start has no time. | |
| location | No | Venue, address, or meeting room shown in the calendar, e.g. Pier 39, San Francisco. | |
| time_zone | No | Time zone of the start/end: IANA zone (Europe/Warsaw), city (Chicago, Sydney), or UTC. Required for timed events; not used for all-day events. | |
| recurrence | No | Optional repeat rule, e.g. {"frequency":"weekly","weekdays":["TU","TH"],"count":10}. | |
| description | No | Event details or agenda (plain text; line breaks allowed), e.g. Bring a laptop. | |
| organizer_name | No | Optional organizer name shown in the details, e.g. Acme Events. No email needed. | |
| duration_minutes | No | Length in minutes instead of end, e.g. 90. | |
| viewer_time_zones | No | Optional places or zones of attendees to show local times for, e.g. ["New York", "Tokyo"]. | |
| reminders_minutes_before | No | Up to 3 reminders in minutes before the start, e.g. [15, 1440] for 15 minutes and 1 day before. |
Output Schema
| Name | Required | Description |
|---|---|---|
| end | Yes | |
| url | Yes | |
| when | Yes | |
| links | Yes | |
| notes | Yes | |
| start | Yes | |
| title | Yes | |
| all_day | Yes | |
| duration | Yes | |
| location | Yes | |
| downloads | Yes | |
| organizer | Yes | |
| reminders | Yes | |
| time_zone | Yes | |
| recurrence | Yes | |
| zone_label | Yes | |
| description | Yes | |
| occurrences | Yes | |
| viewer_zones | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses concrete outputs: a downloadable RFC 5545 .ics file with time zone data, four add-to-calendar links, the first 5 dates in the event zone and optional attendee zones, and daylight saving changes flagged. It also clarifies what the tool does not do (send invitations, read or change calendars, track RSVPs), which is valuable behavioral context even though readOnlyHint and destructiveHint already cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: it opens with the primary use case, then summarizes inputs, outputs, and exclusions. Given the complexity of 13 parameters including recurrence and time zones, every sentence contributes useful selection or invocation guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a complex generation tool: annotations establish read-only, idempotent, non-destructive behavior; the schema fully documents parameters; an output schema exists; and the description covers use cases, inputs, outputs, limitations, and sibling alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description summarizes key inputs such as title, local start/end, time zone, all-day dates, location, description, link, organizer, reminders, and recurrence details, but it does not add syntax or constraints beyond what the schema provides. Baseline 3 is appropriate when the schema carries the detailed parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generating a calendar invite, .ics file, or add-to-calendar links for one event or one repeating event. It names concrete event types and explicitly distinguishes this tool from the sibling generate_event_series, so an agent can identify its purpose without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: when the user wants a calendar invite, .ics file, or add-to-calendar link for one event or one repeating event. It also gives exclusions: does not send invitations, read/change calendars, or track RSVPs; do not use for a list of different sessions (use generate_event_series) or for finding a meeting time across zones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_event_seriesGenerate calendar file for a scheduleARead-onlyIdempotentInspect
Use this when the user wants one calendar file (.ics) that adds several different events at once: a course or class schedule, a training program, a conference agenda, match fixtures, or a list of webinars on irregular dates. Takes 1-40 sessions (each with its own start, end or duration, optional title, location and note) plus a shared time zone, location, details, link, organizer name and reminders. Returns one .ics file with one event per session and a dated list of the sessions. Does not make add-to-calendar web links per session, send invitations, or change anyone's calendar. Do not use for an event that repeats on a regular pattern (use generate_calendar_event with recurrence).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional shared link, e.g. a course page or video-call link: https://example.com/course. | |
| events | Yes | 1-40 distinct sessions with their own dates, e.g. [{"title":"Week 1","start":"2027-01-12T18:00","end":"19:30"}]. | |
| location | No | Default location for every session, e.g. Community Center, Room 2. | |
| time_zone | No | Time zone for all sessions: IANA zone or city, e.g. America/Chicago. Required when sessions have times. | |
| description | No | Shared details added to every session, e.g. Bring your workbook. | |
| calendar_name | No | Name for the schedule, e.g. Spanish A1 evening course. Shown as the calendar name and default title. | |
| organizer_name | No | Optional organizer or teacher name, e.g. Ms. Rivera. | |
| reminders_minutes_before | No | Up to 3 reminders for every session, minutes before, e.g. [60]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | Yes | |
| events | Yes | |
| location | Yes | |
| downloads | Yes | |
| last_date | Yes | |
| reminders | Yes | |
| time_zone | Yes | |
| first_date | Yes | |
| zone_label | Yes | |
| event_count | Yes | |
| calendar_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered; the description still adds genuinely new behavioral context by naming the non-capabilities (no per-session add-to-calendar links, no invitations sent, no changes to anyone's calendar) and by describing the dual output (one .ics plus a dated list). It stops short of discussing size/time-zone validation failures or the rejected-input path, keeping it at 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger condition is correctly front-loaded, and the when-not sentence is placed last as a routing chaser. A few facts are duplicated from the schema (the 1-40 session cap, the session field list), which costs a little, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter generator with full schema description coverage, annotations and an output schema, the description supplies exactly what structured fields cannot: user-intent routing, sibling disambiguation, and explicit non-capabilities. Nothing an agent needs in order to choose or call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in detail, including the start/end/duration_minutes relationship and the all_day flag. The description only restates the parameter grouping (per-session fields plus shared time zone, location, details, link, organizer and reminders) and the 1-40 cardinality, adding no semantics the schema lacks. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and artifact: produce one .ics file containing several distinct events at once, with a concrete enumeration of scenario types (course schedule, training program, conference agenda, fixtures, webinars). The second paragraph clarifies the two-part resource (sessions + shared defaults) and the two-part output, so the tool is distinguishable from a single-event generator without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit triggering condition ('Use this when the user wants one calendar file (.ics) that adds several different events at once') and closes with an explicit exclusion plus the named replacement: 'Do not use for an event that repeats on a regular pattern (use generate_calendar_event with recurrence).' Both the when and the when-not are stated rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
generate_calendar_event - First observed
generate_event_series
Related MCP Connectors
Turn a written schedule into a live calendar link people subscribe to in Apple, Google, Outlook.
Agent-Native Google Calendar - manage events, sync, and public booking
Publish public calendars and events others subscribe to: RSVPs, feeds and add-to-calendar links.
Turns one JSON payload into a complete RFC 5545 .ics file โ recurrence (RRULE), real IANA time zo...
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables reading and managing calendar events from local .ics files offline, without OAuth.2-
- AlicenseNot gradedqualityDmaintenanceEnables reading and interacting with ICS calendar feeds (e.g., Outlook, Google Calendar) with recurring event expansion, caching, and timezone support.MIT
- AlicenseAqualityCmaintenance5 ICS / iCalendar tools for Claude. Generate, parse, and one-click-add events to Google/Outlook.515 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to calendar events from iCal feeds, enabling agents to query schedules, search events, and check availability via natural language.AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.