[project] name = "cal-scheduler-mcp" version = "1.1.3" description = "A timezone-correct CalDAV scheduling MCP server (zoned .ics, validated recurrence, single-occurrence edits)." readme = "README.md" license = "MIT" license-files = ["LICENSE"] authors = [ { name = "Robert Clark", email = "limey@users.noreply.github.com" } ] keywords = ["mcp", "caldav", "calendar", "scheduling", "ical", "icalendar", "timezone"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Other Audience", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Topic :: Office/Business :: Scheduling", ] # 3.11 = the floor we develop and test against. requires-python = ">=3.11" dependencies = [ "caldav>=3.2.1", "icalendar>=7.1.3", "mcp>=2.0.0,<3", "recurring-ical-events>=3.8.2", "tzdata>=2026.2", ] [project.urls] Homepage = "https://github.com/limey/cal-scheduler-mcp" Repository = "https://github.com/limey/cal-scheduler-mcp" Issues = "https://github.com/limey/cal-scheduler-mcp/issues" [project.scripts] cal-scheduler = "cal_scheduler:main" [dependency-groups] dev = [ "pytest>=9.1.0", "ruff>=0.15.18", ] [build-system] requires = ["uv_build>=0.11.22,<0.13.0"] build-backend = "uv_build" # Distribution name (`cal-scheduler-mcp`) and import module (`cal_scheduler`) # are intentionally distinct. uv_build's default layout would look for # `src/cal_scheduler_mcp/`, but the source tree is at `src/cal_scheduler/`. [tool.uv.build-backend] module-name = "cal_scheduler"