appointment_call_agent

Place an asynchronous appointment call to propose, book, confirm, reschedule or cancel a slot through a calendar-provider abstraction.

When to use

Use when an authorized agent must coordinate a customer appointment by telephone and return a machine-readable scheduling result.

Selection guidance

Role: specialized. Use when an authorized agent must coordinate a customer appointment by telephone and return a machine-readable scheduling result.

Use cases

Access

Price: $0.50 USD per call. Payment options are deployment-configured; inspect /api/v1/payment-methods. Prices and payment semantics are unchanged from the canonical registry.

Related tools

Example input

{
  "phoneNumber": "+96891234567",
  "action": "book",
  "appointmentType": "Product demonstration",
  "availableSlots": [
    "2026-09-28T10:00:00+04:00"
  ],
  "timezone": "Asia/Muscat",
  "language": "en",
  "maxDurationSeconds": 300
}

Example output

{
  "callId": "call_example",
  "status": "confirmed",
  "confirmedSlot": "2026-09-28T10:00:00+04:00",
  "customerNotes": null,
  "calendarEventId": null
}

Input schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "phoneNumber": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{7,14}$"
    },
    "action": {
      "type": "string",
      "enum": [
        "propose",
        "book",
        "confirm",
        "reschedule",
        "cancel"
      ]
    },
    "appointmentType": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "availableSlots": {
      "default": [],
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "format": "date-time",
        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      }
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "ar"
      ]
    },
    "maxDurationSeconds": {
      "default": 300,
      "type": "integer",
      "minimum": 1,
      "maximum": 3600
    },
    "context": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string",
        "maxLength": 500
      }
    },
    "safety": {
      "type": "object",
      "properties": {
        "consentNotice": {
          "type": "string",
          "maxLength": 500
        },
        "recording": {
          "default": false,
          "type": "boolean"
        },
        "transcription": {
          "default": false,
          "type": "boolean"
        },
        "timezone": {
          "type": "string",
          "maxLength": 100
        }
      },
      "required": [
        "recording",
        "transcription"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "phoneNumber",
    "action",
    "appointmentType",
    "availableSlots",
    "timezone",
    "language",
    "maxDurationSeconds"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "callId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "proposed",
        "confirmed",
        "rescheduled",
        "cancelled",
        "failed"
      ]
    },
    "confirmedSlot": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "customerNotes": {
      "type": [
        "string",
        "null"
      ]
    },
    "calendarEventId": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "callId",
    "status",
    "confirmedSlot",
    "customerNotes",
    "calendarEventId"
  ],
  "additionalProperties": false
}

Category: Voice / Communication · hierarchy: specialized · idempotent: no · side effects: yes