{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aurinko/json-schema/aurinko-booking-times-out-dto-schema.json",
  "title": "BookingTimesOutDto",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aurinko-availability-api-openapi.yml#/components/schemas/BookingTimesOutDto",
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "description": "List of available meeting slots.",
      "items": {
        "$ref": "#/$defs/BookingMeetingInterval"
      }
    },
    "startTime": {
      "type": "string",
      "format": "date-time",
      "description": "Start time of available meeting slots."
    },
    "endTime": {
      "type": "string",
      "format": "date-time",
      "description": "End time of available meeting slots."
    },
    "timeAvailableFor": {
      "type": "string",
      "description": "Time period (in ISO-8601 format) the profile is covering. For example, P3M (3 months), P4W (4 weeks), P5D (5 days)."
    },
    "durationMinutes": {
      "type": "integer",
      "description": "Length of meeting in minutes"
    },
    "availabilityStep": {
      "type": "integer",
      "description": "Determines the interval at which new meeting slots are made available throughout the working hours. Allowed values are 5, 10, 15, 20, 30, 60."
    },
    "subject": {
      "type": "string",
      "description": "Subject for events booked using this profile."
    },
    "primaryColor": {
      "type": "string",
      "description": "Primary Color, taken from the application settings."
    },
    "secondaryColor": {
      "type": "string",
      "description": "The second Color, taken from the application settings."
    },
    "additionalFields": {
      "type": "array",
      "description": "List of substitution variables like {{name}}, {{openMeetingUrl}},...",
      "items": {
        "$ref": "#/$defs/AdditionalField"
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Next page token"
    },
    "nextFromDate": {
      "type": "string",
      "format": "date",
      "description": "Next fromDate to iterate a big time intervals"
    }
  },
  "$defs": {
    "AdditionalField": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Substitution variable name"
        },
        "type": {
          "type": "string",
          "description": "Value type"
        },
        "default": {
          "type": "string",
          "description": "Default value"
        }
      }
    },
    "BookingMeetingInterval": {
      "type": "object",
      "properties": {
        "start": {
          "type": "string",
          "format": "date-time"
        },
        "end": {
          "type": "string",
          "format": "date-time"
        },
        "groupXids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "accountIds": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      }
    }
  }
}