# create_appointment

Create a new appointment/booking in GoHighLevel

Agent View of the PolicyLayer registry record for `create_appointment`. HTML page: https://policylayer.com/tools/ghl/create-appointment

## Facts

- Tool: `create_appointment`
- Server: Ghl (`ghl-mcp-server`) — https://policylayer.com/tools/ghl.md
- Install: `npx -y ghl-mcp-server`
- Homepage: git+https://github.com/mastanley13/ghl-mcp.git
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 11 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `title` | string | no | Title/subject of the appointment |
| `address` | string | no | Meeting location or address |
| `endTime` | string | no | End time in ISO format (optional, will be calculated from slot duration if not provided) |
| `toNotify` | boolean | no | Send notifications for this appointment |
| `contactId` | string | yes | The contact ID for whom to book the appointment |
| `startTime` | string | yes | Start time in ISO format (e.g., "2024-01-15T10:00:00-05:00") |
| `calendarId` | string | yes | The calendar ID to book the appointment in |
| `assignedUserId` | string | no | User ID to assign this appointment to |
| `ignoreDateRange` | boolean | no | Ignore minimum scheduling notice and date range restrictions |
| `appointmentStatus` | string | no | Initial status of the appointment |
| `meetingLocationType` | string | no | Type of meeting location |

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": "create_appointment",
    "arguments": {
      "contactId": "<contactId>",
      "startTime": "<startTime>",
      "calendarId": "<calendarId>"
    }
  }
}
```

## Why create_appointment is rated Medium

This tool creates a new appointment record in GoHighLevel, which is a reversible write operation. It does not execute arbitrary code, delete data, or move money. The appointment can be modified or canceled later. The medium severity reflects that creating bogus appointments could disrupt scheduling and customer service operations, but the impact is localized and reversible.

From the tool's own definition: "Tool name 'create_appointment' and description 'Create a new appointment/booking in GoHighLevel' indicate the tool creates/adds new data to the system reversibly."

Risk signals: High parameter count (11 properties)

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Ghl (252)

- `bulk_delete_social_posts` — Destructive — https://policylayer.com/tools/ghl/bulk-delete-social-posts.md
- `cancel_scheduled_email` — Destructive — https://policylayer.com/tools/ghl/cancel-scheduled-email.md
- `cancel_scheduled_message` — Destructive — https://policylayer.com/tools/ghl/cancel-scheduled-message.md
- `delete_appointment` — Destructive — https://policylayer.com/tools/ghl/delete-appointment.md
- `delete_appointment_note` — Destructive — https://policylayer.com/tools/ghl/delete-appointment-note.md
- `delete_calendar` — Destructive — https://policylayer.com/tools/ghl/delete-calendar.md
- `delete_calendar_group` — Destructive — https://policylayer.com/tools/ghl/delete-calendar-group.md
- `delete_calendar_notification` — Destructive — https://policylayer.com/tools/ghl/delete-calendar-notification.md
- `delete_calendar_resource_equipment` — Destructive — https://policylayer.com/tools/ghl/delete-calendar-resource-equipment.md
- `delete_calendar_resource_room` — Destructive — https://policylayer.com/tools/ghl/delete-calendar-resource-room.md
- `delete_contact` — Destructive — https://policylayer.com/tools/ghl/delete-contact.md
- `delete_contact_note` — Destructive — https://policylayer.com/tools/ghl/delete-contact-note.md
- `delete_contact_task` — Destructive — https://policylayer.com/tools/ghl/delete-contact-task.md
- `delete_conversation` — Destructive — https://policylayer.com/tools/ghl/delete-conversation.md
- `delete_coupon` — Destructive — https://policylayer.com/tools/ghl/delete-coupon.md
- `delete_custom_provider_integration` — Destructive — https://policylayer.com/tools/ghl/delete-custom-provider-integration.md
- `delete_email_template` — Destructive — https://policylayer.com/tools/ghl/delete-email-template.md
- `delete_invoice_template` — Destructive — https://policylayer.com/tools/ghl/delete-invoice-template.md
- `delete_location` — Destructive — https://policylayer.com/tools/ghl/delete-location.md
- `delete_location_custom_field` — Destructive — https://policylayer.com/tools/ghl/delete-location-custom-field.md
- `delete_location_custom_value` — Destructive — https://policylayer.com/tools/ghl/delete-location-custom-value.md
- `delete_location_tag` — Destructive — https://policylayer.com/tools/ghl/delete-location-tag.md
- `delete_location_template` — Destructive — https://policylayer.com/tools/ghl/delete-location-template.md
- `delete_media_file` — Destructive — https://policylayer.com/tools/ghl/delete-media-file.md
- `delete_object_record` — Destructive — https://policylayer.com/tools/ghl/delete-object-record.md
- `delete_opportunity` — Destructive — https://policylayer.com/tools/ghl/delete-opportunity.md
- `delete_social_account` — Destructive — https://policylayer.com/tools/ghl/delete-social-account.md
- `delete_social_post` — Destructive — https://policylayer.com/tools/ghl/delete-social-post.md
- `ghl_delete_association` — Destructive — https://policylayer.com/tools/ghl/ghl-delete-association.md
- `ghl_delete_custom_field` — Destructive — https://policylayer.com/tools/ghl/ghl-delete-custom-field.md
- …and 222 more: https://policylayer.com/tools/ghl.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=ghl · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/ghl
