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.

Food ServicePoint of SaleRestaurantsHospitality

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/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": "#/definitions/TimeRange"
      }
    }
  }
}