Stay organized with collections
Save and categorize content based on your preferences.
Definitions
AvailabilityFeed Definition
message AvailabilityFeed {
repeated Schedule data = 1;
}
Schedule Definition
// Info about a schedule, which is a container for available slots that can be
// booked using an appointment. A schedule ID should be unique and stable for a
// given practitioner, facility, service type, and appointment type.
// (practitioner and appointment type are optional to identify a schedule) A
// AvailabilityFeed should be a list of this message.
message Schedule {
// An opaque string from the partner to identify a practitioner. (required
// only if booking by specific practitioner)
string practitioner_id = 1;
// An opaque string from the partner to identify a facility. (required)
string facility_id = 2;
// An opaque string to identify an appointment type. (required)
string appointment_type_id = 4;
// Ordering priority of appointment_types to display in Google Search/Map UI
// for a practitioner/facility. Appointment_types with smaller priority number
// will be displayed before the one with larger priority number. In the
// compact UI block (E.g. only three appointment_types can be displayed),
// appointment_types with lower priority might be hidden. The priority number
// should be unique among the (practitioner_id, facility_id,
// appointment_type_id) combination. And, they do not need to be a contiguous
// integer sequence. If priority is not provided or not unique among a
// (practitioner_id, facility_id, appointment_type_id) combination,
// appointment_types will be displayed in the same order as the list of
// schedules. (optional)
int32 priority = 5;
// All Availability Slots included in this schedule (required)
repeated AvailableSlots available_slots = 6;
// An action URL representing the deep link to this schedule. It will redirect
// users to a booking webpage with the practitioner, facility, service_type,
// and appointment_type preselected. (optional)
ActionLink per_schedule_action_link = 7;
// ...
}
ActionLink Definition
// An action URL with associated language, list of countries restricted to, and
// optional platform that indicates which platform this action should be
// performed on.
message ActionLink {
// The entry point URL for this action link. (required)
string url = 1;
// The BCP-47 language tag identifying the language in which the content
// from this URI is available. (optional)
string language = 2;
// An unordered list of ISO 3166-1 alpha-2 country codes. Leave empty for
// unrestricted visibility. (optional)
repeated string restricted_country = 3;
// ...
}
AvailableSlots Definition
// This proto can be used to show a slot for a single visit or number of
// available slot on a specific date. A slot for a single visit (30 minutes):
// {start_sec: xx, duration_sec: 1800, spots_total: 1, spots_open: 1}
// number of available slot on a specific date:
// {start_sec: xx, duration_sec: 86400, spots_total: 7, spots_open: 10}
message AvailableSlots {
// Start time of this availability, using epoch time in seconds in UTC.
// (required)
int64 start_sec = 1;
// Duration of the service in seconds, e.g. 30 minutes would be 1800.
// (required)
int64 duration_sec = 2;
// Number of total spots and open spots of this availability. Typically, 1.
// (both required)
int64 spots_total = 3;
int64 spots_open = 4;
// Availability scheduling rules. (optional)
SchedulingRuleOverrides scheduling_rule_overrides = 7;
// ...
}
SchedulingRuleOverrides Definition
// Availability level scheduling rules.
message SchedulingRuleOverrides {
// The last time (in seconds) that this slot is able to be booked. This
// timestamp must be before the start_sec of the slot. (optional)
int64 last_bookable_sec = 1;
// ...
}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-09 UTC."],[[["The Availability Feed uses the `Schedule` message to define available booking slots for practitioners and facilities."],["Each `Schedule` message includes details such as practitioner ID, facility ID, appointment type ID, available slots, and an optional action link for booking."],["`AvailableSlots` within a `Schedule` specify the start time, duration, total spots, and open spots for appointments, with optional scheduling rule overrides."],["While the feed specification is defined in protobuffer format, uploading feeds in JSON format is recommended."],["You can refer to the provided JSON sample feeds for examples of how to structure your availability data."]]],[]]