Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
A

afwlehmann/mcp-khal

MCP server for reading and creating events in khal calendars

Before you install: no copy-paste command · no license recorded · site blocks automated checks

First step: npm install && npm run build

View on GitHub ↗Link checked 2026-11-12 · automated check blocked (HTTP 429), status unconfirmed
Star count
0 ★ · afwlehmann/mcp-khal · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
read directly from its GitHub page · type: open-source project
Harvest history
first seen 2026-11-03 · last seen 2026-11-14 · seen 12× · listed by 1 sources
Score
score 103 · 1 sources · repo
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository afwlehmann/mcp-khal;first catalogued 2026-11-03;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

# mcp-khal

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

An MCP server that lets an assistant read and create events in your khal calendars.
## Tools
| Tool | Purpose | Parameters |
| listcalendars | List the configured calendars | — |
| listevents | List events in a date range (default: today + 7 days) | range?, calendar? |
| eventsinrange | List all events intersecting a time range | start, end, calendar? |
| searchevents | Search events by text | query, calendar? |
| newevent | Create an event or a recurring series | start, end?, summary, calendar?, location?, description?, alarm?, recurrence?, attendees?, organizer? |
newevent is the only tool that writes. Its description tells the calling agent to ask the user for confirmation first, and never to invite attendees without explicit approval. The other tools are read-only and also work on read-only calendars.
### Recurring events
recurrence is { pattern, ending? }. For a series, start must be YYYY-MM-DD HH:MM (the first occurrence, which must match the pattern), end is a required HH:MM, and times are local.
pattern is one of:
{ "kind": "daily", "interval"?: n }
{ "kind": "weekly", "interval"?: n, "weekdays": [...] }
{ "kind": "monthlyday", "interval"?: n, "day": 1-31 }
{ "kind": "monthlyweekday", "interval"?: n, "nth": 1-4 | -1, "weekday": "..." }
{ "kind": "yearly", "interval"?: n }
ending is { "kind": "never" }, { "kind": "count", "count": n } or { "kind": "until", "date": "YYYY-MM-DD" }.
Example, every 2nd Wednesday of the month: { "pattern": { "kind": "monthlyweekday", "nth": 2, "weekday": "wednesday" } }.
### Invites
With attendees (email addresses), newevent imports an ICS with ORGANIZER and one ATTENDEE per address. Like a series, start must be YYYY-MM-DD HH:MM and end an HH:MM. The organizer is organizer if given, else the calendar's entry from the setup mapping, else the calendar name if it is an email address; otherwise the call fails. khal does not send the invites; that is left to your sync/mail tooling.
## Usage
npm install && npm run build
MCP client config:
json
{ "mcpServers": { "khal": { "command": "node", "args": ["/path/to/mcp-khal/dist/cli.js"] } } }
## Nix / Home Manager
The flake exposes:
| Output | Purpose |
| packages. .default | The server. The version is taken from package.json and khal is bundled on its PATH. |
| overlays.default | Adds pkgs.mcp-khal. |
| homeModules.default | The Home Manager module programs.mcp-khal. |
### Home Manager module
Add the flake as an input, import the module and enable it:
nix
# flake.nix of your Home Manager configuration
inputs.mcp-khal.url = "github: /mcp-khal";
# home configuration
{ config, inputs, ... }:
imports = [ inputs.mcp-khal.homeModules.default ];
programs.mcp-khal = {
enable = true;
# calendar name -> your email address on that calendar
calendarEmails = {
work = "me@example.com";
private = "me@example.org";
};
};
Options:
| Option | Type | Default | Description |
| programs.mcp-khal.enable | bool | false | Install mcp-khal into home.packages. |
| programs.mcp-khal.package | package | the flake's default package for your system | Override to use your own build or an overlay. |
| programs.mcp-khal.calendarEmails | attrs of email address | { } | Calendar name → your address on it. Used as the organizer of invites (see Invites). Values are validated with the same rule as the server, so a typo fails at home-manager switch instead of breaking invites later. |
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/afwlehmann-mcp-khal/)
Source
github · https://github.com/afwlehmann/mcp-khal
Browse by field
Open source
added
today

More like this

All 1,671 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index