Nolizi Calendar
Free scheduling your agent can book through: live availability, booking, verification, cancel.
我該用這個嗎
品質與安全性
發現項目(3)
- HIGH
- MEDIUM在 create_booking 中
- INFO在 create_booking 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"calendar": {
"url": "https://calendar.nolizi.com/mcp"
}
}
}遠端端點
https://calendar.nolizi.com/mcpstreamable-http它能做什麼
工具清單
工具(5)
🟢list_event_types
List the bookable event types owned by the configured Nolizi Calendar account. Start here: the returned slug is what every other tool needs. Never guess a slug. Events with required custom questions or email verification cannot be booked through this API — send the person to the event’s public booking page instead.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_available_slots(event_type)
Return the live available start/end pairs for one event type. These are real times on a real calendar: show them to the person and let them choose. Do not invent, extrapolate or round a time that is not in this response. Convert times for display only — pass the original values back to create_booking unchanged.
輸入結構描述
{
"type": "object",
"properties": {
"event_type": {
"type": "string",
"description": "Event slug from list_event_types (not a schedule_id)."
}
},
"required": [
"event_type"
],
"additionalProperties": false
}🟢list_upcoming_bookings
List up to 100 upcoming confirmed bookings. This is the only way to verify that a booking exists. Use it after every create or cancel, and use it first whenever a write returned an uncertain outcome.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_booking(event_type, start, end, name, email, ...)
Book a real meeting. This sends invitations and writes to connected calendars, and it cannot be undone except by cancelling. Ask the person to confirm the event, the exact time and the attendee details before calling it, and use their real name and email — never a placeholder. The start and end must be copied verbatim from a recent list_available_slots response; this server re-checks them against live availability and refuses times it cannot find. There is no idempotency key: if this call returns an uncertain outcome, do not call it again — call list_upcoming_bookings and read what actually happened.
輸入結構描述
{
"type": "object",
"properties": {
"event_type": {
"type": "string",
"description": "Event slug from list_event_types."
},
"start": {
"type": "string",
"description": "Start, copied exactly from a fresh list_available_slots response."
},
"end": {
"type": "string",
"description": "The matching end from that same slot."
},
"name": {
"type": "string",
"description": "The attendee’s real name."
},
"email": {
"type": "string",
"description": "The attendee’s real email address. Invitations go here."
},
"booker_tz": {
"type": "string",
"description": "Attendee IANA timezone, e.g. Europe/Berlin. Defaults to UTC."
},
"note": {
"type": "string",
"description": "Optional note shared with the host (max 2000 characters)."
}
},
"required": [
"event_type",
"start",
"end",
"name",
"email"
],
"additionalProperties": false
}🔴cancel_booking(booking_id)
Cancel a confirmed booking. This notifies the attendee and removes the meeting from connected calendars, and it cannot be undone. Use an exact booking_id taken from list_upcoming_bookings — never a guessed or reconstructed one. Cancelling one occurrence of a grouped or recurring booking can affect several meetings, so confirm with the person which meetings they mean.
輸入結構描述
{
"type": "object",
"properties": {
"booking_id": {
"type": "string",
"description": "Exact booking_id from list_upcoming_bookings."
}
},
"required": [
"booking_id"
],
"additionalProperties": false
}建議的提示詞
list_event_typeslist_event_types社群
證據