Skip to main content

No project description provided

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icsmcp-0.1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file icsmcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: icsmcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for icsmcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c18590811980a318f25e13f7338aa512346161c6ff96c1098222f126824c07d0
MD5 a9383a7131f427af29179181be25757f
BLAKE2b-256 edeca7582825417317ddb838ec64756f7fe003cbbc37fe438b64bc7dc41a6b13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page