Walgreens · Schema

Walgreens Vaccine Appointment

Schema for a Walgreens vaccine appointment engagement

PharmacyHealthcareRetailPrescriptionsVaccinesFortune 100

Properties

Name Type Description
engagementId string Unique identifier for the appointment engagement
locationId string Walgreens store location identifier
appointmentDate string Appointment date/time in ISO 8601 format with timezone offset
slot string Selected time slot
channel string Client channel used for booking
engagementType string Engagement type
vaccines array
patient object
status string Appointment booking status
View JSON Schema on GitHub

JSON Schema

walgreens-vaccine-appointment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/walgreens/main/json-schema/walgreens-vaccine-appointment-schema.json",
  "title": "Walgreens Vaccine Appointment",
  "description": "Schema for a Walgreens vaccine appointment engagement",
  "type": "object",
  "properties": {
    "engagementId": {
      "type": "string",
      "description": "Unique identifier for the appointment engagement"
    },
    "locationId": {
      "type": "string",
      "description": "Walgreens store location identifier"
    },
    "appointmentDate": {
      "type": "string",
      "description": "Appointment date/time in ISO 8601 format with timezone offset",
      "format": "date-time"
    },
    "slot": {
      "type": "string",
      "description": "Selected time slot",
      "pattern": "^[0-9]{1,2}:[0-9]{2} (am|pm)$"
    },
    "channel": {
      "type": "string",
      "enum": ["Web", "Mobile"],
      "description": "Client channel used for booking"
    },
    "engagementType": {
      "type": "string",
      "enum": ["Guest"],
      "description": "Engagement type"
    },
    "vaccines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Vaccine code identifier"
          },
          "productId": {
            "type": "string",
            "description": "Vaccine product identifier"
          },
          "vaccineName": {
            "type": "string",
            "description": "Human-readable vaccine name"
          },
          "rxRequired": {
            "type": "boolean",
            "description": "Whether a prescription is required"
          }
        },
        "required": ["code", "productId", "rxRequired"]
      },
      "minItems": 1,
      "maxItems": 4
    },
    "patient": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "Patient first name"
        },
        "middleName": {
          "type": "string",
          "description": "Patient middle name"
        },
        "lastName": {
          "type": "string",
          "description": "Patient last name"
        },
        "dob": {
          "type": "string",
          "format": "date",
          "description": "Patient date of birth"
        },
        "gender": {
          "type": "string",
          "enum": ["male", "female", "other", "unknown"],
          "description": "Patient gender"
        },
        "contact": {
          "type": "object",
          "properties": {
            "phones": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {"type": "string"},
                  "number": {"type": "string"},
                  "smsConsent": {
                    "type": "string",
                    "enum": ["Agree", "Disagree"]
                  }
                }
              }
            },
            "emails": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {"type": "string"},
                  "address": {
                    "type": "string",
                    "format": "email"
                  }
                }
              }
            }
          }
        }
      },
      "required": ["firstName", "lastName", "dob", "gender"]
    },
    "status": {
      "type": "string",
      "enum": ["held", "confirmed", "cancelled"],
      "description": "Appointment booking status"
    }
  },
  "required": ["locationId", "appointmentDate", "slot", "vaccines"]
}