# Create appointment Creates a new Appointment record. Appointment resource in the Animal Health Data Store Endpoint: POST /site/{siteId}/ahds/v1/appointment Version: 1.0 Security: bearer ## Path parameters: - `siteId` (number, required) Site identifier ## Request fields (application/json): - `animalId` (string, required) Identifier of the animal associated with the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `appointmentId` (string, required) Canonical identifier for the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `appointmentStatus` (object, required) Status of the appointment (e.g., booked, arrived, completed, cancelled). - `appointmentStatus.code` (string, required) Code value - `appointmentStatus.system` (string, required) Code system URI - `appointmentStatus.display` (string) Human-readable display - `appointmentType` (object, required) Type of appointment (e.g., consultation, surgery). - `cancellationReason` (object) Structured reason for appointment cancellation, if cancelled. - `cancellationReasonText` (string) Free-text explanation of the cancellation reason. - `consultId` (string,null) Identifier of the consult/visit record linked to this appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `contactId` (string,null) Identifier of the primary contact (e.g., owner) for the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `description` (string) Free-text description or notes for the appointment. - `durationMinutes` (number, required) Duration of the appointment in whole minutes. - `extensions` (object) Vendor- or practice-specific extension fields. - `isActive` (boolean, required) Whether the appointment is currently active (not deleted/voided). - `primaryResourceId` (string, required) Identifier of the primary resource responsible for the appointment (e.g., veterinarian). Example: "123e4567-e89b-12d3-a456-426614174000" - `resourceIds` (array, required) Identifiers of all resources allocated to this appointment (including the primary resource). - `startAt` (string, required) Scheduled start date and time of the appointment (with timezone). Example: "2025-01-01T00:00:00.000Z" ## Response 201 fields (application/json): - `animalId` (string, required) Identifier of the animal associated with the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `appointmentId` (string, required) Canonical identifier for the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `appointmentStatus` (object, required) Status of the appointment (e.g., booked, arrived, completed, cancelled). - `appointmentStatus.code` (string, required) Code value - `appointmentStatus.system` (string, required) Code system URI - `appointmentStatus.display` (string) Human-readable display - `appointmentType` (object, required) Type of appointment (e.g., consultation, surgery). - `cancellationReason` (object, required) Structured reason for appointment cancellation, if cancelled. - `cancellationReasonText` (string, required) Free-text explanation of the cancellation reason. - `consultId` (string,null, required) Identifier of the consult/visit record linked to this appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `contactId` (string,null, required) Identifier of the primary contact (e.g., owner) for the appointment. Example: "123e4567-e89b-12d3-a456-426614174000" - `createdAt` (string, required) Timestamp when the appointment was created. Example: "2025-01-01T00:00:00.000Z" - `description` (string, required) Free-text description or notes for the appointment. - `durationMinutes` (number, required) Duration of the appointment in whole minutes. - `extensions` (object, required) Vendor- or practice-specific extension fields. - `isActive` (boolean, required) Whether the appointment is currently active (not deleted/voided). - `primaryResourceId` (string, required) Identifier of the primary resource responsible for the appointment (e.g., veterinarian). Example: "123e4567-e89b-12d3-a456-426614174000" - `resourceIds` (array, required) Identifiers of all resources allocated to this appointment (including the primary resource). - `startAt` (string, required) Scheduled start date and time of the appointment (with timezone). Example: "2025-01-01T00:00:00.000Z" - `updatedAt` (string, required) Timestamp when the appointment was last modified. Example: "2025-01-01T00:00:00.000Z" ## Response 400 fields ## Response 401 fields ## Response 409 fields