10 Add an Item 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. A customer usually decides the menu for an event after the booking process has already occurred and communicates the choice to the partner a few weeks prior to the event happening. This topic describes the steps to search for an event using the REST APIs, and describes how to add an item to an event that has already been created in the application. An item could be audio visual equipment, such as an LCD projector or teleprompters, or it could be an additional setup, such as a stage and a podium.
The below workflow diagram explains the typical use cases for adding a menu to an event.
Customer — The meeting planner has chosen the item to add to their meeting setup for next week.
Partner — The partner communicates the customer's selection to the property so the item can be added to the event.
OPERA Cloud — The application looks for the specific event, returns the event ID, adds the item selected, and returns the event with the item added.
Figure 10-1 Workflow Diagram

Prerequisites
Table 10-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 10-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 10-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 an event using getEvents.
- Multiple search parameters are available, for example, dates, status, event type, and other parameters.
- Search for an Item using getInventoryItem.
- In this specific scenario, the customer has provided the name of the item to add to the event.
- Add the Item to the event using putEventsResources.
- The Item is added as configured. Pricing, number of items, 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",
"eventIndicators": [
{
"indicatorName": "REVENUE",
"count": 3
}
]
}
],
"totalPages": 1,
"offset": 100,
"limit": 100,
"hasMore": false,
"totalResults": 1
},
"links": []
}
Sample for getInventoryItem (slide projector)
Search for Item
GET{{HostName}}/evm/config/v1/hotels/{{HotelId}}/inventoryItems?usedForEvents=true&itemName=slide+projector
Sample Response:
{
"items": [
{
"hotelId": "BHOTEL",
"itemId": {
"id": "39059",
"type": "ItemInventoryId"
},
"itemClassId": {
"id": "24278",
"type": "ItemClassId"
},
"itemClassCode": "81",
"itemClassDescription": "Audio Visual Equipment",
"itemName": {
"defaultText": "Slide Projector",
"translatedTexts": [
{
"value": "Dia-Projektor",
"language": "DE"
},
{
"value": "Rétro-projecteur",
"language": "F"
}
]
},
"itemDescription": "Slide Projector",
"itemCode": "S39059",
"revenueType": "AVEQ",
"revenueTypeEditable": true,
"externalOrder": false,
"print": true,
"sellInfo": {
"available": {},
"availableQty": 0,
"qtyInStock": 3,
"defaultQty": 1,
"sellSeparate": false,
"sellControl": false,
"welcomeOffer": true,
"webBookable": false,
"itemClassWebBookable": false,
"outsideStay": false,
"fixedCharge": false,
"discountable": true,
"itemClassDiscountable": true,
"criticalInventory": true,
"price": {
"amount": 10
}
},
"tracesPerDay": false,
"displaySequence": 15,
"eventTypes": [
"AFT",
"BKO",
"BRK",
"BRKFT",
"BRKFTB",
"BRKFTP",
"CKT",
"COF",
"DD",
"DIN",
"DINB",
"DINP",
"EVT1",
"EVT2",
"EVT3",
"KOF",
"LIZ",
"LIZ2",
"LONG",
"LUN",
"LUNB",
"LUNP",
"MTG",
"NOTMEMTG",
"NYHTFDRG",
"REC",
"RECP",
"SEM",
"WED",
"WEDC",
"WEDDB",
"WEDDP"
],
"departments": [],
"attributes": [],
"rates": [
{
"itemRateId": {
"id": "31860",
"type": "ItemRateId"
},
"itemRateCode": "DAY",
"name": "Per Day",
"price": {
"amount": 200
},
"hourly": false,
"default": true
},
{
"itemRateId": {
"id": "90597",
"type": "ItemRateId"
},
"itemRateCode": "COMP",
"name": "Complimentary",
"price": {},
"hourly": false,
"default": false
}
],
"vendors": [],
"resourceNotes": [],
"itemClassDisplaySequence": 8,
"usedForEvents": true,
"usedForReservation": false,
"itemFromTemplate": false
}
]
Sample for putEventsResources
Add the Menu
PUT{{HostName}}/evm/v1/eventsResources
Body:
{
"eventItems": {
"eventItemInfo": [
{
"eventItem": {
"quantity": "1",
"externalOrder": false,
"hotelId": "BHOTEL",
"itemId": {
"type": "ItemInventoryId",
"id": "134562"
}
}
}
],
"includedInPackage": false,
"critical": false
},
"eventDetails": [
{
"eventPrimaryInfo": {
"eventId": {
"type": "EventId",
"id": "610375"
},
"hotelId": "BHOTEL"
},
"eventBlockInfo": {
"blockIdList": [
{
"type": "Block",
"id": "875435"
}
],
"markAsRecentlyAccessed": false
}
}
]
}
References
-
For more information, refer to the Events topic in the OPERA Cloud Services user guide.