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.
Metadata
Release files for timeedit-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| timeedit_mcp-0.1.0.tar.gz | 15.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| timeedit_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.1 kB
Release files / timeedit_mcp-0.1.0.tar.gz
| Download URL | timeedit_mcp-0.1.0.tar.gz |
|---|---|
| Size | 15.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
081ca2de5814fa5b90c530995f2bffa34802dd94ec9da9480ba609a5461fd0db
|
|
BLAKE2b-256 checksum How to use checksums |
0382e0612ddf86c31786bcbf2128608dfca814b179c16adac381bad24d391a50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|
Release files / timeedit_mcp-0.1.0-py3-none-any.whl
| Download URL | timeedit_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
62d17925914555b4ed7ffcb3784f94b85e3649d77cc169650e1da86715501a6e
|
|
BLAKE2b-256 checksum How to use checksums |
d549372f7163fe5db85f20eaf15e4630c2824c3f5f6c2c08c30c3cdd5f96acbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|