Prepare an appointment
Prepare a SURA appointment in ONE read-only call. With patient identity and the ordered service, first checks existing appointments; if one matches, returns it and stops. Otherwise resolves patient, live service/area and professional names internally and reads availability, checking bounded date and professional alternatives while preserving explicit doctor/date/expiry constraints. Returns patient.primaryIps, actual service/professional, times and ready booking arguments. Use after the required document review, instead of chaining list_appointments, lookup_patient, list_services and find_availability. It NEVER books, cancels, changes an appointment or verifies the documents for you. Apply clinic eligibility to the result, offer up to three chronological verified options from options; nextDates are calendar hints that require an hour lookup, never confirmed slots. Use fromDate for later alternatives and preserve explicit date, doctor and time preferences. Propose an actual slot and obtain one confirmation before the separate book_appointment call. Existing-appointment-only questions still use list_appointments.
- Scopes: any one of
sura:appointments:read,sura:appointments:write - Credentials: an API key, a client-credentials token or a person's access token
- Effect: read-only; safe to retry
- Limits: request body up to 32 KB, response up to 256 KB
- CLI:
arbol sura booking-options lookup· MCP tool:sura_booking_options_lookup
https://api.getarbol.com/v1/sura/booking-options/lookupAuthorization
Request body JSON required
- dateoptionalstring | null
A day the person asked for, as YYYY-MM-DD. Its openings come first; when it has none, the openings nearest to it on either side are offered instead and requestedDateAvailable is false. Omit it for the soonest openings. Resolve relative dates like "mañana" against the clinic's own timezone before calling.
- allowOtherProfessionalsoptionaltrueorfalseornull
Whether other doctors of this service may be offered when the named doctor has no opening in the searched window. Defaults to true: the named doctor's openings come first, and only when that doctor has none are the other doctors' nearest openings returned, with requestedProfessionalAvailable false. Name the actual doctor of each option and obtain consent before booking. False keeps the named doctor as a strict filter.
- professionaloptionalstring | null
Doctor's name, or part of it, when the caller asked for someone specific. Use list_professionals to check the service's registered doctors independently of available slots; absence from an open-agenda selector does not mean the doctor does not exist. Omit it to see whoever has room soonest.
Returns
200
Successful operation.
400
INVALID_INPUT: The request does not match the published schema.
401
UNAUTHORIZED: A valid access token is required.
403
FORBIDDEN: The token does not authorize this operation.
404
CONNECTION_NOT_FOUND: The organization has no such connection.
409
PORTAL_SESSION_CONFLICT: The organization's connection to this integration couldn't complete the request. Don't retry it automatically; if it keeps happening, contact your Arbol team.CONNECTION_NOT_CONFIGURED: The organization has no SURA connection that can run this operation.
413
REQUEST_TOO_LARGE: The request exceeds the allowed size.
415
UNSUPPORTED_MEDIA_TYPE: The request content type is not supported.
429
RATE_LIMITED: The request rate limit was exceeded. Try again later.
500
INTERNAL_ERROR: The service could not complete the operation.
502
OUTCOME_UNKNOWN: The operation may have been applied; check its result before repeating it.PORTAL_CREDENTIALS_REJECTED: The organization's connection to this integration couldn't complete the request. Don't retry it automatically; if it keeps happening, contact your Arbol team.PORTAL_UNAVAILABLE: The organization's connection to this integration couldn't complete the request. Don't retry it automatically; if it keeps happening, contact your Arbol team.