> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # CalculateAvailableDatesInRange # Package: onlineOrders # Namespace: OperationsService # Method link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/online-orders/operations/calculate-available-dates-in-range.md ## Permission Scopes: Manage Restaurants - all permissions: SCOPE.RESTAURANTS.MEGA-SCOPES ## Introduction Retrieves all available dates of each fulfillment type within the specified time range. A date is considered available if it has at least one available time slot. The response includes time slots with delivery fulfillment types only if you specify a delivery address. Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability. --- ## REST API ### Schema ``` Method: calculateAvailableDatesInRange Description: Retrieves all available dates of each fulfillment type within the specified time range. A date is considered available if it has at least one available time slot. The response includes time slots with delivery fulfillment types only if you specify a delivery address. Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability. URL: https://www.wixapis.com/restaurants-operations/v1/operations/{operationId}/available-dates Method: GET # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: operationId, from, until Method parameters: param name: deliveryAddress | type: Address | description: Physical address - ONE-OF: - name: streetAddress | type: StreetAddress | description: Street name and number. - name: number | type: string | description: Street number. - name: name | type: string | description: Street name. - name: apt | type: string | description: Apartment number. - name: formattedAddressLine | type: string | description: Optional address line 1 - name: addressLine | type: string | description: Main address line, usually street and number as free text. - name: country | type: string | description: Country code. - name: subdivision | type: string | description: Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: city | type: string | description: City name. - name: postalCode | type: string | description: Zip/postal code. - name: addressLine2 | type: string | description: Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. - name: formattedAddress | type: string | description: A string containing the full address of this location. - name: hint | type: string | description: Free text to help find the address. - name: geocode | type: AddressLocation | description: Coordinates of the physical address. - name: latitude | type: number | description: Address latitude. - name: longitude | type: number | description: Address longitude. - name: countryFullname | type: string | description: Country full name. - name: subdivisionFullname | type: string | description: Subdivision full name. - name: subdivisions | type: array | description: Multi-level subdivisions from top to bottom. - name: code | type: string | description: Short subdivision code. - name: name | type: string | description: Subdivision full name. param name: from | type: Date | required: true - name: day | type: integer | description: The day of the month. - name: month | type: integer | description: The month of the year. - name: year | type: integer | description: The year of the date. param name: operationId | type: none | required: true param name: until | type: Date | required: true - name: day | type: integer | description: The day of the month. - name: month | type: integer | description: The month of the year. - name: year | type: integer | description: The year of the date. Return type: CalculateAvailableDatesInRangeResponse - name: availableDatesPerFulfillmentType | type: array | description: Available dates of each fulfillment type within the specified time range. Contains all dates that have at least one available time slot. - name: fulfilmentType | type: FulfillmentType | description: Fulfillment type. - enum: - PICKUP: Pickup fulfillment. The customer picks up the order from the restaurant. - DELIVERY: Delivery fulfillment. The restaurant, or a representative, delivers the order to the customer. - name: dates | type: array | description: Available dates in descending order (most recent first). Contains all dates that have at least one available time slot for this fulfillment type. - name: day | type: integer | description: The day of the month. - name: month | type: integer | description: The month of the year. - name: year | type: integer | description: The year of the date. ``` ### Examples ### Calculate available dates in a date range ```curl curl -X GET 'https://www.wixapis.com/restaurants-operations/v1/operations/48605ac5-53fc-49b4-96b2-87f7636f5ce0/available-dates?' \ 'from.day=1&from.month=12&from.year=2025&until.day=31&until.month=12&until.year=2025' \ -H 'Authorization: ' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.onlineOrders.OperationsService.calculateAvailableDatesInRange(operationId, options) Description: Retrieves all available dates of each fulfillment type within the specified time range. A date is considered available if it has at least one available time slot. The response includes time slots with delivery fulfillment types only if you specify a delivery address. Only fulfillment methods capable of delivering to the specified address are considered when calculating time slot availability. # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present. Required parameters: operationId, options.from, options.until, options Method parameters: param name: operationId | type: string | description: Operation GUID. | required: true param name: options | type: CalculateAvailableDatesInRangeOptions none | required: true - name: deliveryAddress | type: Address | description: Delivery address. Delivery fulfillment methods are only considered when calculating date availability if a delivery address is specified. - ONE-OF: - name: streetAddress | type: StreetAddress | description: Street name and number. - name: number | type: string | description: Street number. - name: name | type: string | description: Street name. - name: apt | type: string | description: Apartment number. - name: formattedAddressLine | type: string | description: Optional address line 1 - name: addressLine | type: string | description: Main address line, usually street and number as free text. - name: country | type: string | description: Country code. - name: subdivision | type: string | description: Subdivision. Usually a state, region, prefecture, or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). - name: city | type: string | description: City name. - name: postalCode | type: string | description: Zip/postal code. - name: addressLine2 | type: string | description: Free text providing more detailed address info. Usually contains Apt, Suite, and Floor. - name: formattedAddress | type: string | description: A string containing the full address of this location. - name: hint | type: string | description: Free text to help find the address. - name: geocode | type: AddressLocation | description: Coordinates of the physical address. - name: latitude | type: number | description: Address latitude. - name: longitude | type: number | description: Address longitude. - name: countryFullname | type: string | description: Country full name. - name: subdivisionFullname | type: string | description: Subdivision full name. - name: subdivisions | type: array | description: Multi-level subdivisions from top to bottom. - name: code | type: string | description: Short subdivision code. - name: name | type: string | description: Subdivision full name. - name: from | type: Date | description: Start date and time of the range. | required: true - name: day | type: integer | description: The day of the month. - name: month | type: integer | description: The month of the year. - name: year | type: integer | description: The year of the date. - name: until | type: Date | description: End date and time of the range. | required: true Return type: PROMISE - name: availableDatesPerFulfillmentType | type: array | description: Available dates of each fulfillment type within the specified time range. Contains all dates that have at least one available time slot. - name: fulfilmentType | type: FulfillmentType | description: Fulfillment type. - enum: - PICKUP: Pickup fulfillment. The customer picks up the order from the restaurant. - DELIVERY: Delivery fulfillment. The restaurant, or a representative, delivers the order to the customer. - name: dates | type: array | description: Available dates in descending order (most recent first). Contains all dates that have at least one available time slot for this fulfillment type. - name: day | type: integer | description: The day of the month. - name: month | type: integer | description: The month of the year. - name: year | type: integer | description: The year of the date. ``` ### Examples ### calculateAvailableDatesInRange ```javascript import { operations } from '@wix/restaurants'; async function calculateAvailableDatesInRange(operationId,options) { const response = await operations.calculateAvailableDatesInRange(operationId,options); }; ``` ### calculateAvailableDatesInRange (with elevated permissions) ```javascript import { operations } from '@wix/restaurants'; import { auth } from '@wix/essentials'; async function myCalculateAvailableDatesInRangeMethod(operationId,options) { const elevatedCalculateAvailableDatesInRange = auth.elevate(operations.calculateAvailableDatesInRange); const response = await elevatedCalculateAvailableDatesInRange(operationId,options); } ``` ### calculateAvailableDatesInRange (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { operations } from '@wix/restaurants'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { operations }, // Include the auth strategy and host as relevant }); async function calculateAvailableDatesInRange(operationId,options) { const response = await myWixClient.operations.calculateAvailableDatesInRange(operationId,options); }; ``` ---