Calendars for AI agents: free/busy, next free slot, and bookings PostgreSQL never double-books.
MCPpedia last refreshed this data
io.github.PILOTAAI/slotlock is an MCP server that calendars for AI agents: free/busy, next free slot, and bookings PostgreSQL never double-books. Its tool list has not been published yet over http, requires no API key, and scores 89/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"slotlock": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer ${env:SLOTLOCK_AUTH_TOKEN}"
}
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Calendars for AI agents: free/busy, next free slot, and bookings PostgreSQL never double-books.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked slotlock against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in data / ai-ml
Token-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
Manage Supabase projects — databases, auth, storage, and edge functions
A cross-platform desktop application for managing AI Agents and MCP Servers. 一款用于管理AI智能体与MCP服务器的跨平台桌面应用程序。
An open-source AI agent that brings the power of Gemini directly into your terminal.
MCP Security Weekly
Get CVE alerts and security updates for io.github.PILOTAAI/slotlock and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Slotlock is a calendar for AI agents. It books vehicles, rooms, machines, people or anything else reservable, answers "when is this free?" from weekly availability rules, and lets PostgreSQL reject double bookings, however many writers race. Agents call it over MCP or A2A; your code calls it as a TypeScript library.
[start, end), so back-to-back bookings never collide.The documentation is at slotlock.pylota.io/docs, with a page each for the booking MCP server, the booking API, use cases and pricing. There are three ways to run Slotlock:
https://app.slotlock.pylota.io/dashboard, create a key, and connect an agent to
https://slotlock-api.pylota.io/mcp. Start on Free, with no card; Developer and Team add room
for agents in production (pricing). Best effort, with no
service level agreement.From a clone of this repository:
scripts/quickstart-env.sh > .env # .env.example, its four secrets set to openssl rand -hex 32
docker compose up --build --detach
docker compose exec slotlock slotlock resource add vehicle-42 --timezone Europe/London
| URL | What |
|---|---|
http://localhost:8080/mcp | MCP, with Authorization: Bearer <SLOTLOCK_AUTH_TOKEN> |
http://localhost:8080/a2a | A2A 1.0, same token; card at /.well-known/agent-card.json |
http://localhost:8080/v1/… | REST: the tools, and the application API for admin keys; described at /openapi.json |
http://localhost:8080/healthz | Readiness, including the database |
http://localhost:8080/metrics | Prometheus metrics, with Authorization: Bearer <SLOTLOCK_METRICS_TOKEN>; off without it |
The server listens on 127.0.0.1:8080, as a database role that cannot bypass row-level security.
.env.example makes every resource bookable on weekdays 09:00 to 17:00 and every write wait for a
person. The Quickstart walks through it with Claude
Code; Self-hosting covers the published image,
configuration and commands, and Operations
the production checklist.
npm install slotlock postgres
Node.js 22.12+, PostgreSQL 16 or newer with btree_gist (created for you if missing), and
postgres ^3.4.5 as a peer dependency. TypeScript declarations are included. The availability
maths needs no database:
import { expandRules, findNextAvailable } from 'slotlock';
const searchWindow = {
start: new Date('2026-09-14T00:00:00Z'),
end: new Date('2026-09-21T00:00:00Z'),
};
const windows = expandRules(
[{ rrule: 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR', startMinutes: 9 * 60, durationMinutes: 8 * 60 }],
se
... [View full README on GitHub](https://github.com/pilotaai/slotlock#readme)