{
  "openapi": "3.1.1",
  "info": {
    "title": "Appointments API examples",
    "version": "2026-10-11",
    "description": "Selected read-only endpoints from Developing Today Appointments. This is a curated example contract, not the full application specification. Response examples are demonstration data. No credentials are needed for these public GET endpoints."
  },
  "servers": [
    {
      "url": "https://appointments.developingtoday.net"
    }
  ],
  "paths": {
    "/api/Organization/{OrganizationId}/Location/{LocationId}/Appointment": {
      "get": {
        "operationId": "getPublishedBookingData",
        "summary": "Read a published location schedule",
        "description": "Retrieve published business hours, recurring holidays, services, locations and existing availability. Our website uses BusinessHours, Holidays and the location Timezone to calculate office availability.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "LocationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Published booking data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "businessHours": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "dayOfWeek": {
                            "type": "integer"
                          },
                          "startTime": {
                            "type": "string"
                          },
                          "endTime": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "holidays": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "holidayName": {
                            "type": "string"
                          },
                          "ruleValue": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "locations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "timezone": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "existingAppointments": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                },
                "example": {
                  "name": "Example public office",
                  "businessHours": [
                    {
                      "dayOfWeek": 1,
                      "startTime": "08:00:00",
                      "endTime": "17:00:00"
                    }
                  ],
                  "holidays": [
                    {
                      "holidayName": "Example annual closure",
                      "ruleValue": "FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=1"
                    }
                  ],
                  "services": [],
                  "locations": [
                    {
                      "timezone": "America/Chicago"
                    }
                  ],
                  "existingAppointments": []
                }
              }
            }
          },
          "404": {
            "description": "Organization not found"
          }
        },
        "tags": ["Public schedule"]
      }
    },
    "/api/service-mode": {
      "get": {
        "operationId": "getServiceMode",
        "summary": "Check whether booking is read-only",
        "description": "Clients can explain a temporary read-only state before someone completes a booking form.",
        "responses": {
          "200": {
            "description": "Current service mode",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["readOnly"],
                  "properties": {
                    "readOnly": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "readOnly": false
                }
              }
            }
          }
        },
        "tags": ["Public schedule"]
      }
    }
  },
  "tags": [
    {
      "name": "Public schedule",
      "description": "Selected API operations"
    }
  ]
}
