9 Add a Catering Menu to an Event
Business Context
Events require many levels of organization including: booking a function space for the event, creating a food and beverage menu, and making sure all other resources needed for the event are available. To add a Catering Menu to an event, you must search for an event first. This topic describes the steps to search for an event using the REST APIs, and describes how to add a Catering Menu.
The below workflow diagram explains the typical use cases for adding a Catering Menu to an event.
Customer — The meeting planner who has selected a Catering Menu for the VIP group coming to the property for a one day meeting.
Partner — The partner communicates with the property the customer's choice so the Catering Menu can be added to the event.
OPERA Cloud — The application looks for the specific event, returns the event ID, adds the selected Catering Menu, and returns the event with the Catering Menu added.
Figure 9-1 Workflow Diagram

Prerequisites
Table 9-1 Required Software Tools
Tool | Description | Links |
---|---|---|
Postman |
Postman is an API Platform that allows you to design, create and test API's. Use Postman to send API requests or to use the Postman collections provided. |
Table 9-2 Current Versions Required
OPERA Cloud Platform Module | Description | Minimum Version |
---|---|---|
OPERA Cloud Services |
The customer must have a subscription to OPERA Cloud Foundation |
|
Oracle Hospitality Integration Platform (OHIP) |
For customers, OHIP is included in the subscription to OPERA Cloud Foundation. Partners need a subscription to the Oracle Hospitality Integration Cloud Service. |
Configuration of OPERA Controls
To activate the Create Block functionality, you must ensure the following OPERA Controls are active in the target property. You can use the following API operations to validate the settings:
Ensure that application function BLOCKS - BUSINESS BLOCK is active
RQ: ent/config/v1/settings?hotelId={{HotelId}}¶meterNameWildCard=BUSINESS BLOCK
Ensure that application function EVENTS - CATERING EVENTS is active
RQ: ent/config/v1/settings?hotelId={{HotelId}}¶meterNameWildCard=CATERING EVENTS
Ensure that application function EVENTS - EVENT RESOURCES is active
RQ: ent/config/v1/settings?hotelId={{HotelId}}¶meterNameWildCard=EVENT RESOURCES
Workflow
Step by step solution including:
Figure 9-2 The sequence of API calls (in any direction)

Description of Steps
A typical process to add a menu to an event is as follows:
- Search for events using getEvents
- Multiple search parameters are available for example dates, status, event type, and other parameters.
- Search for a menu using getCateringMenus
- In this specific scenario, the customer has provided you the menu name, so the search has been narrowed by name.
- Add the Catering Menu to the event using putEventsResources
- The Catering Menu is added as configured, pricing, number of attendees, and other details cannot be modified during this operation. If changes are required, see the appropriate section in this user guide.
Sample calls: Sample API calls for steps described in the diagram.
Sample for getEvents
Search for Event
GET{{HostName}}/evm/v1/events?eventStartDate=2023-12-12&eventEndDate=2023-12-12&eventStatusCodes=DEF&hotelIds={{HotelId}}&eventTypeCodes=MTG
Sample Response
{
"eventSummaries": {
"eventSummary": [
{
"eventId": {
"type": "EventId",
"idContext": "OPERA",
"id": "610375"
},
"blockIdList": [
{
"id": "875435",
"type": "Block"
}
],
"blockName": "STEST - Wait 1",
"attendees": 20,
"functionSpaceDetails": {
"code": "ANNA",
"description": "Annapolis Room"
},
"functionSpaceSetup": {
"code": "BQ10",
"description": "Banquets 10 Chairs"
},
"eventStatus": {
"status": {
"code": "DEF",
"description": "Definite"
},
"color": "Red"
},
"cateringStatusDeductInventory": true,
"cateringStatusReturnToInventory": false,
"setupTime": 30,
"tearDownTime": 30,
"masterEvent": false,
"subEvent": false,
"packageEvent": false,
"alternateEvent": false,
"displayDoorCard": true,
"doorCard": "STEST - Wait",
"excludeFromForecast": false,
"useForecastRevenue": true,
"minimumOccupancy": 5,
"maximumOccupancy": 60,
"loudEvent": false,
"rentalCode": "CUSTOM",
"eventShared": false,
"shareable": false,
"includeSpaceInPackage": false,
"hotelId": "BHOTEL",
"blockHotelCode": "BHOTEL",
"hasPostings": false,
"blockHasPostings": false,
"hasPartialPostings": false,
"allPosted": false,
"nothingPosted": false,
"eventStartDate": "2023-12-12 09:00:00.0",
"eventEndDate": "2023-12-12 17:00:00.0",
"type": "MTG",
"eventName": "Meeting Wait 1",
"cateringCurrency": "USD",
"cateringQuotedCurrency": "USD"
}
],
"totalPages": 1,
"offset": 200,
"limit": 200,
"hasMore": false,
"totalResults": 1
},
"links": []
}
Sample for getCateringMenus
Search for Menu
GET{{HostName}}/evm/config/v1/hotels/{{HotelId}}/cateringMenus?name=briyani&eventTypesCodes=BRK
Sample Response:
{
"menuList": [
{
"id": {
"id": "111276"
},
"classId": "53812",
"hotelId": "BHOTEL",
"info": {
"className": "Buffet Breakfast Menus",
"name": {
"defaultText": "Briyani",
"translatedTexts": []
},
"dietaryList": [],
"eventTypes": [],
"type": "Food",
"quickInsertCode": "111276",
"servingType": "Pp",
"servingSize": "",
"includedInMenu": false,
"consumptionBased": false,
"menusSold": 0,
"webBookable": false,
"inactive": false,
"salesPrice": {
"amount": 33
},
"multiChoice": false
}
}
],
"totalPages": 1,
"offset": 20,
"limit": 20,
"hasMore": false,
"totalResults": 1,
"links": []
}
Sample for putEventsResources
Add the Catering Menu
PUT{{HostName}}/operarest/{schemamap}/evm/v1/eventsResources
Body:
{
"eventDetails": [
{
"eventPrimaryInfo": {
"eventId": {
"type": "EventId",
"idContext": "OPERA",
"id": "610375"
},
"hotelId": "BHOTEL"
},
"eventBlockInfo": {
"blockIdList": [
{
"type": "Block",
"idContext": "OPERA",
"id": "875435"
}
],
"markAsRecentlyAccessed": false
}
}
],
"eventMenus": {
"eventMenuInfo": [
{
"eventMenu": {
"basicInfo": {
"menuId": {
"type": "MenuId",
"idContext": "OPERA",
"id": "111276"
},
"hotelId": "BHOTEL",
"multiChoice": false
}
}
}
],
"includedInPackage": false,
"critical": false
}
}
Limitations and Constraints
The customer has to provide an event ID in order for the partner to find the correct event to add the Catering Menu. Likewise, the Catering Menu name and/or menu ID has to be provided to the partner in order to add the correct one to the event.
References
-
For more information, refer to the Events topic in the OPERA Cloud Services user guide.