# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Elation Health Appointments API version: 1.0.0 extends: openapi/elation-health-appointments-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 23 - target: $.paths['/appointments/{id}/'].get update: x-apievangelist-phrasing: intent: Look up a calendar event (legacy endpoint) effect: read questions: - How do I pull up one scheduled event by its id on the legacy appointments path? - What does the original unversioned appointments endpoint return for a single event? instructions: - text: Fetch legacy calendar event {id}. slots: id: path.id - text: Show me event {id} from the old appointments endpoint. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/'].put update: x-apievangelist-phrasing: intent: Replace a calendar event (legacy PUT) effect: write questions: - Can I overwrite an entire event record through the legacy appointments PUT? - Which legacy call does a full replacement of a scheduled event? instructions: - text: Replace event {id} in full via the legacy PUT endpoint. slots: id: path.id - text: Overwrite every field of legacy event {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/'].delete update: x-apievangelist-phrasing: intent: Delete a calendar event (legacy endpoint) effect: destructive questions: - How do I remove a scheduled event using the legacy appointments API? - Can I take an event off the calendar with the old unversioned endpoint? instructions: - text: Delete legacy event {id}. slots: id: path.id - text: Remove event {id} from the calendar using the original endpoint. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/'].patch update: x-apievangelist-phrasing: intent: Patch a calendar event (legacy PATCH) effect: write questions: - Can I change just part of an event with the legacy PATCH call? - What legacy endpoint edits a few fields on an existing event? instructions: - text: Patch a few fields on legacy event {id}. slots: id: path.id - text: Apply a partial edit to event {id} through the old PATCH route. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/'].get update: x-apievangelist-phrasing: intent: Find calendar events by slot type (legacy) effect: read questions: - How can I search the calendar for events of one time slot type? - Can I narrow the legacy event search to one physician and a date window? instructions: - text: Find {time_slot_type} events for physician {physician} between {from_date} and {to_date}. slots: time_slot_type: query.time_slot_type physician: query.physician from_date: query.from_date to_date: query.to_date - text: Search legacy calendar events with slot type {time_slot_type}. slots: time_slot_type: query.time_slot_type method: generated generated: '2026-09-26' - target: $.paths['/appointments/'].post update: x-apievangelist-phrasing: intent: Book a calendar event (legacy endpoint) effect: write questions: - How do I schedule a patient event with a physician through the legacy appointments API? - Which fields must I send to create an event on the old unversioned endpoint? instructions: - text: Schedule a legacy event for patient {patient} with physician {physician} at practice {practice} on {scheduled_date} for {reason}, slot type {time_slot_type}. slots: patient: requestBody.patient physician: requestBody.physician practice: requestBody.practice scheduled_date: requestBody.scheduled_date reason: requestBody.reason time_slot_type: requestBody.time_slot_type - text: Create an old-style {time_slot_type} event on {scheduled_date} for patient {patient}. slots: time_slot_type: requestBody.time_slot_type scheduled_date: requestBody.scheduled_date patient: requestBody.patient method: generated generated: '2026-09-26' - target: $.paths['/appointments/rooms'].get update: x-apievangelist-phrasing: intent: List appointment rooms for a practice effect: read questions: - Which exam rooms can appointments be booked into at my practice? - Can I see the rooms configured for scheduling? instructions: - text: List appointment rooms for practice {practice}. slots: practice: query.practice - text: Show every bookable appointment room. method: generated generated: '2026-09-26' - target: $.paths['/appointments/id/'].put update: x-apievangelist-phrasing: intent: Replace an appointment slot effect: write questions: - How do I fully replace an appointment slot record? - Which call overwrites a whole appointment slot at once? instructions: - text: Replace appointment slot {id}. slots: id: path.id - text: Overwrite slot {id} with new slot details. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/id/'].patch update: x-apievangelist-phrasing: intent: Assign a patient to an appointment slot effect: write questions: - Can I put a patient into an open appointment slot? - What does patching an appointment slot require? instructions: - text: Fill the appointment slot with patient {patient}. slots: patient: requestBody.patient - text: Patch the open slot so it holds patient {patient}. slots: patient: requestBody.patient method: generated generated: '2026-09-26' - target: $.paths['/appointments/slots/'].options update: x-apievangelist-phrasing: intent: Create an appointment slot effect: write questions: - How do I open a new appointment slot on the schedule? - Can I add bookable slots through the slots endpoint? instructions: - text: Create a new appointment slot. - text: Add an open slot to the schedule. method: generated generated: '2026-09-26' - target: $.paths['/appointments/ [WIP]'].get update: x-apievangelist-phrasing: intent: Find calendar events (WIP draft endpoint) effect: read questions: - Is there a work-in-progress version of the event search? - What does the WIP find-events endpoint filter on? instructions: - text: Run the WIP event search for slot type {time_slot_type}. slots: time_slot_type: query.time_slot_type - text: Use the draft WIP finder to list {time_slot_type} events from {from_date}. slots: time_slot_type: query.time_slot_type from_date: query.from_date method: generated generated: '2026-09-26' - target: $.paths['/appointments/ [WIP]'].post update: x-apievangelist-phrasing: intent: Book a calendar event (WIP draft endpoint) effect: write questions: - Is there a WIP version of event creation I can test against? - What does the work-in-progress create-event call need? instructions: - text: Create a WIP event for patient {patient} with physician {physician} on {scheduled_date}, slot type {time_slot_type}. slots: patient: requestBody.patient physician: requestBody.physician scheduled_date: requestBody.scheduled_date time_slot_type: requestBody.time_slot_type - text: Use the draft WIP endpoint to book {reason} at practice {practice}. slots: reason: requestBody.reason practice: requestBody.practice method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/ [WIP]'].put update: x-apievangelist-phrasing: intent: Replace an event (WIP draft PUT) effect: write questions: - Can the WIP endpoint overwrite a whole event? - Which WIP call replaces every field of an event? instructions: - text: Replace WIP event {id} with date {scheduled_date} and reason {reason}. slots: id: path.id scheduled_date: requestBody.scheduled_date reason: requestBody.reason - text: Fully rewrite event {id} through the WIP PUT. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/ [WIP]'].patch update: x-apievangelist-phrasing: intent: Patch an event (WIP draft PATCH) effect: write questions: - Can I move just the date of an event using the WIP PATCH? - Does the WIP event PATCH accept a single changed field? instructions: - text: Reschedule WIP event {id} to {scheduled_date}. slots: id: path.id scheduled_date: requestBody.scheduled_date - text: Change the duration of event {id} to {duration} with the WIP PATCH. slots: id: path.id duration: requestBody.duration method: generated generated: '2026-09-26' - target: $.paths['/appointments/[WIP]'].post update: x-apievangelist-phrasing: intent: Create an appointment with status (WIP) effect: write questions: - Can I set an appointment's status and billing details when creating it in the WIP API? - Which WIP endpoint creates an appointment with metadata attached? instructions: - text: Create a WIP appointment for patient {patient} with physician {physician} on {scheduled_date} with status {status}. slots: patient: requestBody.patient physician: requestBody.physician scheduled_date: requestBody.scheduled_date status: requestBody.status - text: Draft-create an appointment at practice {practice} for {reason} with metadata {metadata}. slots: practice: requestBody.practice reason: requestBody.reason metadata: requestBody.metadata method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/ [WIP]'].put update: x-apievangelist-phrasing: intent: Replace an appointment (WIP PUT) effect: write questions: - How do I replace an appointment including its billing details via the WIP API? - Is there a WIP full-replace for appointments that includes status? instructions: - text: Replace WIP appointment {id} with status {status} and date {scheduled_date}. slots: id: path.id status: requestBody.status scheduled_date: requestBody.scheduled_date - text: Rewrite appointment {id} including billing details {billing_details} via the WIP PUT. slots: id: path.id billing_details: requestBody.billing_details method: generated generated: '2026-09-26' - target: $.paths['/appointments/{id}/ [WIP]'].patch update: x-apievangelist-phrasing: intent: Patch an appointment's status (WIP) effect: write questions: - Can I change only an appointment's status with the WIP PATCH? - What WIP call edits an appointment's metadata without resending the rest? instructions: - text: Set the status of WIP appointment {id} to {status}. slots: id: path.id status: requestBody.status - text: Patch metadata {metadata} onto appointment {id} through the WIP route. slots: id: path.id metadata: requestBody.metadata method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/'].get update: x-apievangelist-phrasing: intent: List appointments with filters effect: read questions: - How do I list a patient's appointments in Elation? - Can I filter appointments by physician, practice and a date range? - Is the appointment list paginated with limit and offset? instructions: - text: List appointments for patient {patient} from {from_date} to {to_date}. slots: patient: query.patient from_date: query.from_date to_date: query.to_date - text: Show physician {physician}'s appointments ordered by {order_by}. slots: physician: query.physician order_by: query.order_by method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/'].post update: x-apievangelist-phrasing: intent: Schedule a new appointment effect: write questions: - What do I need to book a patient appointment through API v2? - Can I create a telehealth appointment with a specific appointment type? instructions: - text: Book patient {patient} with physician {physician} at practice {practice} on {scheduled_date}. slots: patient: requestBody.patient physician: requestBody.physician practice: requestBody.practice scheduled_date: requestBody.scheduled_date - text: Create a telehealth appointment of type {appointment_type_id} for patient {patient} on {scheduled_date}. slots: appointment_type_id: requestBody.appointment_type_id patient: requestBody.patient scheduled_date: requestBody.scheduled_date method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/{id}/'].get update: x-apievangelist-phrasing: intent: Get one appointment's details effect: read questions: - How do I get the full details of one appointment? - What does a single appointment record include in v2? instructions: - text: Get appointment {id}. slots: id: path.id - text: Retrieve the v2 appointment record {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/{id}/'].put update: x-apievangelist-phrasing: intent: Replace an appointment record effect: write questions: - Can I replace an entire appointment record in v2? - Which v2 call overwrites all appointment fields at once? instructions: - text: Replace appointment {id} with a new date {scheduled_date} for patient {patient}. slots: id: path.id scheduled_date: requestBody.scheduled_date patient: requestBody.patient - text: Overwrite v2 appointment {id} in full. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/{id}/'].delete update: x-apievangelist-phrasing: intent: Delete an appointment effect: destructive questions: - How do I delete an appointment in v2? - Can a booked appointment be removed through the API? instructions: - text: Delete appointment {id}. slots: id: path.id - text: Remove v2 appointment {id} from the schedule. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/2.0/appointments/{id}/'].patch update: x-apievangelist-phrasing: intent: Reschedule or edit part of an appointment effect: write questions: - Can I reschedule an appointment by changing just its date? - Where do I update only an appointment's status in v2? instructions: - text: Move appointment {id} to {scheduled_date}. slots: id: path.id scheduled_date: requestBody.scheduled_date - text: Set v2 appointment {id} status to {status}. slots: id: path.id status: requestBody.status method: generated generated: '2026-09-26'