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
- book appointment
- confirm appointment
- reschedule call
- cancel appointment
Access
- REST:
POST https://api.rafidsystem.com/api/v1/voice/appointment - x402:
POST https://api.rafidsystem.com/api/v1/x402/voice/appointment - MCP tool:
appointment_call_agent
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