Skip to content
VS Code

Slotlock for VS Code

io.github.pilotaai/slotlock

Calendars for AI agents: free/busy, next free slot, and bookings PostgreSQL never double-books.

client:VS Code transport:stdio runtime:oci

Install Slotlock in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "database-url",
      "description": "DATABASE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-auth-token",
      "description": "SLOTLOCK_AUTH_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-confirmation-secret",
      "description": "SLOTLOCK_CONFIRMATION_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-metrics-token",
      "description": "SLOTLOCK_METRICS_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "port",
      "description": "PORT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-migrate-database-url",
      "description": "SLOTLOCK_MIGRATE_DATABASE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-confirm-writes",
      "description": "SLOTLOCK_CONFIRM_WRITES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-availability",
      "description": "SLOTLOCK_AVAILABILITY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-rest-api",
      "description": "SLOTLOCK_REST_API",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-retention-days",
      "description": "SLOTLOCK_RETENTION_DAYS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-shared-limits",
      "description": "SLOTLOCK_SHARED_LIMITS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-webhooks",
      "description": "SLOTLOCK_WEBHOOKS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "slotlock-tenant",
      "description": "SLOTLOCK_TENANT",
      "password": true
    }
  ],
  "servers": {
    "slotlock": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pilotaai/slotlock:0.11.0"
      ],
      "env": {
        "DATABASE_URL": "${input:database-url}",
        "SLOTLOCK_AUTH_TOKEN": "${input:slotlock-auth-token}",
        "SLOTLOCK_CONFIRMATION_SECRET": "${input:slotlock-confirmation-secret}",
        "SLOTLOCK_METRICS_TOKEN": "${input:slotlock-metrics-token}",
        "PORT": "${input:port}",
        "SLOTLOCK_MIGRATE_DATABASE_URL": "${input:slotlock-migrate-database-url}",
        "SLOTLOCK_CONFIRM_WRITES": "${input:slotlock-confirm-writes}",
        "SLOTLOCK_AVAILABILITY": "${input:slotlock-availability}",
        "SLOTLOCK_REST_API": "${input:slotlock-rest-api}",
        "SLOTLOCK_RETENTION_DAYS": "${input:slotlock-retention-days}",
        "SLOTLOCK_SHARED_LIMITS": "${input:slotlock-shared-limits}",
        "SLOTLOCK_WEBHOOKS": "${input:slotlock-webhooks}",
        "SLOTLOCK_TENANT": "${input:slotlock-tenant}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Slotlock in other clients