# booking_create

Create a new session/appointment for a client. providerId is optional — if omitted, the system auto-assigns a provider using the agenda assignment strategy (round_robin, least_booked, etc.). When a client has a titular provider, that provider is preferred automatically. Without providerId and without publicAgendaId, the org default public agenda is used. Preconditions: (1) service must exist and be active, (2) client must exist (use client_create first). Use availability_get_slots to find valid time slots before calling this. Set retroactive: true to register past sessions (skips slot validation, sets status to completed by default). Use autoCharge: true with retroactive to auto-generate the charge. Retroactive sessions are tagged with self_declared provenance. Max 365 days in the past. Past dates are auto-detected as retroactive — the retroactive flag is optional (system infers it from scheduledAt).

Agent View of the PolicyLayer registry record for `booking_create`. HTML page: https://policylayer.com/tools/com-servicialo-mcp-server/booking-create

## Facts

- Tool: `booking_create`
- Server: Servicialo (`@servicialo/mcp-server`) — https://policylayer.com/tools/com-servicialo-mcp-server.md
- Install: `npx -y @servicialo/mcp-server`
- Homepage: https://github.com/servicialo/mcp-server
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 12 (4 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `notes` | string | no |  |
| `apiKey` | string | no |  |
| `orgSlug` | string | yes |  |
| `clientId` | string | yes |  |
| `duration` | integer | no |  |
| `modalidad` | string | no |  |
| `serviceId` | string | yes |  |
| `autoCharge` | boolean | no |  |
| `providerId` | string | no |  |
| `retroactive` | boolean | no |  |
| `scheduledAt` | string | yes |  |
| `idempotencyKey` | string | no |  |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "booking_create",
    "arguments": {
      "orgSlug": "<orgSlug>",
      "clientId": "<clientId>",
      "serviceId": "<serviceId>",
      "scheduledAt": "<scheduledAt>"
    }
  }
}
```

## Why booking_create is rated Medium

booking_create modifies persistent data by creating appointment records in the system. It is reversible (appointments can typically be cancelled or modified via other tools like agendas_delete or agendas_update on the same server), so it qualifies as Write rather than Destructive.

From the tool's own definition: "Tool creates a new session/appointment; description states 'Create a new session/appointment for a client' and allows setting retroactive bookings, indicating irreversible creation of appointment records."

Risk signals: Handles credentials or secrets (apiKey) · High parameter count (14 properties)

## Use case

AI agents use booking_create to create or update resources in Servicialo, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Servicialo environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Servicialo:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "booking_create": {
      "limits": [
        {
          "counter": "booking_create_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Servicialo (110)

- `agendas_delete` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/agendas-delete.md
- `cierre_cerrar_org` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-cerrar-org.md
- `cierre_eliminar_cliente` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-eliminar-cliente.md
- `email_domain_delete` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/email-domain-delete.md
- `portal_cancel_reschedule_request` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/portal-cancel-reschedule-request.md
- `portal_session_cancel` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/portal-session-cancel.md
- `public_booking_cancel` — Destructive — https://policylayer.com/tools/com-servicialo-mcp-server/public-booking-cancel.md
- `comms_send_campaign` — Execute — https://policylayer.com/tools/com-servicialo-mcp-server/comms-send-campaign.md
- `email_domain_verify` — Execute — https://policylayer.com/tools/com-servicialo-mcp-server/email-domain-verify.md
- `lifecycle_transition` — Execute — https://policylayer.com/tools/com-servicialo-mcp-server/lifecycle-transition.md
- `booking_cancel` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/booking-cancel.md
- `cierre_crear_cliente` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-crear-cliente.md
- `cierre_distribuir_utilidades` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-distribuir-utilidades.md
- `finance_create_cobro` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/finance-create-cobro.md
- `finance_create_venta` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/finance-create-venta.md
- `finance_register_payment` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/finance-register-payment.md
- `finance_send_confirmations` — Financial — https://policylayer.com/tools/com-servicialo-mcp-server/finance-send-confirmations.md
- `admin_list_providers` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/admin-list-providers.md
- `agendas_get` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/agendas-get.md
- `agendas_list` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/agendas-list.md
- `availability_get_provider_schedule` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/availability-get-provider-schedule.md
- `availability_get_slots` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/availability-get-slots.md
- `booking_get` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/booking-get.md
- `booking_list` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/booking-list.md
- `booking_list_requests` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/booking-list-requests.md
- `cierre_evaluar_org` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-evaluar-org.md
- `cierre_listar_clientes` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-listar-clientes.md
- `cierre_listar_utilidades` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-listar-utilidades.md
- `cierre_preview_cliente` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/cierre-preview-cliente.md
- `client_get` — Read — https://policylayer.com/tools/com-servicialo-mcp-server/client-get.md
- …and 80 more: https://policylayer.com/tools/com-servicialo-mcp-server.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-servicialo-mcp-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-servicialo-mcp-server
