mcpField
C
Calendar App MCP

Calendar App MCP

本地服务
github.com/rygwdn生产力279 周前更新

关于 Calendar App MCP

Calendar App MCP 将 macOS Calendar.app 中的日程和提醒提供给 Claude 等支持 MCP 的 AI 助手。它还提供命令行工具,用于查询、筛选、搜索日历并格式化输出。

主要功能

  1. 01获取日程和提醒
  2. 02按日期和日历筛选
  3. 03搜索日历条目
  4. 04JSON 或 Markdown 输出
  5. 05提供工具、资源和每日议程提示词

适用场景

  1. 01查看当天日程和提醒
  2. 02查找日期范围内的空闲时间
  3. 03按关键词搜索日程

MCP 相关

MCP 服务提供日历与时间工具、日历和日期时间资源,以及每日议程提示词。MCP 客户端可获取、筛选和搜索 macOS Calendar.app 数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"calendar-app": {
"command": "uvx",
"args": [
"calendar-app-mcp"
]
}
}
}
启动命令uvx calendar-app-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicalendar-app-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Calendar App MCP

一个 MCP(Model Context Protocol)服务,可访问 macOS Calendar.app 中的事件和提醒,供 Claude 和其他 AI 助手使用。

MCP 集成

此软件包可作为 MCP 服务运行,与 Claude 和其他支持 MCP 协议的 AI 助手集成,使它们能够访问并交互操作你的 macOS 日历数据。

# Run as MCP server for AI assistant integration
uvx calendar-app-mcp   # Automatically runs as MCP server with no arguments
uvx calendar-app-mcp mcp   # Explicitly runs the MCP server

运行后,Claude 可通过 MCP 协议与你的日历数据交互,从而能够:

  • 查看即将发生的事件
  • 查找空闲时段
  • 查看事件详情
  • 访问提醒
  • 按日历、日期范围等筛选事件
MCP 工具和资源

此软件包提供多个 MCP 工具和资源:

工具
  • get_events:检索指定日期范围内的事件
  • get_reminders:检索指定日期范围内的提醒
  • list_calendars:列出所有可用日历
  • get_today_summary:汇总今天的事件和提醒
  • search:搜索包含指定词语的事件和提醒
  • get_current_time:获取任意时区的当前日期和时间
  • convert_time:将时间从一个时区转换为另一个时区
  • list_timezones:列出可用时区,可按区域筛选
资源
  • calendar://events/{date}:访问指定日期的事件
  • calendar://calendars:访问可用日历列表
  • datetime://current/{timezone}:获取指定时区的当前时间
提示词
  • daily_agenda:生成用于查看每日安排的提示词

功能

  • 访问 macOS Calendar.app 中的事件和提醒
  • 按日期范围、日历名称以及全天/忙碌状态筛选
  • 将输出格式化为 JSON 或 Markdown
  • 安全地在本地访问日历数据

安装

# Install from PyPI
pip install calendar-app-mcp

# Using uv
uv pip install calendar-app-mcp

# Using uvx (direct execution without installation)
uvx calendar-app-mcp calendars
uvx calendar-app-mcp mcp
可用命令名称

安装后,此软件包会提供两个命令行可执行文件:

# General-purpose calendar app tool - shows help when run without arguments
calendar-app

# MCP-focused variant - defaults to running the MCP server when no arguments are provided
calendar-app-mcp

两个命令都支持相同的子命令,但 calendar-app-mcp 针对作为 MCP 服务使用进行了优化。

开发环境安装
# Clone the repository
git clone https://github.com/rygwdn/calendar-app-mcp.git
cd calendar-app-mcp

# Install uv package manager if not already installed
# https://github.com/astral-sh/uv

# Install the package in development mode
uv install -e .

# Install with development dependencies (for testing)
uv install -e '.[dev]'

CLI 用法

除了作为 MCP 服务运行外,此软件包还可用作命令行工具,直接访问日历数据:

# List available calendars
uvx calendar-app-mcp calendars

# Get today's events and reminders
uvx calendar-app-mcp today

# Get only events
uvx calendar-app-mcp events

# Get only reminders
uvx calendar-app-mcp reminders

# Get both events and reminders
uvx calendar-app-mcp all

# Show JSON schema
uvx calendar-app-mcp schema

# Check version
uvx calendar-app-mcp --version
# or 
uvx calendar-app-mcp version
命令选项

大多数子命令都接受以下选项:

# Output in JSON format (default is markdown)
uvx calendar-app-mcp events --json

# Filter by date range
uvx calendar-app-mcp events --from 2024-12-01 --to 2024-12-31

# Filter by specific calendars
uvx calendar-app-mcp events --calendars "Work" "Personal"

# Only show all-day events
uvx calendar-app-mcp events --all-day-only

# Only show busy events
uvx calendar-app-mcp events --busy-only

# Include completed reminders
uvx calendar-app-mcp reminders --include-completed

开发

使用 UV 和公共 PyPI 注册表

为确保 UV 使用公共 PyPI 注册表,而不是本地配置的任何仓库:

# Generate a lock file using only PyPI
UV_NO_CONFIG=1 uv lock

# Install dependencies using only PyPI
UV_NO_CONFIG=1 uv install

UV_NO_CONFIG=1 环境变量会告知 UV 忽略所有系统级配置,仅使用公共 PyPI 注册表。

发布到 PyPI

要发布新版本到 PyPI:

  1. 更新 pyproject.toml 中的版本号
  2. 运行测试以确认一切正常:uv run pytest --black --ruff
  3. 构建软件包:UV_NO_CONFIG=1 uv run python -m build
  4. 上传到 PyPI:
    UV_NO_CONFIG=1 uv run twine upload dist/calendar_app_mcp-X.Y.Z*
    
    将 X.Y.Z 替换为实际版本号。
  5. 验证能否安装软件包:uvx calendar-app-mcp@latest --version
  6. 创建并推送版本标签:git tag vX.Y.Z && git push origin vX.Y.Z

更多详细说明请参阅 CLAUDE.md 文件。

运行测试

运行所有测试:

python -m pytest

运行测试并生成覆盖率报告:

python -m pytest --cov=calendar_app

运行指定测试文件:

python -m pytest tests/unit/utils/test_date_utils.py

运行指定测试:

python -m pytest tests/unit/utils/test_date_utils.py::TestParseDate::test_valid_date

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。