ICal Server
БесплатноНе проверенEnables AI assistants to load, query, and manage iCalendar files with full CRUD operations and support for multiple calendars.
Описание
Enables AI assistants to load, query, and manage iCalendar files with full CRUD operations and support for multiple calendars.
README
A modern Model Context Protocol (MCP) server for managing iCalendar files. This server allows AI assistants to interact with calendar data through a standardized protocol.
Features
- Load calendars from:
- Local files (
.ics) - HTTP/HTTPS URLs
- Local files (
- Query events with filters for:
- Date ranges
- Search text (summary, description, location)
- Location
- Recurring event expansion
- Full CRUD operations:
- Create new events
- Update existing events
- Delete events
- Multiple calendar support: Load and manage multiple calendars simultaneously
- Read-only mode: HTTP calendars are automatically read-only
Installation
Using npx (recommended)
You can run the server directly without installation:
npx @jonas/ical-mcp
Global Installation
npm install -g @jonas/ical-mcp
ical-mcp
Local Development
git clone https://github.com/jnss95/ical-mcp.git
cd ical-mcp
npm install
npm run build
npm start
Configuration
Environment Variables
Calendars are configured using environment variables at startup:
| Variable | Description |
|---|---|
CALENDAR_LINK |
URL or path to a calendar (id defaults to "default") |
CALENDAR_LINK_{id} |
URL or path to a calendar with custom id |
Examples:
Single calendar (id defaults to "default"):
CALENDAR_LINK=https://example.com/calendar.ics
Multiple calendars with custom IDs:
CALENDAR_LINK_work=https://example.com/work.ics
CALENDAR_LINK_personal=/path/to/personal.ics
CALENDAR_LINK_holidays=https://example.com/holidays.ics
VS Code MCP Configuration
Add to your VS Code settings (.vscode/mcp.json):
{
"servers": {
"ical": {
"type": "stdio",
"command": "npx",
"args": ["@jnss95/ical-mcp"],
"env": {
"CALENDAR_LINK": "https://example.com/your-calendar.ics"
}
}
}
}
With multiple calendars:
{
"servers": {
"ical": {
"type": "stdio",
"command": "npx",
"args": ["@jnss95/ical-mcp"],
"env": {
"CALENDAR_LINK_work": "https://example.com/work.ics",
"CALENDAR_LINK_personal": "/path/to/personal.ics"
}
}
}
}
Claude Desktop Configuration
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ical": {
"command": "npx",
"args": ["@jnss95/ical-mcp"],
"env": {
"CALENDAR_LINK": "https://example.com/your-calendar.ics"
}
}
}
}
Available Tools
Calendar Management
| Tool | Description |
|---|---|
list_calendars |
List all loaded calendars |
get_calendar_info |
Get metadata about a loaded calendar |
Event Operations
| Tool | Description |
|---|---|
list_events |
List all events in a calendar |
search_events |
Search events with filters |
get_event |
Get details of a specific event |
create_event |
Create a new event |
update_event |
Update an existing event |
delete_event |
Delete an event |
Tool Examples
List Calendars
{
"tool": "list_calendars",
"arguments": {}
}
Search Events
{
"tool": "search_events",
"arguments": {
"calendarId": "work",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-01-31T23:59:59Z",
"searchText": "meeting",
"expandRecurring": true
}
}
Create Event
{
"tool": "create_event",
"arguments": {
"calendarId": "work",
"summary": "Team Meeting",
"start": "2024-01-15T10:00:00Z",
"end": "2024-01-15T11:00:00Z",
"description": "Weekly team sync",
"location": "Conference Room A"
}
}
Create Recurring Event
{
"tool": "create_event",
"arguments": {
"calendarId": "work",
"summary": "Daily Standup",
"start": "2024-01-15T09:00:00Z",
"end": "2024-01-15T09:15:00Z",
"rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"
}
}
Update Event
{
"tool": "update_event",
"arguments": {
"calendarId": "work",
"eventId": "[email protected]",
"summary": "Updated Meeting Title",
"location": "New Location"
}
}
Development
Running Tests
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch
Building
# Build TypeScript
npm run build
# Watch mode
npm run watch
Project Structure
ical_mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── calendar/
│ │ ├── calendar.ts # Calendar class (CRUD operations)
│ │ ├── loader.ts # Calendar loading utilities
│ │ └── index.ts # Module exports
│ └── types/
│ ├── calendar.ts # Type definitions
│ ├── ical.d.ts # ical.js type declarations
│ └── index.ts # Type exports
├── build/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── vitest.config.ts
License
MIT
Установка ICal Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/jnss95/ical-mcpFAQ
ICal Server MCP бесплатный?
Да, ICal Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для ICal Server?
Нет, ICal Server работает без API-ключей и переменных окружения.
ICal Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить ICal Server в Claude Desktop, Claude Code или Cursor?
Открой ICal Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare ICal Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
