mcp-ical
Generates one-click 'Add to Google Calendar' URLs for events, allowing easy addition to Google Calendar without authentication.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-icalCreate an ICS file for a meeting tomorrow at 2pm titled 'Sprint planning'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-ical
5 ICS / iCalendar tools for Claude. Generate, parse, and one-click-add events to Google/Outlook. Free, MIT.
Pure-logic calendar utilities. No API keys, no accounts, no SaaS coupling. Generates standards-compliant RFC 5545 ICS files.
Install
{
"mcpServers": {
"ical": {
"command": "npx",
"args": ["-y", "@dpm-tools/mcp-ical"]
}
}
}Requires Node.js 22.18+.
Related MCP server: Apple Calendar MCP Server
Tools (5)
create_event— Generate ICS for a single event (title, start, end, location, description, organizer, attendees, all-day).create_calendar— Build a multi-event ICS file.parse_ics— Parse existing ICS content into event objects.google_calendar_url— One-click "Add to Google Calendar" URL (no auth).outlook_calendar_url— One-click "Add to Outlook Web Calendar" URL.
Example prompts
"Make an ICS file for a meeting tomorrow 2pm-3pm titled 'Sprint planning' at Zoom URL ..."
"Build a calendar from these 5 events..."
"Parse this ICS file and tell me when the next event is."
"Give me a Google Calendar 'Add' link for the team offsite on 2026-07-15."
See examples/prompts.md for more.
Why this exists
Existing calendar MCPs assume a SaaS backend (Google Calendar OAuth, Microsoft Graph). For LLMs that just need to emit a standards-compliant ICS file or build an add-to-calendar link, those are overkill.
mcp-ical is the pure-logic version:
Zero dependencies beyond
@modelcontextprotocol/sdkZero API keys
Zero accounts
RFC 5545 line folding, escape sequences, attendee/organizer support
Perfect for "tell me about an event then make an ICS attachment" workflows.
Sister servers from dpm
mcp-devkit,mcp-public-data,mcp-diff,mcp-archive,mcp-citations— all free, all MIT.
License
MIT © dpm (digital product mill)
Available Tools
5 toolscreate_calendarB
Build a multi-event ICS calendar file from an array of events.
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_name | No | Calendar | |
| events | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose what the tool returns (e.g., ICS file content as string), side effects, or output format. Minimal behavioral insight.
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?
Single, concise sentence with no redundancy. Efficiently conveys the core action.
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?
No output schema, so description should clarify return type. Missing info on date formats, validation, or output handling. Incomplete for a tool generating a file.
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 0%, but the description adds no parameter details beyond the schema structure (e.g., date format, optional fields). Misses opportunity to explain calendar_name default or event properties.
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 clearly states it builds a multi-event ICS calendar file from events, distinguishing it from sibling tools like create_event (single event) and parse_ics (parsing).
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?
No guidance on when to use this tool vs alternatives (e.g., create_event for single event, google_calendar_url for web calendar). Missing prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_eventC
Generate an RFC 5545 ICS file for a single calendar event.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| start | Yes | ISO 8601 datetime (e.g. '2026-06-15T14:00:00Z' or with offset) | |
| end | Yes | ISO 8601 datetime | |
| location | No | ||
| description | No | ||
| url | No | ||
| organizer_email | No | ||
| attendees | No | Attendee emails | |
| all_day | No | If true, treat start/end as DATE only (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only says 'generate' but does not disclose that this is a pure file generation with no side effects, no permissions needed, or what happens to the file (e.g., returned as string). Lacks essential behavioral context.
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 a single sentence, which is extremely concise. It wastes no words and is easy to parse. However, it could be slightly more structured (e.g., with bullet points) to improve readability for a tool with many parameters.
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?
Given 9 parameters, no output schema, and no annotations, the description is insufficient. It does not specify the return format (e.g., filename, ICS content as string), nor does it cover complex parameter interactions like attendees or recurrence (not present). An agent would lack critical information to use the tool correctly.
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 low (44%). The description adds no parameter-specific meaning beyond what the schema already provides. For example, it does not explain how 'url' or 'organizer_email' affect the ICS output, nor does it clarify the relationship between 'all_day' and date formats.
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 clearly states it generates an RFC 5545 ICS file for a single calendar event. This is a specific verb+resource combination, and it distinguishes from sibling tools like create_calendar (creates a calendar) and parse_ics (parses ICS).
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?
No guidance on when to use this tool versus alternatives. Sibling tools are named but there is no differentiation or context about prerequisites (e.g., need a calendar).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_urlA
Build a one-click 'Add to Google Calendar' URL for an event (no auth needed).
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| start | Yes | ISO 8601 | |
| end | Yes | ||
| location | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral transparency by stating no auth needed, but it does not disclose potential limitations, such as character limits on parameters or URL truncation behavior, nor does it describe the exact URL format returned.
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 a single, front-loaded sentence that conveys the purpose and key constraint (no auth) without wasted words.
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?
While the tool is simple (URL builder), the description lacks information about the return value (e.g., it returns a URL string) and does not specify constraints on parameter lengths or encoding, making it less complete than ideal.
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 only 20% (only 'start' has a description 'ISO 8601'). The tool description does not add meaning for other parameters like 'location' or 'description', leaving their format ambiguous beyond what the schema provides.
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 clearly states the tool builds a one-click 'Add to Google Calendar' URL for an event, specifying no auth needed, which distinguishes it from sibling tools like create_calendar or create_event that require authentication.
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?
The description explicitly notes 'no auth needed', guiding agents to use this when they want a URL without authentication, contrasting with authentication-required tools. However, it does not specify when to avoid this tool or provide explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
outlook_calendar_urlC
Build a one-click 'Add to Outlook Web Calendar' URL.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| start | Yes | ||
| end | Yes | ||
| location | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description solely implies a read-only operation generating a URL. It does not clarify side effects, authentication, or output details, but the behavior is straightforward from the name and description.
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 single sentence is concise and front-loaded, but given the tool's simplicity, it is under-specified. Additional parameter or usage details would improve completeness without sacrificing conciseness.
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 tool has no output schema, no annotations, and zero parameter coverage. The description does not explain the URL format, date string requirements, or any constraints, making it inadequate for an agent to invoke correctly.
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?
With 0% schema description coverage, the description should explain input parameters. It does not mention any of the five properties (title, start, end, etc.) or their formats, leaving agents without guidance beyond schema names.
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 clearly states the tool builds a 'one-click Add to Outlook Web Calendar URL', specifying the verb, resource, and distinguishing it from sibling tools like google_calendar_url that build similar URLs for other platforms.
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?
No guidance on when to use this tool versus alternatives (e.g., create_event vs. URL builder). The description omits context like when generating a URL is preferable to directly creating an event.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_icsB
Parse an ICS file content and return an array of event objects.
| Name | Required | Description | Default |
|---|---|---|---|
| ics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must convey behavioral traits. It only mentions parsing and returning events, omitting details like error handling, size limits, or formatting requirements.
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?
Single sentence, no redundant information. Highly concise and efficient.
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 a simple tool with one parameter and no output schema, the description provides the core purpose but lacks depth on input format, constraints, and potential failure modes.
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 coverage is 0%. The description does not clarify what the 'ics' string expects (e.g., file path, URL, raw content) beyond 'ICS file content', leaving ambiguity for the agent.
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 clearly states the action (parse), the resource (ICS file content), and the output (array of event objects). It effectively distinguishes from sibling tools like create_calendar, create_event, and URL generators.
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?
No guidance on when to use this tool vs alternatives. While siblings are distinct, the description lacks explicit context about appropriate scenarios or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct function: multi-event calendar creation, single event creation, Google Calendar URL, Outlook URL, and ICS parsing. No overlap.
All tool names use consistent snake_case with a clear verb_noun pattern (create_calendar, create_event, google_calendar_url, outlook_calendar_url, parse_ics).
5 tools is well-scoped for a calendar utility server covering creation, URL generation, and parsing. Not excessive or sparse.
The set covers all common needs: single/multi-event creation, popular calendar URL generation, and ICS parsing. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Extracts calendar events from natural-language text, with .ics and calendar links.
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
AI-native scheduler that lives in Claude. Describe meetings in plain English; Heldly does the rest.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude to interact with Google Calendar through natural language, providing the ability to view, create, update, and delete calendar events with persistent OAuth2 authentication.20MIT
- AlicenseNot gradedqualityCmaintenanceProvides Claude with full access to Apple Calendar on macOS for event management, smart scheduling, and schedule analytics. It enables natural language event creation, conflict detection, and template-based scheduling through AppleScript integration.261MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates Google Calendar and Notion to enable Claude to manage your schedule, plan tasks, detect conflicts, and keep appointments and tasks synchronized.GPL 2.0
- AlicenseAqualityCmaintenanceEnables Claude to read, create, update, and delete Google Calendar events directly through natural language.6164MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeffereychown-Max/mcp-ical'
If you have feedback or need assistance with the MCP directory API, please join our Discord server