Skip to main content

ICS MCP Server

An MCP (Model Context Protocol) server that provides tools for creating ICS calendar events. Built with FastMCP and the ics library to generate RFC5545-compliant calendar files.

Features

  • create_ics_event: Generate ICS calendar events with comprehensive options
    • Required: event name and start time (ISO format)
    • Optional: end time or duration in minutes
    • Optional: description, location, URL
    • Optional: all-day event support
    • Optional: alarm notifications (minutes before event)

Installation & Usage

Install from GitHub

{
  "mcpServers": {
    "icsmcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/narumiruna/ics-mcp",
        "icsmcp"
      ]
    }
  }
}

Install from PyPI

{
  "mcpServers": {
    "icsmcp": {
      "command": "uvx",
      "args": ["icsmcp@latest"]
    }
  }
}

Run Locally

{
  "mcpServers": {
    "icsmcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/ics-mcp",
        "icsmcp"
      ]
    }
  }
}

Development

Requirements

  • Python 3.12+
  • uv (for dependency management)

Setup

# Clone the repository
git clone https://github.com/narumiruna/ics-mcp.git
cd ics-mcp

# Install dependencies
uv sync

# Run tests
uv run pytest

# Run linting
uv run ruff check .

# Run type checking
uv run mypy .

Available Commands

  • make lint - Run code linting
  • make type - Run type checking
  • make test - Run test suite
  • make publish - Build and publish package

Example Usage

Once configured as an MCP server, you can create calendar events like:

# Create a basic meeting
create_ics_event(
    name="Team Meeting",
    begin="2024-07-04T10:00:00",
    end="2024-07-04T11:00:00",
    description="Weekly team sync",
    location="Conference Room A"
)

# Create an all-day event with alarm
create_ics_event(
    name="Project Deadline", 
    begin="2024-07-04T00:00:00",
    all_day=True,
    alarm_minutes_before=1440  # 24 hours before
)

# Create event with duration
create_ics_event(
    name="Workshop",
    begin="2024-07-04T14:00:00", 
    duration_minutes=90,
    url="https://example.com/workshop"
)

The tool returns properly formatted ICS strings that can be imported into any calendar application.

License

See LICENSE file for details.

Metadata

Release files for icsmcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for icsmcp 0.1.0
File Interpreter ABI Platform
icsmcp-0.1.0-py3-none-any.whl Python 3 none any Details

Release files / icsmcp-0.1.0-py3-none-any.whl

Download URL icsmcp-0.1.0-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c18590811980a318f25e13f7338aa512346161c6ff96c1098222f126824c07d0
BLAKE2b-256 checksum
How to use checksums
edeca7582825417317ddb838ec64756f7fe003cbbc37fe438b64bc7dc41a6b13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.19

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page