Appointments
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Medical AppointmentappointmentHealth, off until allowed
A medical, dental, vision, or therapy visit.
appointments_queryAppointmentDashboardFindthrough vritto_findList appointments (upcoming and past) and the provider directory. Rows are compact summaries plus headline counts; pass detail 'full' only when the user needs visit reasons, outcomes, or notes. Use for schedule/history questions and to resolve an appointment or provider ID before any write.
| Field | Type | Description |
|---|---|---|
| detail | one of summary, full | Response shape: "summary" (default, headline counts + upcoming/recent visit rows + providers) or "full" (every field incl. reason, outcome, and notes). |
| subjectPersonId | string | Filter to one person's visits: a People person id, or 'me' for the account owner's own. ALWAYS pass this when the question names a family member. Omit for everyone's. |
appointments_upsertAppointmentCreate or Updatethrough vritto_create or vritto_updateCreate or update one appointment. Omit record.id to create (title + startAt required); include a real record.id to update, sent fields merge. startAt must be an ISO datetime with the user's UTC offset. Marking status 'completed' with an outcome records the visit summary.
| Field | Type | Description |
|---|---|---|
| record* | object | Appointment fields; title + startAt required when creating. |
| record.id | string | Existing appointment ID to update. Omit to create a new appointment. |
| record.title | string | Short summary, e.g. 'Annual physical'. Required when creating. |
| record.providerId | string | Link to a saved provider; the server denormalizes the name. |
| record.providerName | string | Provider name if not linking a saved provider record. |
| record.type | one of checkup, follow_up, consultation, procedure, lab, imaging, dental, vision, therapy, vaccination, telehealth, other | Defaults to 'checkup'. |
| record.status | one of scheduled, completed, cancelled, no_show | Defaults to 'scheduled'. |
| record.startAt | string | Appointment start as an ISO 8601 datetime WITH the user's UTC offset, e.g. '2026-07-15T14:00:00-04:00'. Required when creating. |
| record.durationMinutes | integer | Length in minutes (default 30). |
| record.location | string | Address or place (free text). |
| record.placeKey | string | Place key ('google:<id>' or 'manual:<uuid>') linking the visit location to a saved Place, from a Places tool result, never invented. |
| record.isVirtual | boolean | Whether it's a telehealth/virtual visit. |
| record.meetingUrl | string | Video link for virtual visits. |
| record.reason | string | Why the visit is happening. |
| record.notes | string | Prep notes or questions to ask. |
| record.outcome | string | Post-visit summary of what was discussed. |
| record.followUpOn | string | Date a follow-up is due. |
| record.subjectPersonId | string | Whose visit: a People person id (resolve with people_resolvePerson). Omit for the account owner's own. |
| record.reminderMinutesBefore | integer | Reminder lead time in minutes (default 1440 = 1 day). |
| record.tags | list of string | |
| record.calendarVisibility | one of private, details, hidden | What this visit may show on the calendar: 'private' (default, a time block labelled 'Appointment', no title or provider), 'details' (the real title and provider), or 'hidden' (no calendar entry). Only raise it to 'details' when the user asks for it. |
Example input
{
"record": {
"title": "Annual physical",
"providerName": "Dr. Rivera",
"type": "checkup",
"startAt": "2026-10-08T09:30:00-05:00",
"durationMinutes": 30
}
}appointments_deleteAppointmentDeletethrough vritto_deleteDelete (archive) one appointment. Only for explicit removals, to record a cancellation, upsert with status 'cancelled' instead. Resolve the ID with appointments_queryAppointmentDashboard first.
Note: To record a cancellation, update the appointment with status 'cancelled' instead.
| Field | Type | Description |
|---|---|---|
| appointmentId* | string | Appointment ID from a prior appointments_queryAppointmentDashboard result, never invented. |
Medical ProviderproviderHealth, off until allowed
A doctor, dentist, specialist, or clinic.
appointments_upsertProviderCreate or Updatethrough vritto_create or vritto_updateCreate or update one provider (doctor, dentist, specialist, or clinic). Omit record.id to create (name required); include a real record.id to update, sent fields merge.
| Field | Type | Description |
|---|---|---|
| record* | object | Provider fields; name required when creating. |
| record.id | string | Existing provider ID to update. Omit to create a new provider. |
| record.name | string | Provider name, e.g. 'Dr. Chen'. Required when creating. |
| record.specialty | string | e.g. 'Cardiology', 'Dentist'. |
| record.organization | string | Practice or clinic name. |
| record.phone | string | |
| record.email | string | |
| record.website | string | |
| record.address | string | |
| record.notes | string | |
| record.tags | list of string | |
| record.favorite | boolean | Mark as a favorite/primary provider. |
Example input
{
"record": {
"name": "Dr. Maya Rivera",
"specialty": "Primary care",
"organization": "Lakeside Clinic",
"phone": "312-555-0142"
}
}appointments_deleteProviderDeletethrough vritto_deleteDelete (archive) one provider. Only for explicit removals. Resolve the ID with appointments_queryAppointmentDashboard first.
| Field | Type | Description |
|---|---|---|
| providerId* | string | Provider ID from a prior appointments_queryAppointmentDashboard result, never invented. |