Toast · Schema

Schedule

A multi-use object that is used to: * Define when a menu is available. * Define when a time-specific price is available for a menu item or modifier option. A `Schedule` object defines a set of days of the week and a set of time ranges for those days. Days that have identical time ranges are grouped into a single `Schedule` object, for example, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, and FRIDAY in the example below have identical time ranges and are in the same `Schedule` object while SATURDAY and SUNDAY are in a separate `Schedule` object because their time ranges differ from the weekday time ranges. ``` "availability": { "alwaysAvailable": false, "schedule": [ { "days": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY" ], "timeRanges": [ { "start": "09:00", "end": "18:00" } ] }, { "days": [ "FRIDAY", "SATURDAY" ], "timeRanges": [ { "start": "09:00", "end": "18:00" }, { "start": "20:00", "end": "23:00" } ] } ] } ``` Time ranges are in 24-hour HH:MM format. If a day is not represented in the `Schedule` objects, the menu or time-specific price is not available on that day.

RestaurantsPoint Of SalePaymentsOnline OrderingDeliveryLoyaltyGift CardsMenusOrdersKitchenLaborSchedulingInventoryHospitalityPartner Integrations

Properties

Name Type Description
days array An array of days of the week that are associated with identical time ranges. The time ranges are defined in a corresponding `timeRanges` value. Names of the days are in upper case, for example, MONDAY
timeRanges array An array of `TimeRange` objects that define the time ranges that a menu or a time-specific price is available on the days defined by the corresponding `days` value. A `TimeRange` object contains a `st
View JSON Schema on GitHub

JSON Schema

menus-schedule-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/toast-tab/refs/heads/main/json-schema/menus-schedule-schema.json",
  "title": "Schedule",
  "description": "A multi-use object that is used to:\n\n* Define when a menu is available.\n* Define when a time-specific price is available for a menu item or modifier option.\n\nA `Schedule` object defines a set of days of the week and a set of time ranges for those days. Days that have identical time ranges are grouped into a single `Schedule` object, for example, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, and FRIDAY in the example below have identical time ranges and are in the same `Schedule` object while SATURDAY and SUNDAY are in a separate `Schedule` object because their time ranges differ from the weekday time ranges.\n\n```\n\"availability\": {\n  \"alwaysAvailable\": false,\n  \"schedule\": [\n    {\n      \"days\": [\n        \"MONDAY\", \n        \"TUESDAY\", \n        \"WEDNESDAY\", \n        \"THURSDAY\"\n      ],\n      \"timeRanges\": [\n        {\n          \"start\": \"09:00\",\n          \"end\": \"18:00\"\n        }\n      ]\n    },\n    {\n      \"days\": [\n        \"FRIDAY\", \n        \"SATURDAY\"\n      ],\n      \"timeRanges\": [\n        {\n          \"start\": \"09:00\",\n          \"end\": \"18:00\"\n        },\n        {\n          \"start\": \"20:00\",\n          \"end\": \"23:00\"\n        }\n      ]\n    }\n  ]\n}\n```\n\nTime ranges are in 24-hour HH:MM format.\n\nIf a day is not represented in the `Schedule` objects, the menu or time-specific price is not available on that day.      \n",
  "type": "object",
  "properties": {
    "days": {
      "type": "array",
      "description": "An array of days of the week that are associated with identical time ranges. The time ranges are defined in a corresponding `timeRanges` value. Names of the days are in upper case, for example, MONDAY.\n",
      "items": {
        "type": "string",
        "description": "A day of the week, for example, SUNDAY or THURSDAY.",
        "enum": [
          "SUNDAY",
          "MONDAY",
          "TUESDAY",
          "WEDNESDAY",
          "THURSDAY",
          "FRIDAY",
          "SATURDAY"
        ]
      }
    },
    "timeRanges": {
      "type": "array",
      "description": "An array of `TimeRange` objects that define the time ranges that a menu or a time-specific price is available on the days defined by the corresponding `days` value. A `TimeRange` object contains a `start` time and an `end` time, expressed in the restaurant\u2019s local time. If both the `start` and `end` times for a given day are 00:00, it indicates that the menu or the time-specific price is available 24 hours on the associated days. Time ranges may also run overnight, for example, a time range that starts at \"07:00\" and ends at \"03:00\" runs from 7am until 3am the next day. \n",
      "items": {
        "$ref": "#/$defs/TimeRange"
      }
    }
  },
  "$defs": {
    "TimeRange": {
      "type": "object",
      "description": "Represents a time range for when a menu or a time-specific price is available.\n",
      "properties": {
        "start": {
          "type": "string",
          "description": "The start time of the time range. Expressed in the restaurant\u2019s local time.\n",
          "example": "string"
        },
        "end": {
          "type": "string",
          "description": "The end time of the time range. Expressed in the restaurant\u2019s local time.\n",
          "example": "string"
        }
      }
    }
  }
}