Grubhub · Schema

PosFullSchedule

Complete schedule information about the merchant, including the status of any alternate schedules or overrides.

Food DeliveryRestaurantMarketplaceOnline OrderingPoint-of-SaleLogisticsLast Mile DeliveryMenu ManagementHospitalityLocal CommerceDelivery

Properties

Name Type Description
statuses object A map of all schedule types (`DELIVERY`, `PICKUP`, etc.) and their current open/close status.
today_schedule object A collection of the types of schedules for a merchant, the date on which they begin, and the number of days in each schedule's period. Together, this collection defines the outlines of a merchant's pi
overrides_in_effect array The schedules overrides that currently apply to the various schedule types in effect for this merchant.
mass_overrides_in_effect array The schedule overrides that apply to this and several other merchants, usually of the same merchant group.
repeating_schedules_in_effect array Any repeating weekly schedules in effect for this merchant.
custom_schedules_in_effect array Any custom, temporary schedules currently in place. These will take precedence over a repeating schedule of the same type.
all_schedule_overrides array All previous, current, and future schedule overrides associated with this merchant.
all_mass_overrides array All mass schedule overrides that have or could affect this merchant's schedule.
all_repeating_schedules array All weekly repeating schedules associated with this merchant. These are used as the default schedule when no custom schedules, or unavailable/available overrides are in effect.
all_custom_schedules array All custom schedules associated with this merchant. These are temporary schedules that change the working hours for the merchant for things like holiday or summer hours.
managed_delivery_schedules array The managed delivery schedules for the region that includes this merchant's address.
View JSON Schema on GitHub

JSON Schema

grubhub-posfullschedule-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/grubhub/main/json-schema/grubhub-posfullschedule-schema.json",
  "title": "PosFullSchedule",
  "x-generated": "2026-09-17",
  "x-method": "derived",
  "x-source": "openapi/grubhub-merchant-schedules-openapi.yml#/components/schemas/PosFullSchedule",
  "type": "object",
  "properties": {
    "statuses": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "The status of a merchant as related to the schedule.",
        "enum": [
          "PAUSED",
          "ONBOARDING",
          "OPEN",
          "CLOSED",
          "WHITED_IN",
          "BLACKED_OUT",
          "GHD_BLACKED_OUT",
          "MASS_BLACKED_OUT"
        ]
      },
      "description": "A map of all schedule types (`DELIVERY`, `PICKUP`, etc.) and their current open/close status."
    },
    "today_schedule": {
      "type": "object",
      "properties": {
        "empty": {
          "type": "boolean"
        }
      },
      "additionalProperties": {
        "$ref": "#/$defs/PeriodSchedule"
      },
      "description": "A collection of the types of schedules for a merchant, the date on which they begin, and the number of days in each schedule's period. Together, this collection defines the outlines of a merchant's pickup and delivery schedules.<br />Note that the first field, name, is used as the index of the collection."
    },
    "overrides_in_effect": {
      "type": "array",
      "description": "The schedules overrides that currently apply to the various schedule types in effect for this merchant.",
      "items": {
        "$ref": "#/$defs/PosScheduleOverride"
      }
    },
    "mass_overrides_in_effect": {
      "type": "array",
      "description": "The schedule overrides that apply to this and several other merchants, usually of the same merchant group.",
      "items": {
        "$ref": "#/$defs/PosMassScheduleOverride"
      }
    },
    "repeating_schedules_in_effect": {
      "type": "array",
      "description": "Any repeating weekly schedules in effect for this merchant.",
      "items": {
        "$ref": "#/$defs/PosMerchantRepeatingSchedule"
      }
    },
    "custom_schedules_in_effect": {
      "type": "array",
      "description": "Any custom, temporary schedules currently in place. These will take precedence over a repeating schedule of the same type.",
      "items": {
        "$ref": "#/$defs/PosCustomSchedule"
      }
    },
    "all_schedule_overrides": {
      "type": "array",
      "description": "All previous, current, and future schedule overrides associated with this merchant.",
      "items": {
        "$ref": "#/$defs/PosScheduleOverride"
      }
    },
    "all_mass_overrides": {
      "type": "array",
      "description": "All mass schedule overrides that have or could affect this merchant's schedule.",
      "items": {
        "$ref": "#/$defs/PosMassScheduleOverride"
      }
    },
    "all_repeating_schedules": {
      "type": "array",
      "description": "All weekly repeating schedules associated with this merchant. These are used as the default schedule when no custom schedules, or unavailable/available overrides are in effect.",
      "items": {
        "$ref": "#/$defs/PosMerchantRepeatingSchedule"
      }
    },
    "all_custom_schedules": {
      "type": "array",
      "description": "All custom schedules associated with this merchant. These are temporary schedules that change the working hours for the merchant for things like holiday or summer hours.",
      "items": {
        "$ref": "#/$defs/PosCustomSchedule"
      }
    },
    "managed_delivery_schedules": {
      "type": "array",
      "description": "The managed delivery schedules for the region that includes this merchant's address.",
      "items": {
        "$ref": "#/$defs/RepeatingSchedule"
      }
    }
  },
  "description": "Complete schedule information about the merchant, including the status of any alternate schedules or overrides.",
  "$defs": {
    "Chronology": {
      "type": "object",
      "properties": {
        "zone": {
          "$ref": "#/$defs/DateTimeZone"
        }
      }
    },
    "CustomScheduleMetadata": {
      "required": [
        "intervals",
        "source"
      ],
      "type": "object",
      "properties": {
        "created_by": {
          "type": "string",
          "description": "The creator of the schedule"
        },
        "updated_by": {
          "type": "string",
          "description": "The last credential to update the schedule"
        },
        "created_date": {
          "type": "string",
          "description": "The creation date of the schedule",
          "format": "date-time"
        },
        "updated_date": {
          "type": "string",
          "description": "The last update date of the schedule",
          "format": "date-time"
        },
        "legacy_id": {
          "type": "string",
          "description": "The legacy ID of the schedule in MySQL"
        },
        "description": {
          "type": "string",
          "description": "The description for the schedule"
        },
        "source": {
          "type": "string",
          "description": "The source of the creation or update of the custom schedule"
        },
        "intervals": {
          "type": "array",
          "description": "A set of non-overlapping time periods",
          "items": {
            "$ref": "#/$defs/RepeatingScheduleRuleInterval"
          }
        }
      },
      "description": "The metadata associated to a specific custom schedule"
    },
    "DateTimeField": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "$ref": "#/$defs/DateTimeFieldType"
        },
        "supported": {
          "type": "boolean"
        },
        "lenient": {
          "type": "boolean"
        },
        "duration_field": {
          "$ref": "#/$defs/DurationField"
        },
        "range_duration_field": {
          "$ref": "#/$defs/DurationField"
        },
        "leap_duration_field": {
          "$ref": "#/$defs/DurationField"
        },
        "minimum_value": {
          "type": "integer",
          "format": "int32"
        },
        "maximum_value": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "DateTimeFieldType": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "duration_type": {
          "$ref": "#/$defs/DurationFieldType"
        },
        "range_duration_type": {
          "$ref": "#/$defs/DurationFieldType"
        }
      }
    },
    "DateTimeZone": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "fixed": {
          "type": "boolean"
        }
      }
    },
    "DurationField": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "$ref": "#/$defs/DurationFieldType"
        },
        "supported": {
          "type": "boolean"
        },
        "unit_millis": {
          "type": "integer",
          "format": "int64"
        },
        "precise": {
          "type": "boolean"
        }
      }
    },
    "DurationFieldType": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "LocalTime": {
      "type": "object",
      "properties": {
        "chronology": {
          "$ref": "#/$defs/Chronology"
        },
        "millis_of_day": {
          "type": "integer",
          "format": "int32"
        },
        "hour_of_day": {
          "type": "integer",
          "format": "int32"
        },
        "minute_of_hour": {
          "type": "integer",
          "format": "int32"
        },
        "second_of_minute": {
          "type": "integer",
          "format": "int32"
        },
        "millis_of_second": {
          "type": "integer",
          "format": "int32"
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/DateTimeField"
          }
        },
        "values": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "field_types": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/DateTimeFieldType"
          }
        }
      }
    },
    "MassScheduleOverrideMetadata": {
      "type": "object",
      "properties": {
        "name_filter": {
          "type": "string",
          "description": "Optional Java Regular Expression used to target specific RepeatingSchedules by name"
        },
        "override_type": {
          "type": "string",
          "description": "The type of a schedule override.  Describes whether the deviation is to open or close unexpectedly.",
          "enum": [
            "BLACKOUT",
            "WHITEIN"
          ]
        },
        "schedule_type": {
          "type": "string",
          "description": "The type of mass schedule override, whether timezones are applied",
          "enum": [
            "LOCAL",
            "ZONED"
          ]
        },
        "created_by": {
          "type": "string",
          "description": "The creator of the schedule"
        },
        "updated_by": {
          "type": "string",
          "description": "The last credential to update the schedule"
        },
        "created_date": {
          "type": "string",
          "description": "The creation date of the schedule",
          "format": "date-time"
        },
        "updated_date": {
          "type": "string",
          "description": "The last update date of the schedule",
          "format": "date-time"
        },
        "legacy_id": {
          "type": "string",
          "description": "The legacy ID of the schedule in MySQL"
        },
        "description": {
          "type": "string",
          "description": "The description for the schedule"
        }
      },
      "description": "Metadata associated to a merchant mass schedule override"
    },
    "PeriodSchedule": {
      "type": "object",
      "properties": {
        "empty": {
          "type": "boolean"
        }
      },
      "additionalProperties": {
        "type": "array",
        "properties": {
          "empty": {
            "type": "boolean"
          }
        },
        "description": "A collection of the types of schedules for a merchant, the date on which they begin, and the number of days in each schedule's period. Together, this collection defines the outlines of a merchant's pickup and delivery schedules.<br />Note that the first field, name, is used as the index of the collection.",
        "items": {
          "$ref": "#/$defs/RepeatingScheduleRuleInterval"
        }
      },
      "description": "A collection of the types of schedules for a merchant, the date on which they begin, and the number of days in each schedule's period. Together, this collection defines the outlines of a merchant's pickup and delivery schedules.<br />Note that the first field, name, is used as the index of the collection."
    },
    "PosCustomSchedule": {
      "required": [
        "date",
        "metadata",
        "name"
      ],
      "type": "object",
      "properties": {
        "merchant_id": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Type of schedule. If not specified, defaults to \"DELIVERY\"",
          "enum": [
            "DELIVERY",
            "PICKUP",
            "CATERING",
            "GROUP"
          ]
        },
        "date": {
          "type": "string",
          "format": "date"
        },
        "metadata": {
          "$ref": "#/$defs/CustomScheduleMetadata"
        }
      },
      "description": "All custom schedules associated with this merchant. These are temporary schedules that change the working hours for the merchant for things like holiday or summer hours."
    },
    "PosMassScheduleOverride": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The identifier of the mass override itself.",
          "format": "uuid"
        },
        "merchant_ids": {
          "uniqueItems": true,
          "type": "array",
          "description": "The IDs of the merchants affected by this mass blackout.",
          "items": {
            "type": "string",
            "description": "The IDs of the merchants affected by this mass blackout."
          }
        },
        "metadata": {
          "$ref": "#/$defs/MassScheduleOverrideMetadata"
        },
        "start_time_utc": {
          "type": "string",
          "description": "The date and time when this mass override begins in the UTC (Coordinated Universal Time) time zone.",
          "format": "date-time"
        },
        "end_time_utc": {
          "type": "string",
          "description": "The date and time when this mass override ends in the UTC (Coordinated Universal Time) time zone.",
          "format": "date-time"
        },
        "start_time_local": {
          "type": "string",
          "description": "The date and time when this mass override begins in the merchant's local time zone.",
          "format": "date-time"
        },
        "end_time_local": {
          "type": "string",
          "description": "The date and time when this mass override ends in the merchant's local time zone.",
          "format": "date-time"
        }
      },
      "description": "Information about a blackout that applies to multiple merchants; used for groups of merchants to halt online orders or pause ordering during a disaster (Grubhub administrative use only)."
    },
    "PosMerchantRepeatingSchedule": {
      "required": [
        "merchant_id",
        "name",
        "repeating_schedule_content",
        "schedule_id"
      ],
      "type": "object",
      "properties": {
        "merchant_id": {
          "type": "string",
          "description": "The Grubhub or third-party provided external ID for the merchant."
        },
        "schedule_id": {
          "type": "string",
          "description": "The ID of this schedule.",
          "format": "uuid"
        },
        "name": {
          "type": "string",
          "description": "Type of schedule. If not specified, defaults to \"DELIVERY\"",
          "enum": [
            "DELIVERY",
            "PICKUP",
            "CATERING",
            "GROUP"
          ]
        },
        "version_id": {
          "type": "string",
          "description": "The ID of the version of this schedule which changes upon updates to the schedule.",
          "format": "uuid"
        },
        "repeating_schedule_content": {
          "$ref": "#/$defs/RepeatingSchedule"
        },
        "metadata": {
          "$ref": "#/$defs/RepeatingScheduleMetadata"
        }
      },
      "description": "The repeating weekly schedule of a merchant."
    },
    "PosScheduleOverride": {
      "required": [
        "end_time_utc",
        "local_end_time",
        "local_start_time",
        "merchant_id",
        "name",
        "start_time_utc",
        "type"
      ],
      "type": "object",
      "properties": {
        "schedule_id": {
          "type": "string",
          "description": "The ID of this schedule",
          "format": "uuid"
        },
        "merchant_id": {
          "type": "string",
          "description": "The Grubhub or third-party provided external ID for the merchant."
        },
        "name": {
          "type": "string",
          "description": "Type of schedule. If not specified, defaults to \"DELIVERY\"",
          "enum": [
            "DELIVERY",
            "PICKUP",
            "CATERING",
            "GROUP"
          ]
        },
        "type": {
          "type": "string",
          "description": "Type of schedule override. \"UNAVAILABLE\" is a duration when the merchant should be closed, when normally they would be open. \"AVAILABLE\" is a duration when the merchant should be open, when normally they would be closed.",
          "enum": [
            "WHITEIN",
            "BLACKOUT",
            "UNPAUSE",
            "AVAILABLE",
            "UNAVAILABLE",
            "AVAILABLE",
            "UNAVAILABLE"
          ]
        },
        "metadata": {
          "$ref": "#/$defs/ScheduleOverrideMetadata"
        },
        "local_start_time": {
          "type": "string",
          "description": "The time in the merchant's timezone when the override duration starts.",
          "format": "date-time"
        },
        "local_end_time": {
          "type": "string",
          "description": "The time in the merchant's timezone when the override duration ends.",
          "format": "date-time"
        },
        "start_time_utc": {
          "type": "string",
          "description": "The UTC time when the override duration starts.",
          "format": "date-time"
        },
        "end_time_utc": {
          "type": "string",
          "description": "The UTC time when the override duration ends.",
          "format": "date-time"
        }
      },
      "description": "Schedule Override for a merchant. Schedule overrides are ad hoc modifications to a merchant's normal hours of operation on Grubhub."
    },
    "RepeatingSchedule": {
      "required": [
        "external_id",
        "name",
        "rules"
      ],
      "type": "object",
      "properties": {
        "external_id": {
          "type": "string",
          "description": "The merchant-set ID for this schedule, which can be used to link it in the `PosNormalizedMenu`."
        },
        "name": {
          "type": "string",
          "description": "The display name for this schedule, e.g. \"Sunday Brunch\""
        },
        "type": {
          "type": "string",
          "description": "How often this schedule repeats. Currently the only valid value is \"WEEKLY\".",
          "enum": [
            "WEEKLY"
          ]
        },
        "rules": {
          "type": "array",
          "description": "A set of non-overlapping time periods.",
          "items": {
            "$ref": "#/$defs/RepeatingScheduleRule"
          }
        }
      },
      "description": "Information about a weekly schedule during which a menu item may be made available. Typical usages include Breakfast, Lunch, Dinner, Weekend Brunch, etc."
    },
    "RepeatingScheduleMetadata": {
      "required": [
        "source"
      ],
      "type": "object",
      "properties": {
        "created_by": {
          "type": "string",
          "description": "The creator of the schedule"
        },
        "updated_by": {
          "type": "string",
          "description": "The last credential to update the schedule"
        },
        "created_date": {
          "type": "string",
          "description": "The creation date of the schedule",
          "format": "date-time"
        },
        "updated_date": {
          "type": "string",
          "description": "The last update date of the schedule",
          "format": "date-time"
        },
        "legacy_id": {
          "type": "string",
          "description": "The legacy ID of the schedule in MySQL"
        },
        "description": {
          "type": "string",
          "description": "The description for the schedule"
        },
        "source": {
          "type": "string",
          "description": "The source of the creation or update of the repeating schedule"
        }
      },
      "description": "The metadata associated to a specific repeating schedule"
    },
    "RepeatingScheduleRule": {
      "required": [
        "end_time",
        "start_time"
      ],
      "type": "object",
      "properties": {
        "days": {
          "uniqueItems": true,
          "type": "array",
          "description": "Days of the week for which the time period applies. Must be one of [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]",
          "items": {
            "type": "string",
            "description": "Days of the week for which the time period applies. Must be one of [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]",
            "enum": [
              "MONDAY",
              "TUESDAY",
              "WEDNESDAY",
              "THURSDAY",
              "FRIDAY",
              "SATURDAY",
              "SUNDAY"
            ]
          }
        },
        "start_time": {
          "type": "string",
          "description": "The time when this schedule begins on the days listed, in the merchant's local time. Must conform to ISO date and time format",
          "example": "09:30:00.000"
        },
        "end_time": {
          "type": "string",
          "description": "The time when this schedule ends on the days listed, in the merchant's local time. Must conform to ISO date and time format",
          "example": "22:30:00.000"
        }
      },
      "description": "A time period and repetition rule."
    },
    "RepeatingScheduleRuleInterval": {
      "required": [
        "end_time",
        "start_time"
      ],
      "type": "object",
      "properties": {
        "start_time": {
          "$ref": "#/$defs/LocalTime"
        },
        "end_time": {
          "$ref": "#/$defs/LocalTime"
        }
      }
    },
    "ScheduleOverrideMetadata": {
      "required": [
        "source"
      ],
      "type": "object",
      "properties": {
        "created_by": {
          "type": "string",
          "description": "The creator of the schedule"
        },
        "updated_by": {
          "type": "string",
          "description": "The last credential to update the schedule"
        },
        "created_date": {
          "type": "string",
          "description": "The creation date of the schedule",
          "format": "date-time"
        },
        "updated_date": {
          "type": "string",
          "description": "The last update date of the schedule",
          "format": "date-time"
        },
        "legacy_id": {
          "type": "string",
          "description": "The legacy ID of the schedule in MySQL"
        },
        "description": {
          "type": "string",
          "description": "The description for the schedule"
        },
        "source": {
          "type": "string",
          "description": "The source of the creation or update of the schedule override"
        }
      },
      "description": "The metadata associated to a specific schedule override"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/grubhub-posfullschedule"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.