MCP server for querying TimeEdit ICS schedules with filtering and fuzzy search
Project description
TimeEdit MCP Server
MCP server for TimeEdit .ics schedules.
The server accepts a TimeEdit ICS link at startup, downloads/parses events, and caches results for up to 24 hours.
Useful for connecting MCP clients (like Claude) to TimeEdit schedules, enabling you to ask for info regarding exam halls, lecture dates, etc. without manual calendar browsing.
Get your .ics link
- Go to your institution's TimeEdit page and find the calendar you want to query.
- Look for the "Subscribe" option (see image).
- Copy the provided
.icsURL (it should end with.ics)
Note: This is the URL you will provide as an argument at startup.
Quick start (PyPI)
Install uv first: https://docs.astral.sh/uv/getting-started/installation/
Add this to claude_desktop_config.json (no source checkout needed):
{
"mcpServers": {
"timeedit-mcp": {
"command": "uvx",
"args": ["timeedit-mcp"],
"env": {
"TIMEEDIT_ICS_URL": "https://...your-timeedit-link....ics",
"TIMEEDIT_OUTPUT_TIMEZONE": "Europe/Stockholm"
}
}
}
}
Development (from source)
git clone git@github.com:ekvanox/timeedit-mcp.git
cd timeedit-mcp
uv sync
uv run main.py --ics-url "https://...your-timeedit-link....ics"
# Alternative with env vars
# TIMEEDIT_ICS_URL="https://...your-timeedit-link....ics" TIMEEDIT_OUTPUT_TIMEZONE="Europe/Stockholm" uv run main.py
Docker
The container uses uv for dependency installation and startup.
Docker uses an HTTP entrypoint on port 8888.
docker build -t timeedit-mcp .
docker run -d --name timeedit-mcp --restart unless-stopped \
-p 8888:8888 \
-e TIMEEDIT_ICS_URL="https://...your-timeedit-link....ics" \
-e TIMEEDIT_OUTPUT_TIMEZONE="Europe/Stockholm" \
timeedit-mcp
Connect to Claude Desktop (MCP server)
- Open
~/Library/Application Support/Claude/claude_desktop_config.json - Add this server entry:
{
"mcpServers": {
"timeedit-mcp": {
"command": "uv",
"args": ["run", "/PATH/TO/PROJECT/timeedit-mcp/main.py"],
"env": {
"TIMEEDIT_ICS_URL": "https://...your-timeedit-link....ics",
"TIMEEDIT_OUTPUT_TIMEZONE": "Europe/Stockholm"
}
}
}
}
- Restart Claude Desktop.
Claude skill
This repo includes a ready-to-use skill file at SKILL.md.
Easiest way to add it to Claude
- Create a skill folder named
timeedit-mcpunder your Claude skills directory. - Copy this repo's
SKILL.mdinto that folder asSKILL.md. - Restart Claude (or reload customizations) so it picks up the new skill.
Typical location on macOS:
~/.claude/skills/timeedit-mcp/SKILL.md
Available MCP tools
Response format
All tools return TOON data (token efficient JSON alternative).
Tool reference
| Endpoint | Input | Output |
|---|---|---|
list_programs |
|
|
list_courses_for_program |
|
|
search_courses_fuzzy |
|
|
list_events_for_course |
|
|
list_events_for_program |
|
|
list_events_filtered |
|
|
Notes
- Cache is stored under
~/.cache/timeedit-mcp/. - Cache TTL is max 24 hours.
- Event times default to the server system timezone. Override with
--output-timezone IANA_NAME(e.g.--output-timezone Europe/Stockholm) or set theTIMEEDIT_OUTPUT_TIMEZONEenvironment variable at server startup.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timeedit_mcp-0.1.0.tar.gz.
File metadata
- Download URL: timeedit_mcp-0.1.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
081ca2de5814fa5b90c530995f2bffa34802dd94ec9da9480ba609a5461fd0db
|
|
| MD5 |
4c1af7525f8b0aeb680278bc91c1f997
|
|
| BLAKE2b-256 |
0382e0612ddf86c31786bcbf2128608dfca814b179c16adac381bad24d391a50
|
File details
Details for the file timeedit_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: timeedit_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62d17925914555b4ed7ffcb3784f94b85e3649d77cc169650e1da86715501a6e
|
|
| MD5 |
7ea50a5f8bf85ef03825b9b28fdabbc3
|
|
| BLAKE2b-256 |
d549372f7163fe5db85f20eaf15e4630c2824c3f5f6c2c08c30c3cdd5f96acbb
|