Stay organized with collections
Save and categorize content based on your preferences.
Setting a minimum advanced booking time
There are many cases in which a merchant would like specific services or
slots to be booked a minimum time in advance. These can be set at either the
service level and/or at the availability level. If it is set at both, the
setting at the availability level will be used.
Service level definition
At the
service level the field is called rules.min_advance_booking. This field
should be set to the number of seconds in advance of the reservation start
time that the booking needs to be made. For example if the booking always
needs to be made 1 hour before the start time this field would be set to
3600 (so a booking for 3pm can be booked up until 2pm). This would apply to
all slots for that service (unless overridden by slot level definition).
[[["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-05-20 UTC."],[[["\u003cp\u003eMerchants can set a minimum advance booking time for services, ensuring bookings are made within a specified timeframe before the service start time.\u003c/p\u003e\n"],["\u003cp\u003eThis can be configured at the service level (affecting all slots) or at the individual slot level, offering flexibility in setting booking windows.\u003c/p\u003e\n"],["\u003cp\u003eService-level settings use \u003ccode\u003erules.min_advance_booking\u003c/code\u003e (in seconds), while slot-level settings use \u003ccode\u003escheduling_rule_overrides.last_bookable_sec\u003c/code\u003e (as an EPOCH timestamp).\u003c/p\u003e\n"],["\u003cp\u003eMerchants still need to validate booking requests against the booking window on their end and handle potential booking failures appropriately, as feed-based limits might not cover all edge cases.\u003c/p\u003e\n"]]],["Merchants can set minimum advanced booking times for services or slots. At the service level, the `rules.min_advance_booking` field specifies the minimum seconds needed before a reservation's start time. At the slot level, `scheduling_rule_overrides.last_bookable_sec` defines the last bookable time via an epoch timestamp. If both are set, the slot-level rule takes precedence. Regardless of feed settings, the booking system must validate booking windows upon receiving a `CreateBooking` request and respond with `SLOT_UNAVAILABLE` if the booking is outside the allowed window.\n"],null,["# Set a minimum advanced booking time\n\nSetting a minimum advanced booking time\n---------------------------------------\n\nThere are many cases in which a merchant would like specific services or\nslots to be booked a minimum time in advance. These can be set at either the\nservice level and/or at the availability level. If it is set at both, the\nsetting at the availability level will be used.\n\n### Service level definition\n\nAt the\n[service level the field is called `rules.min_advance_booking`](/actions-center/verticals/local-services/e2e/reference/feeds/services-feed#SchedulingRules-definition). This field\nshould be set to the number of seconds in advance of the reservation start\ntime that the booking needs to be made. For example if the booking always\nneeds to be made 1 hour before the start time this field would be set to\n3600 (so a booking for 3pm can be booked up until 2pm). This would apply to\nall slots for that service (unless overridden by [slot level definition](#slot-level)). \n\n### JSON\n\n```json\n\"service\": [\n {\n \"rules\": {\n \"min_advance_booking\": 3600\n }\n }\n]\n```\n\n### Slot level definition\n\nAt the\n[availability slot level the field is called\n`scheduling_rule_overrides.last_bookable_sec`](/actions-center/verticals/local-services/e2e/reference/feeds/availability-feed#Availability-definition). This\nfield is the last time (EPOCH timestamp) that the specific slot can be booked.\nThis would apply to each individual slot where this was specified. \n\n### JSON\n\n```json\n\"service_availability\": [\n {\n \"availability\": {\n \"scheduling_rule_overrides\": {\n \"last_bookable_sec\": 1468081800\n }\n }\n }\n]\n```\n| **Warning** : Implementing advance booking limit in feeds does not prevent you from having to check if the booking is within the allowed booking window and handle it [`BookingFailure`](/actions-center/verticals/local-services/e2e/reference/booking-server-api-rest/e2e-definitions/bookingfailure-definition) `SLOT_UNAVAILABLE`. There might be edge cases (such as a stall browser tab) where a [`CreateBooking`](/actions-center/verticals/local-services/e2e/reference/booking-server-api-rest/e2e-methods/createbooking-method) might be sent outside of the booking window. Upon receiving a [`CreateBooking`](/actions-center/verticals/local-services/e2e/reference/booking-server-api-rest/e2e-methods/createbooking-method), your system must confirm that the booking occurs within the allowed booking window and, if it's not, respond with `CreateBookingResponse.booking_failure = SLOT_UNAVAILABLE`."]]