AI-generated Key Takeaways
-
The Golf Availability feed specification is defined in protobuffer format, but uploading feeds in JSON format is recommended.
-
The
GolfAvailabilityFeed
message contains a list ofGolfAvailability
messages. -
Each
GolfAvailability
message defines a tee time slot with details such as availability ID, entity ID, start time, number of spots, booking link, price, and number of holes. -
The availability feed should provide a list of
GolfAvailability
messages for different tee time slots and entities.
Definitions
GolfAvailabilityFeed Definition
message GolfAvailabilityFeed { repeated GolfAvailability data = 1; }
GolfAvailability Definition
// It can be a tee time for a golf course entity. // The availability feed should be a list of this message. message GolfAvailability { // An opaque string generated by the partner that identifies a tee time slot. // Must be unique across all entities and tee time slots. // Strongly recommended to only include URL-safe characters. // Required. string availability_id = 10; // An opaque string generated by the partner that identifies an Entity. // Must be unique across all entities. // Strongly recommended to only include URL-safe characters. // Required. string entity_id = 1; // Timestamp of when this availability slot starts in UTC. // Given in seconds since the unix epoch. // For example, 1735714800 seconds for 1 Jan 2025, 07:00:00 (UTC). // Required. int64 start_time_sec = 2; // Number of total spots and available spots of this booking availability. // E.g. a golf tee time of 4 spots with 2 booked. // golf_availability {spots_total: 4, spots_available: 2} // Required. int32 spots_total = 3; // Required. int32 spots_available = 4; // The minimum number of spots that should be booked for this availability. // For example, a user has to book at least 2 spots for a tee time sometimes. // If set, spots_minimum_book should be less or equal to spots_available. // Required. int32 spots_minimum_book = 5; // Link of this booking availability. Users will be redirected to partner // website to continue booking after clicking this link. // Required. string booking_link = 6; // Base price per person. // Required. google.type.Money base_price = 7; // Fee per person. // Required. google.type.Money fee_price = 8; // Number of holes in the golf availability/tee time. // Required. enum Holes { // Not specified. Do not use. HOLES_UNSPECIFIED = 0; // 6 Holes. SIX_HOLES = 5; // 9 Holes. NINE_HOLES = 1; // 12 Holes. TWELVE_HOLES = 2; // 14 Holes. FOURTEEN_HOLES = 3; // 18 Holes EIGHTEEN_HOLES = 4; } Holes holes = 9; }
Golf Availability feeds samples
Golf Availability Feed
{ "data": [ { "availability_id": "availability_id_1", "entity_id": "entity_id_1", "start_time_sec": 1728257400, "spots_total": 4, "spots_available": 4, "spots_minimum_book": 2, "booking_link": "https://www.googlegolfappointments.com/a_link_direct_to_booking_page", "base_price": { "currency_code": "USD", "units": 80, "nanos": 0 }, "holes": "EIGHTEEN_HOLES" }, { "availability_id": "availability_id_2", "entity_id": "entity_id_2", "start_time_sec": 1728259200, "spots_total": 4, "spots_available": 4, "spots_minimum_book": 2, "booking_link": "https://googlegolfappointments.com/a_link_direct_to_booking_page", "base_price": { "currency_code": "USD", "units": 80, "nanos": 0 }, "holes": "NINE_HOLES" } ] }
Descriptor File
{ "generation_timestamp": 1663347730, "name": "golf.availability", "data_file": [ "golf.availability-1663347730-00000-of-00001.json" ] }