Calendar Update Appointment Note
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
write - Catalog version:
2026-07-12.2 - Descriptor hash:
77a773d090f9ff407fc967427b47da9380905f37120b1ec5aa4a4daea11c01c5
Update a note for a GHL calendar appointment using the current official appointment notes endpoint. Use this Calendars write tool to create, update, associate, or change GHL calendar data. Do not use it against live appointments or schedules unless the user explicitly requested that action. GHL category: Calendars. This writes to GoHighLevel and may change account data.
Request Body
{
"jsonrpc": "2.0",
"id": "ghl-calendar-update-appointment-note-example",
"method": "tools/call",
"params": {
"name": "ghl.calendar_update_appointment_note",
"arguments": {
"appointmentId": "appointmentId_123",
"noteId": "noteId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123"
}
}
}
Arguments Schema
{
"type": "object",
"required": [
"appointmentId",
"noteId"
],
"properties": {
"body": {
"type": "object",
"description": "Request body for this official GHL Calendars endpoint, using only fields documented by GHL.",
"additionalProperties": true
},
"query": {
"type": "object",
"description": "Optional GHL-supported query parameters for this official Calendars endpoint.",
"additionalProperties": true
},
"noteId": {
"type": "string",
"description": "noteId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
},
"tenantId": {
"type": "string",
"description": "Tenant ID from list_tenants."
},
"appointmentId": {
"type": "string",
"description": "appointmentId path parameter required by /calendars/appointments/:appointmentId/notes/:noteId."
}
},
"additionalProperties": false
}
Output Schema
{
"type": "object",
"required": [
"ok",
"data",
"error",
"meta"
],
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the GHL MCP operation completed successfully."
},
"data": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "array",
"items": {}
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Tool-specific GHL or local navigation result when ok is true."
},
"meta": {
"type": "object",
"description": "Safe execution, routing, and timing metadata.",
"additionalProperties": true
},
"error": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"description": "Safe error details when ok is false; credential values are never returned."
}
},
"description": "Normalized GHL MCP response envelope.",
"additionalProperties": false
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "ghl-calendar-update-appointment-note-example",
"method": "tools/call",
"params": {
"name": "ghl.calendar_update_appointment_note",
"arguments": {
"appointmentId": "appointmentId_123",
"noteId": "noteId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123"
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "ghl-calendar-update-appointment-note-example",
"method": "tools/call",
"params": {
"name": "ghl.calendar_update_appointment_note",
"arguments": {
"appointmentId": "appointmentId_123",
"noteId": "noteId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123"
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "ghl-calendar-update-appointment-note-example",
"method": "tools/call",
"params": {
"name": "ghl.calendar_update_appointment_note",
"arguments": {
"appointmentId": "appointmentId_123",
"noteId": "noteId_123",
"body": {},
"query": {},
"tenantId": "tenantId_123"
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool ghl.calendar_update_appointment_note executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}