{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alto-vebra/json-schema/alto-vebra-general-appointment-request-schema.json",
  "title": "GeneralAppointmentRequest",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alto-vebra-appointments-api-openapi.yml#/components/schemas/GeneralAppointmentRequest",
  "required": [
    "endDate",
    "negotiatorIds",
    "startDate",
    "subTypeId"
  ],
  "type": "object",
  "properties": {
    "negotiatorIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Required: The unique identifer of the negotiator(s)"
    },
    "branchId": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Optional: The branch in which to record the appointment diary event.\nWhen omitted, defaults to the first negotiator's default branch.",
      "format": "int32"
    },
    "contactIds": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Optional: The unique identifer of the applicant(s)"
    },
    "propertyIds": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "integer",
        "format": "int32"
      },
      "description": "Optional: The unique identifer of the property(s)"
    },
    "urgent": {
      "type": "boolean",
      "description": "Optional: Set the Urgent flag for the appointment being created. If ommitted this will default to false."
    },
    "startDate": {
      "type": "string",
      "description": "Required: The start date and time in ISO 8601 format of the appointment being created.\nInterpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset\nis converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.",
      "format": "date-time"
    },
    "endDate": {
      "type": "string",
      "description": "Required: The end date and time in ISO 8601 format of the appointment being created.\nInterpreted as UK local diary time: a value with a UTC marker (a trailing `Z`) or an explicit offset\nis converted to UK local time (Europe/London); a plain local value with no offset is taken as-is.",
      "format": "date-time"
    },
    "subTypeId": {
      "type": "integer",
      "description": "Required: The sub type of the appointment being created.",
      "format": "int32"
    },
    "location": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional: The location where the appointment being created will be held."
    },
    "notes": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional: Additional notes to accompany the appointment being created."
    }
  },
  "additionalProperties": false
}