// The definition of a service provided by a merchant.messageService{// An opaque string from an aggregator partner which uniquely identifies a// merchant. (required)stringmerchant_id=1;// An opaque string from an aggregator partner which uniquely identifies the// service. (required)stringservice_id=2;// The name of the service. Deprecated. Please use localized_service_name.stringname=3[deprecated=true];// The name of the service, e.g. "Men's haircut". Possibly in several locales.// (required)Textlocalized_service_name=26;// The description of the service.// Deprecated. Please use localized_description.stringdescription=4[deprecated=true];// The description of the product. Limited formatting options are allowed in// the HTML format. Supported tags:// * h1-h5// * ul, ol, li// * strong, italic, em// * p, br// Other tags are not supported and will be removed. CSS, tables, style// property, `a` links are not supported. Images are not allowed, use the// related_media field instead.// Important notes:// * Try not to use other tags except for the supported ones mentioned// above, because the contents within unsupported tags will be stripped,// and may lead to an undesirable user experience.// * Try avoid deep nested structures like more than 3 different heading// levels or nested lists. Keeping the structure flat, simple, and// straightforward, helps to create a better user experience.// * Do not duplicate info from the product_features field below in the// description as both would normally be shown side by side.// Recommended to not exceed length of 10000 in any language. Max length:// 16000.// Recommended.// (optional)Textlocalized_description=27;// The price of the service. (optional, overridden when payment options or// ticket types present)Priceprice=5;// Describes how the price is interpreted and displayed to the user. Can be// used by any vertical except Dining and Things To Do to configure display of// the service price. (optional)PriceInterpretationprice_interpretation=23;// Rules to book/cancel an appointment. (optional)SchedulingRulesrules=6;// Enum to indicate the prepayment type.enumPrepaymentType{// By default we will assume that the prepayment is NOT_SUPPORTED.PREPAYMENT_TYPE_UNSPECIFIED=0;// The user has to pay this service at the booking time.REQUIRED=1;// The user can choose to pre-pay this service at the booking time or later,// but it is not required in order to book.OPTIONAL=2;// The prepayment is not supported for this service.NOT_SUPPORTED=3;}// Whether a prepayment is required, optional or not supported. (optional)PrepaymentTypeprepayment_type=8;// Specific information around when prepayment is completed.messagePrepaymentTerms{// Enum to specify when the charge will occur relative to the purchase// time.enumChargeTiming{CHARGE_TIMING_UNSPECIFIED=0;CHARGE_NOW=1;CHARGE_LATER=2;}ChargeTimingcharge_timing=1;}PrepaymentTermsprepayment_terms=34;// The service's tax rate. If present this field overrides any tax_rate set at// the merchant level. An empty message (i.e. tax_rate { }) will reset the// applied tax rate to zero. (optional)TaxRatetax_rate=9;// A list of ids referencing the payment options which can be used to pay// for this service. The actual payment options are defined at the Merchant// level, and can also be shared among multiple Merchants. (optional)repeatedstringpayment_option_id=10;// Defines how a deposit may be charged to the user. Can be overridden at the// availability level. (optional)Depositdeposit=11;// Defines a no show fee that may be charged to the user. Can be overridden// at the availability level. (optional)NoShowFeeno_show_fee=12;// Indicates whether the user must provide a credit card in order to book this// service.// This value can be overridden at the availability level. (optional)RequireCreditCardrequire_credit_card=13;// Additional information which needs to be added if the service requires the// user to pay directly to the merchant. IMPORTANT NOTE: RwG would not be// involved in this transaction. (Optional. Required if virtual_session is// defined and prepayment_type is NOT set to REQUIRED).DirectMerchantPaymentdirect_merchant_payment=36;// An action link related to this service. If action link exists, type (see// below) must be set in the Service.repeatedActionLinkaction_link=14;enumServiceType{SERVICE_TYPE_UNSPECIFIED=0;// Service that provides dining reservation.SERVICE_TYPE_DINING_RESERVATION=1;// Service that provides food ordering in general, could be either takeout// or delivery or both.SERVICE_TYPE_FOOD_ORDERING=2;// Service that only provides food delivery.SERVICE_TYPE_FOOD_DELIVERY=6;// Service that only provides food takeout.SERVICE_TYPE_FOOD_TAKEOUT=7;// Services that provide event based ticketing (e.g. concerts, sporting// events, shows). Do not use for Reserve with Google integrations.SERVICE_TYPE_EVENT_TICKET=3;SERVICE_TYPE_TRIP_TOUR=4;// Service that provides appointments or classes. Recommended for (1) health// and fitness, (2) spa and beauty, and (3) financial consults and// evaluations services. Please see the supported service types:// https://developers.google.com/maps-booking/guides/end-to-end-integration/overviewSERVICE_TYPE_APPOINTMENT=5;// Service that provides appointment for an online class or session which// will be fully virtual. Must be set if enabling virtual service bookings.SERVICE_TYPE_ONLINE_APPOINTMENT=8;// Service that allows users to shop from the given merchant. It could// either be delivery or pickup.SERVICE_TYPE_SHOPPING=9;}// The predefined type of this service. (optional)ServiceTypetype=15;// Types of tickets that can be booked/purchased for this service. Only// supported in order based booking API, see// https://developers.google.com/maps-booking/guides/partner-implementing-booking-server-1a// (optional)repeatedTicketTypeticket_type=16;// Photos related to this service. Google will crawl these media to ensure// that they are displayed correctly to end-users. (optional)repeatedRelatedMediarelated_media=17;// Service attribute values that apply to this service (optional).// Each Service may have zero or more values for each service attribute// defined in the corresponding Merchant.repeatedServiceAttributeValueIdservice_attribute_value_id=18;// Rules related to joining the waitlist. Should be populated if the service// and merchant support waitlist functionality. Should not be populated// otherwise.WaitlistRuleswaitlist_rules=19;// Additional information unique to the event ticketing vertical. (optional)TicketingVerticalSpecificDataticketing_vertical_specific_data=22;// User rating for this service as an aggregate metric over all reviews.Ratingrating=30;// Additional information unique to home service vertical. (optional)HomeServiceDatahome_service_data=31;// Information about virtual session. (Optional. Required if enabling// virtual services)VirtualSessionvirtual_session=35;// Ranking hint for this service. Optional.ServiceRankingHintranking_hint=37;// A template specifying how Google should generate URLs to external site.// Used for Dining Reservations Payment Redirect Partners only.UriTemplateuri_template=38;}
Price Definition
// The price of a service or a fee.messagePrice{// The price in micro-units of the currency.// For example: 1.95 USD is 1950000 in micro-units.// If your price contains fractions of the smallest currency unit, then it// will be rounded using nearest even rounding (e.g. 2.5 cents rounded// to 2 cents, 3.5 cents rounded to 4 cents, 0.5 cents rounded to 0 cents,// 2.51 cents rounded to 3 cents). (required)int64price_micros=1;// The currency of the price that is defined in ISO 4217. (required)stringcurrency_code=2;// An optional and opaque string that identifies the pricing option that is// associated with the extended price. (optional)stringpricing_option_tag=3;}
PriceInterpretation Definition
// Describes how a Price should be interpreted and displayed to the user.enumPriceInterpretation{// Price interpretation unspecified, defaults to EXACT_AMOUNT.PRICE_INTERPRETATION_UNSPECIFIED=0;// When the price should be interpreted as a specific value.//// Examples:// $20 for a yoga class; $15 for a child haircutEXACT_AMOUNT=1;// When the price of a service is variable but a minimum price is known and// displayed to consumers. Consumers may make choices which increase the// price.//// Note that any service that uses this PriceInterpretation must use// PrepaymentType NOT_SUPPORTED.//// Examples:// $30 for dog grooming, but additional consumer choices may increase the// priceSTARTS_AT=2;}
Text Definition
// A possibly-localized text payload. Some Text fields may contain marked-up// content.messageText{// Required. Text value in an unknown locale, which will be displayed if// `localized_value` for the user locale is empty or missing. The locale for// this value may depend on the partner or service provider, and it should not// be assumed to be any specific language.stringvalue=1;// Per-locale text values. Required.repeatedLocalizedStringlocalized_value=2;}
LocalizedString Definition
// Instance of a string in one locale.messageLocalizedString{// IETF BCP 47 language code, such as "en", "mas", "zh-Hant", "de-CH-1901".// See http://www.w3.org/International/articles/language-tags/.stringlocale=1;// Message in the locale above (UTF-8).stringvalue=2;}
SchedulingRules Definition
// The scheduling rules for a service.messageSchedulingRules{// The duration (in seconds) from when the last booking can be made to// when the availability slot starts or ends.//// If "min_advance_booking" is set, the last bookable time is calculated as// (<slot start time> - "min_advance_booking").// If "min_booking_buffer_before_end_time" is set, the last bookable time is// calculated as (<slot end time> - "min_booking_buffer_before_end_time").// Note that the value of "min_booking_buffer_before_end_time" must be// positive if set.// If both are unset, the slot is bookable until the slot begin time. If both// fields are set, only one value will be picked while the other value// ignored--we cannot reliably predict which value is chosen.//// Examples:// * A haircut that needs to be booked at least 1 hour before the start time.// 'scheduling_rules{ min_advance_booking: 3600 ...}`//// * A museum where the last ticket can be purchased 30 mins before closing:// 'scheduling_rules{ min_booking_buffer_before_end_time: 1800 ...}'//// * A movie ticket that needs to be purchased before the start time.// 'scheduling_rules{ ...}' (leave this field empty)// (optional)oneofmin_booking_buffer{// The duration (in seconds) from when the last booking can be made to// when the availability slot starts.int64min_advance_booking=1;// The duration (in seconds) from when the last booking can be made to// when the availability slot ends. If this field is set, the// "admission_policy" field must be set to TIME_FLEXIBLE to indicate that// users can use the purchased tickets after slots start.int64min_booking_buffer_before_end_time=6;}// The minimum advance notice in seconds required to cancel a booked// appointment online. (optional)int64min_advance_online_canceling=2;// The fee for canceling within the minimum advance notice period.Pricelate_cancellation_fee=3[deprecated=true];// The fee for no-show without canceling.Pricenoshow_fee=4[deprecated=true];// The admission policy of this service.enumAdmissionPolicy{// Unused.ADMISSION_POLICY_UNSPECIFIED=0;// Customers are required to be present at the start time of the// availability slot, and the service is expected to finish at the// end time of the slot.// Examples of TIME_STRICT use cases:// * A tour that starts at 9am that requires all attendees to arrive// at the start time, and returns at around 12pm.// * A haircut reservation at 3pm on Saturday that will take approximately// 30 minutes.// * A fitness class from 6pm to 8pm.TIME_STRICT=1;// Customers can arrive at any time between the start and end time of the// availability slot to use this booking.//// Examples of TIME_FLEXIBLE use cases:// * A museum ticket that can be used during any time on the purchase// date.// * An afternoon admission to an amusement park that can be used from// 12pm to 9pm.TIME_FLEXIBLE=2;// Customers need to arrive at the merchant at the start time of the// availability slot but can leave any time they want.//// For example, in the museum admission scenario, a timed entry ticket// for 10am requires the user to be at the museum at 10am. The start time of// availability slots for this service represents the designated entry// time. The end time, however, is used solely as a key to identify the// availability slot for booking.TIMED_ENTRY_WITH_FLEXIBLE_DURATION=3;}// The admission policy that applied to this service. If unset, defaults to// TIME_STRICT. (optional)AdmissionPolicyadmission_policy=5;// Scheduling rules cancellation policy (required for Things-to-do).// Defaults to non-refundable.CancellationPolicycancellation_policy=7;}
NoShowFee Definition
// A fee that a user may be charged if they have made a booking but do not// show up.messageNoShowFee{// The amount the user may be charged if they do not show up for their// reservation.Pricefee=1;// Defines how the fee is determined from the availability.PriceTypefee_type=3;}
PriceType Definition
// Defines how a total price is determined from an availability.enumPriceType{// The price is for a fixed amount. This is the default value if the field is// not set.//// Examples:// $50 deposit to reserve a table; $20 no show fee for a yoga classFIXED_RATE_DEFAULT=0;// The price specified is per person, and the total price is calculated// according to the party size specified in Resources as price_micros *// party_size. A PER_PERSON price must be accompanied by a party size in the// availability resources. If it is not, a party size of one is used.//// Examples:// $10 each for tickets to a museumPER_PERSON=1;}
PerTicketFee Definition
// Fees that must be paid for each ticket the user purchases. These fields// must add up to the total per ticket fee.messagePerTicketFee{// An extra charge assessed for a service.Priceservice_charge=1;// A fee that goes to the venue/facility.Pricefacility_fee=2;// Per ticket taxes.Pricetaxes=3;}
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.messageActionLink{// The entry point URL for this action link.stringurl=1;// The BCP-47 language tag identifying the language in which the content// from this URI is available.stringlanguage=2;// An unordered list of ISO 3166-1 alpha-2 country codes. Leave empty for// unrestricted visibility.repeatedstringrestricted_country=3;// The platform that this action should be performed on. If this field is// unset, ACTION_PLATFORM_WEB_APPLICATION will be used as fallback.ActionPlatformplatform=4;// Predetermined type of action associated with an action link.enumActionLinkType{// The action link type is unspecified.ACTION_LINK_TYPE_UNSPECIFIED=0;// The action link type is booking an appointment.ACTION_LINK_TYPE_BOOK_APPOINTMENT=1;// The action link type is booking an online appointment.ACTION_LINK_TYPE_BOOK_ONLINE_APPOINTMENT=2;// The action link type is ordering food for delivery or takeout or both.ACTION_LINK_TYPE_ORDER_FOOD=3;// The action link type is ordering food for delivery.ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY=4;// The action link type is ordering food for takeout.ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT=5;// The action link type is making a dining reservation.ACTION_LINK_TYPE_MAKE_DINING_RESERVATION=6;// The action link type allows users to shop from the given merchant. It// could either be delivery or pickup.ACTION_LINK_TYPE_SHOP_ONLINE=7;}// Predetermined type of action associated with an action link.ActionLinkTypeaction_link_type=5;// Metadata for the order online link.// Supports action with ActionLinkType of ACTION_LINK_TYPE_SHOP_ONLINE.OrderOnlineMetadataorder_online_metadata=6;// Metadata for Food Ordering links.// Supports action type:// * `ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY`// * `ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT`// Does NOT support `ACTION_LINK_TYPE_ORDER_FOOD`FoodOrderingMetadatafood_ordering_metadata=7;// Additional information about action link which is unique to the events// vertical.messageEventMetadata{// Predetermined event surface associated with an action link. This is only// used for Events vertical.enumSurface{// The surface is unspecified.SURFACE_UNSPECIFIED=0;// The action link is booking a event ticket in Search.SURFACE_SEARCH=1;// The action link is booking a event ticket in YouTube.SURFACE_YOUTUBE=2;// The action link is clicking on an Ad for the event.SURFACE_ADS=3;}// Predetermined event surface associated with an action link. This is only// used for Events vertical.Surfacesurface=1;}EventMetadataevent_metadata=9;reserved8;}
ActionPlatform Definition
// The platform that the action is performed on. Web application is the general// fallback. It is recommended to have at least one ActionLink with// ACTION_PLATFORM_WEB_APPLICATION. Links with Android and iOS as platform are// only used on the respective system.enumActionPlatform{// The platform is unspecified.ACTION_PLATFORM_UNSPECIFIED=0;// The action platform is web in general.ACTION_PLATFORM_WEB_APPLICATION=1;// The action platform is web on mobile devices.ACTION_PLATFORM_MOBILE_WEB=2;// The action platform is Android OS.ACTION_PLATFORM_ANDROID=3;// The action platform is iOS.ACTION_PLATFORM_IOS=4;}
TicketType Definition
// TicketType is used to differentiate among tickets (where a ticket can be a// spot on a raft trip, an admission to a museum, etc.) with different prices// and/or availabilities due to different user types or different service// attributes.// Only add new ticket types when at least one of the following differs:// (1) short_description (2) option_description (3) pricemessageTicketType{// The ticket id is used to differentiate among different ticket types of the// same service, and is only expected to be unique within a service.stringticket_type_id=1;// This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.// Deprecated, use `localized_short_description` instead.stringshort_description=2[deprecated=true];// This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.// The field can be supplied in multiple locales.Textlocalized_short_description=6;// The price of a single ticket of this type.Priceprice=3;// Additional fees for purchasing this ticket. (optional)PerTicketFeeper_ticket_fee=5;// Indicates the price format displayed on the landing page.//// This field is ignored for non-link-out inventory.//// This field allows Google surfaces to show the same price format as used by// the landing page. Consistent price formats improve conversion rate and// reduce confusion.enumPriceDisplayType{// The price display type is unspecified. Google will determine which// format to show.PRICE_DISPLAY_TYPE_UNSPECIFIED=0;// The price shown on the landing page is the base price.PRICE_DISPLAY_TYPE_BASE=1;// The price shown on the landing page includes all fees and taxes.PRICE_DISPLAY_TYPE_ALL_IN=2;}// Predetermined price display type of a single ticket of this type.PriceDisplayTypeprice_display_type=9;// Description of any additional option which this ticket type represents, if// any. Deprecated, use `localized_option_description` instead.stringoption_description=4[deprecated=true];// Description of any additional option which this ticket type represents, if// any. The field can be supplied in multiple locales.//// This is useful when the ticket type represents multiple dimensions.//// Example: an admission ticket with different types 'adult', 'child' and// language as an additional option, the expected TicketType list would be:// - { ticket_type_id: "ticket_type_1"// localized_short_description { value: "adult" }// localized_option_description { value: "english" }// }// - { ticket_type_id: "ticket_type_2"// localized_short_description { value: "adult" }// localized_option_description { value: "spanish" }// }// - { ticket_type_id: "ticket_type_3"// localized_short_description { value: "child" }// localized_option_description { value: "english" }// }// - { ticket_type_id: "ticket_type_4"// localized_short_description { value: "child" }// localized_option_description { value: "spanish" }// }//// Optional, but if any ticket type within the service has this field set, we// expect all other ticket types to have this field set as well (a default// option_description could be used). E.g.// [{ticket_type_1, adult, english}, {ticket_type_1, adult, ''}] is not a// valid list.//// Only two HTML formatting tags are supported: <em> and <br>. They are// intended to be used for specifying options with both a title and// detailed description, for example: "<em>Premium Seating</em><br>This option// offers seating at the private boxes including fully cushioned seats,// private TVs, in-seat food and beverage service. These seats provide// picturesque views of the field."Textlocalized_option_description=7;// Predetermined inventory type of a single ticket of this type.enumInventoryType{// The inventory type is unspecified.INVENTORY_TYPE_UNSPECIFIED=0;// Primary inventory.INVENTORY_TYPE_PRIMARY=1;// Verified resale inventory.INVENTORY_TYPE_VERIFIED_RESALE=2;// Resale inventory.INVENTORY_TYPE_RESALE=3;// Aggregator inventory.INVENTORY_TYPE_AGGREGATOR=4;}// Predetermined inventory type of a single ticket of this type.InventoryTypeinventory_type=8;}
Location Definition
// Geographic information about a location.messageLocation{// The Place ID for a place in the Google Places database and on Google Maps.// See https://developers.google.com/places/place-id for more about Place IDs.// If this is provided, Google will match the location to this place.// (optional)stringplace_id=1;// The location's name, telephone, url and geo are used to support matching// the location with places already present on Google Maps.//// This field is optional, but may be required in some contexts. For example,// a Service.location without a name will not be matched to a business entity,// even if they are located at the same address. (optional)stringname=2;// The public telephone number of the location including its country and area// codes, e.g. +14567891234. (optional)stringtelephone=3;// The url of the location's public website. (optional)stringurl=4;// The Geo info of the location, including latitude, longitude, and address.// (optional)GeoCoordinatesgeo=5;// Optional text to provide more precise description of the location, or// instructions assisting locating the place. E.g. "Front entrance of the// library", "meet at the intersect of Road A and Street B". (optional)Textdescription=6;// The type of the location. Note that this field may be required when// attached to a Service, see comments in Service.location for more details.// (optional)LocationTypelocation_type=7;// Unique reference of the location within the service. This id can be used to// refer to this location in other service fields. E.g. in the custom intake// form, a set of location ids can be used to specify pick up location// options. If set, this id should be unique within the same service.// Note this is only applicable for Service.// (optional)stringlocation_id=8;}
Rating Definition
// Defines Rating for an entity.messageRating{// Average rating value (required when number_of_ratings > 0).// The value must be in the range of [1, 5] and can be omitted if and only if// the number_of_ratings is zero.doublevalue=1;// Number of ratings used in calculating the value (required).uint64number_of_ratings=2;}
LocationType Definition
enumLocationType{// Location type unspecified.LOCATION_TYPE_UNSPECIFIED=0;// The location where this service visits.VISITED_LOCATION=1;// The location where this service starts, also serves as MEETING_LOCATION// or START_LOCATION.START_LOCATION=2;// The location where this service ends.END_LOCATION=3;}
RelatedMedia Definition
// Photos related to this service. Google will crawl these media to ensure// that they are displayed correctly to end-users. (optional)messageRelatedMedia{// URL of this media source. Google will crawl the media hosted at this URL.stringurl=1;// Type of this media source.MediaTypetype=2;// Enum to indicate the type of this media source. Only photos are supported.// Please reach out to the Reserve with Google team if other media beyond// photos need to be supported.enumMediaType{// Unused.TYPE_UNSPECIFIED=0;// Indicates the media provided by the url is a photo.PHOTO=1;}// Caption of the media that supports i18n, only plain text is supported. Any// HTML components will be stripped. (optional)Textlocalized_caption=5;// Attribution information about the source of the media. Note that if// the attribution is required to display with the media to give credit to// photographer or agency, this field must be set. (optional)Attributionattribution=4;// Attribution information for this media.messageAttribution{// The text to give credit to the photographer or agency supporting i18n.// This text will be displayed together with the source media. Note that// only plain text is supported for this field, any HTML components will be// stripped (hyperlink based attribution is not supported).Textlocalized_text=2;// Deprecated, prefer to use localized_text.stringtext=1[deprecated=true];}// Deprecated, prefer to use localized_caption.stringcaption=3[deprecated=true];}
ServiceAttributeValueId Definition
// Identifies a particular value of a service attribute to be applied to a// Service.messageServiceAttributeValueId{// ID of an attribute as defined in Merchant.service_attribute, e.g.// "service-type".stringattribute_id=1;// ID of the value for this attribute, e.g. "haircut". Must match a value_id// in the service attribute definition.stringvalue_id=2;}
TicketingVerticalSpecificData Definition
// Additional information unique to the event ticketing vertical.messageTicketingVerticalSpecificData{// A subset of event categories for which we customize the product experience.// Note: not intended to be a universal ontology of events.enumEventCategory{// Not specified. Do not use.EVENT_CATEGORY_UNSPECIFIED=0;// Concerts.EVENT_CATEGORY_CONCERT=1;// Sports events.EVENT_CATEGORY_SPORTS=2;// Theatre events.EVENT_CATEGORY_THEATRE=3;// Exhibits.EVENT_CATEGORY_EXHIBITS=4;// Workshops and Classes.EVENT_CATEGORY_WORKSHOPS_AND_CLASSES=5;}// The category of the event. Set only when event falls into one of the// predefined categories. (optional)EventCategoryevent_category=1;// The URL of the event on the partner's website. (optional)stringevent_url=2;// Identifiers, webpages, or any other public sources that reference an// entity.messagePublicIdentificationData{// Public URL of any webpage that is dedicated to only the topic. This could// include official websites, discogs, social media platforms, wikipedia or// imdb pages, e.g. https://www.discogs.com/artist/1124645-Taylor-Swift,// https://www.wikidata.org/wiki/Q19320959, https://twitter.com/acmilan.// (optional)repeatedstringrelevant_url=1;// The 36-character musicbrainz identifier of the artist or other music// entities, if applicable. See// https://musicbrainz.org/doc/MusicBrainz_Identifier.// (optional)stringmusicbrainz_id=2;}// Represents an entity related to the event.messageEntity{// Unique identifier of the entity in the partner's database. (optional)stringid=1;// Name of the entity. (required)stringname=2;// Url of the webpage that unambiguously describes the entity.// This is the webpage on the partner's website for the entity if any; for// other public URLs of the entity, use relevant_url in// public_identification_data. (optional)stringurl=3;// The type of the entity. Note: not intended to be a universal ontology.enumEntityType{// Not specified. Do not use.ENTITY_TYPE_UNSPECIFIED=0;// The entity represents the artist or group performing at a// concert or a show. Only applicable when event category is CONCERT or// THEATRE.ENTITY_TYPE_PERFORMER=1;// The entity represents the sports team or player at the event. Only// applicable when event category is SPORTS.ENTITY_TYPE_PLAYER=2;// The entity represents the tour that this event belongs to. Only// applicable when event category is CONCERT.ENTITY_TYPE_CONCERT_TOUR=3;// The entity represents a sports tournament that this event// belongs to. Only applicable when event category is SPORTS.ENTITY_TYPE_SPORTS_SERIES=4;// The entity represents the type of play (e.g., musical, comedy, ballet,// etc.) performed at the event. Only applicable when event category is// THEATRE.ENTITY_TYPE_PLAY=5;}// The type of the entity. (optional)EntityTypeentity_type=4;// The role of the entity in the event.enumEntityRole{// Not specified.ENTITY_ROLE_UNSPECIFIED=0;// The entity represents a headliner or leading performer at the event.ENTITY_ROLE_HEADLINER=1;// The entity represents a supporting performer at the event.ENTITY_ROLE_SUPPORTER=2;// The entity represents the home team at the (sports) event.ENTITY_ROLE_HOME_TEAM=3;// The entity represents the away team at the (sports) event.ENTITY_ROLE_AWAY_TEAM=4;}// The role of the entity in the event. (optional)EntityRoleentity_role=5;// Public references of the entity. (optional)PublicIdentificationDatapublic_identification_data=6;}// A list of entities related to the event. (optional)repeatedEntityentity=3;// The type of the event attendance.enumAttendanceMode{// Not specified.ATTENDANCE_MODE_UNSPECIFIED=0;// For virtual events.ONLINE=1;// For physical events.PHYSICAL=2;// For events that are both physical and virtual.PHYSICAL_ONLINE_MIXED=3;}// Required. The type of the event attendance.AttendanceModeevent_attendance_mode=4;// Optional. URL where the event can be watched.repeatedstringevent_virtual_location_url=5;// Optional. Organizer who hosts the event.Textevent_organizer=6;// Optional. URL of the organizer who hosts the event.stringevent_organizer_url=7;// The type of the organizer.enumOrganizerType{// Not specified.ORGANIZER_TYPE_UNSPECIFIED=0;// For organizer who is a person.PERSON=1;// For organizer who is an organization.ORGANIZATION=2;}// Optional. The type of the organizer.OrganizerTypeevent_organizer_type=8;// URL of the pages where the event information or descriptions can be found.// Required for virtual events as virtual events may not have a ticketing// page and this url contains the basic information of the event.repeatedstringevent_source_url=9;// State of the event.enumEventState{// Not specified.EVENT_STATE_UNSPECIFIED=0;// The event is scheduled.SCHEDULED=1;// The event is rescheduled.RESCHEDULED=2;// The event is cancelled.CANCELLED=3;// The event is postponed.POSTPONED=4;}// Optional. State of the event.EventStateevent_state=10;// The localized brand name. (optional)Textbrand_name=11;// Information about the creator of the event. Only relevant for platforms// that include user-generated content events.messageEventCreator{// Name of the event creator. No character restriction.stringname=1[features.field_presence=EXPLICIT];}// Information about the creator of the event.EventCreatorevent_creator=12;}
IntegrationType Definition
// Depth of integration supported.enumIntegrationType{// Defaults to END_TO_END.INTEGRATION_TYPE_UNSPECIFIED=0;// Complete integration that allows end to end booking through Google.INTEGRATION_TYPE_END_TO_END=1;// Feed integration that does not allow end to end booking through Google.// Only merchants, services, and (optionally) availability data need// to be sent.INTEGRATION_TYPE_INVENTORY_ONLY=2;}
Services Feed Sample
Services Feed
{"metadata":{"processing_instruction":"PROCESS_AS_COMPLETE","shard_number":0,"total_shards":1,"generation_timestamp":1534731312},"service":[{"merchant_id":"10000001","service_id":"20000001","localized_service_name":{"value":"Beyoncé Concert World Tour","localized_value":[{"locale":"en","value":"Beyoncé Concert World Tour"}]},"localized_description":{"value":"The Beyoncé World Tour will feature all the hits from her latest album.","localized_value":[{"locale":"en","value":"The Beyoncé World Tour will feature all the hits from her latest album."}]},"type":"SERVICE_TYPE_EVENT_TICKET","action_link":[{"url":"https://www.selltickets.com/event/beyonce/1234?cid=youtube","language":"en-us"}],"ticket_type":[{"ticket_type_id":"20000001-1","inventory_type":"INVENTORY_TYPE_PRIMARY","price":{"price_micros":200000000,"currency_code":"USD"},"per_ticket_fee":{"service_charge":{"price_micros":20000000,"currency_code":"USD"},"facility_fee":{"price_micros":10000000,"currency_code":"USD"},"taxes":{"price_micros":20000000,"currency_code":"USD"}},"localized_short_description":{"value":"General admission","localized_value":[{"locale":"en","value":"General admission"}]}}],"ticketing_vertical_specific_data":{"event_category":"EVENT_CATEGORY_CONCERT","event_url":"https://www.selltickets.com/event/beyonce/1234","entity":[{"id":"501","name":"Beyoncé Knowles","url":"https://www.beyonce.com","entity_type":"ENTITY_TYPE_PERFORMER","entity_role":"ENTITY_ROLE_HEADLINER","public_identification_data":{"relevant_url":["https://twitter.com/beyonce","https://en.wikipedia.org/wiki/Beyonc%C3%A9"],"musicbrainz_id":"859d0860-d480-4efd-970c-c05d5f1776b8"}}]}},{"merchant_id":"10000001","service_id":"20000002","localized_service_name":{"value":"The Lion King","localized_value":[{"locale":"en","value":"The Lion King"}]},"localized_description":{"value":"Experience the award-winning Best Musical with beautifully composed music and stunning choreography.","localized_value":[{"locale":"en","value":"Experience the award-winning Best Musical with beautifully composed music and stunning choreography."}]},"type":"SERVICE_TYPE_EVENT_TICKET","action_link":[{"url":"https://www.selltickets.com/event/theater/1923?cid=youtube","language":"en-us"}],"ticket_type":[{"ticket_type_id":"20000002-1","inventory_type":"INVENTORY_TYPE_PRIMARY","price":{"price_micros":100000000,"currency_code":"USD"},"per_ticket_fee":{"service_charge":{"price_micros":10000000,"currency_code":"USD"},"facility_fee":{"price_micros":5000000,"currency_code":"USD"},"taxes":{"price_micros":10000000,"currency_code":"USD"}},"localized_short_description":{"value":"General admission","localized_value":[{"locale":"en","value":"General admission"}]}}],"ticketing_vertical_specific_data":{"event_category":"EVENT_CATEGORY_THEATRE","event_url":"https://www.selltickets.com/event/theater/1923","entity":[{"id":"15632","name":"The Lion King","url":"https://www.lionkingbroadway.com"}],"entity_type":"ENTITY_TYPE_PLAY"}},{"merchant_id":"10000002","service_id":"20000003","localized_service_name":{"value":"Tampa Bay Buccaneers vs. Dallas Cowboys","localized_value":[{"locale":"en","value":"Tampa Bay Buccaneers vs. Dallas Cowboys"}]},"localized_description":{"value":"Watch the Tampa Bay Buccaneers vs. Dallas Cowboys game at AT&T Stadium.","localized_value":[{"locale":"en","value":"Watch the Tampa Bay Buccaneers vs. Dallas Cowboys game at AT&T Stadium."}]},"type":"SERVICE_TYPE_EVENT_TICKET","action_link":[{"url":"https://www.selltickets.com/event/sports/4543?cid=youtube","language":"en-us"}],"ticket_type":[{"ticket_type_id":"20000003-1","inventory_type":"INVENTORY_TYPE_RESALE","price":{"price_micros":50000000,"currency_code":"USD"},"per_ticket_fee":{"service_charge":{"price_micros":5000000,"currency_code":"USD"},"facility_fee":{"price_micros":0,"currency_code":"USD"},"taxes":{"price_micros":5000000,"currency_code":"USD"}},"localized_short_description":{"value":"General admission","localized_value":[{"locale":"en","value":"General admission"}]}}],"ticketing_vertical_specific_data":{"event_category":"EVENT_CATEGORY_SPORTS","event_url":"https://www.selltickets.com/event/sports/4543","entity":[{"id":"9010","name":"Tampa Bay Buccaneers","url":"https://www.tampabaybuccaneers.com","entity_type":"ENTITY_TYPE_PLAYER","entity_role":"ENTITY_ROLE_HOME_TEAM"}]}}]}
[[["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 2025-04-09 UTC."],[[["A Service Feed is a structured data format used to describe services offered by a merchant, such as appointments, reservations, or tickets."],["Services are defined with key details like pricing, booking rules, payment options, and relevant media like photos or videos."],["The feed uses standardized data structures to represent location, pricing, scheduling, ticket types, and other essential service information."],["Merchants can use this feed to provide their service information to Google, enhancing their visibility and user experience on Google platforms."],["This specification uses protocol buffers for definition but recommends JSON format for uploads."]]],["The `ServiceFeed` contains `Service` objects, each defined by a unique `merchant_id` and `service_id`. Services have `localized_service_name` and `localized_description`, replacing older fields, plus `price` and `price_interpretation`. Booking and cancellation `rules` are supported, along with `prepayment_type` and `prepayment_terms`. Other key details include `tax_rate`, `payment_option_id`, `type` of service, `ticket_type`, and `action_link` with different action types. Scheduling is based on `scheduling_rules`, and a no-show fee can be defined. Multiple other fields exist to give additional information.\n"]]