Skip to content

Create a new schedule item

POST
/api/managing-entity/{managingEntityIdentifier}/extranet/schedule/{inventoryIdentifier}
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/extranet/schedule/9c2e7f1a-4b8d-4e3c-a5f6-2d9b1e0c7a43 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "attendees": 2, "bookingIdentifier": "f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92", "end": "2026-02-15T15:30:00", "endTimezone": "Asia/Bangkok", "isAllDay": true, "recurrenceException": [ "2026-02-16T14:00:00", "2026-02-18T14:00:00" ], "recurrenceId": "a2d5f8b1-1c4e-4d7a-8b3f-2e9a0c6b5d41", "recurrenceRule": "FREQ=DAILY;COUNT=5", "start": "2026-02-15T14:00:00", "startTimezone": "Asia/Bangkok", "type": "MEETING_ROOM" }'

Creates a new calendar item (schedule event) for a piece of inventory such as a meeting room, restaurant, spa, activity, attraction or place. The item is persisted and returned with a generated identifier. Supports recurring events via the recurrenceRule parameter.

managingEntityIdentifier
required
string

Identifier of the managing entity (property/company) that owns the inventory

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
inventoryIdentifier
required
string

Identifier of the travel inventory to create a schedule item for

Example
9c2e7f1a-4b8d-4e3c-a5f6-2d9b1e0c7a43
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Schedule item details including title, start and end times, timezone, attendee count, and optional recurrence rule for repeating events

Media typeapplication/json

Request body for creating a new calendar schedule item on a travel inventory such as a meeting room, restaurant, spa, activity, attraction, or place.

object
attendees
required

Number of guests or attendees for this event. Must be at least 1.

integer format: int32
default: 1 >= 1
Example
2
bookingIdentifier
required

Identifier of the booking this scheduled event is associated with.

string format: uuid
>= 1 characters
Example
f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92
end
required

End date and time of the scheduled event in ISO-8601 format.

string format: date-time
Example
2026-02-15T15:30:00
endTimezone
required

Timezone identifier for the end time, using IANA time zone database format (e.g., Asia/Bangkok, America/New_York).

string
>= 1 characters
Example
Asia/Bangkok
isAllDay
required

Flag indicating whether this is an all-day event (no specific time). If true, time portions of start and end are ignored.

boolean
Example
true
recurrenceException

List of date-times that are exceptions to the recurrence rule (dates when the recurring event does not occur).

Array<string>
Example
[
"2026-02-16T14:00:00",
"2026-02-18T14:00:00"
]
recurrenceId

Identifier of the parent recurring event. Used when this instance is part of a recurring series.

string format: uuid
Example
a2d5f8b1-1c4e-4d7a-8b3f-2e9a0c6b5d41
recurrenceRule

Recurrence rule in iCalendar format (RFC 5545). If present, this event repeats according to the rule. For details see iCalendar specification. Null for non-recurring events.

string
Example
FREQ=DAILY;COUNT=5
start
required

Start date and time of the scheduled event in ISO-8601 format.

string format: date-time
Example
2026-02-15T14:00:00
startTimezone
required

Timezone identifier for the start time, using IANA time zone database format (e.g., Asia/Bangkok, America/New_York).

string
>= 1 characters
Example
Asia/Bangkok
type
required

Type of travel inventory (e.g., meeting room, restaurant, spa, activity, attraction, place).

string
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
Example
MEETING_ROOM
Example
{
"attendees": 2,
"bookingIdentifier": "f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92",
"end": "2026-02-15T15:30:00",
"endTimezone": "Asia/Bangkok",
"isAllDay": true,
"recurrenceException": [
"2026-02-16T14:00:00",
"2026-02-18T14:00:00"
],
"recurrenceId": "a2d5f8b1-1c4e-4d7a-8b3f-2e9a0c6b5d41",
"recurrenceRule": "FREQ=DAILY;COUNT=5",
"start": "2026-02-15T14:00:00",
"startTimezone": "Asia/Bangkok",
"type": "MEETING_ROOM"
}

Schedule item created successfully

Media typeapplication/json

Lightweight projection of a calendar schedule item representing a reservation or event on a travel inventory such as a meeting room, restaurant, spa, activity, attraction, or place.

object
address

Venue address

object
address1

Address line 1

string
address2

Address line 2

string
city

City name

string
country

Country

string
countryCode

Country

string
/^[A-Z]{2}$/
county

County

string
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
postalCode

Postal / zip code

string
state

State

string
allDay
boolean
attendees

Number of guests attending this event.

integer format: int32
default: 1
bookingIdentifier

Booking identifier that this scheduled event is associated with.

string format: uuid
bookingOwnerIdentifier

Identifier of the managing entity (company/organization) that owns this schedule item.

string format: uuid
brandName

Brand name to display in event notification emails and headers.

string
contact

Venue contact person

object
email

Contact E-mail

string format: email
firstName

Contact first name

string
fullName

First and last name

string
lastName

Contact last name

string
phoneNumber

Contact phone number

string
/^\+?[1-9]\d{1,14}$/
secondaryEmail

Contact secondary Email

string format: email
summary

Summary

string
created

Timestamp when this schedule item was created, in ISO-8601 format.

string format: date-time
createdDate

Datetime this record was first created

string | null format: date-time
description

Description of scheduled event.

string
email

Email address of the person who scheduled or is managing this event.

string format: email
emailHeaderLogoUrl

URL of the logo image to display in event notification email headers. Typically a Cloudinary CDN URL.

string format: uri
end

End date and time of scheduled event in ISO-8601 format.

string format: date-time
endTimezone

Timezone identifier for the end time, using IANA time zone database format (e.g., Asia/Bangkok, America/New_York).

string
firstName

First name of the person who scheduled or is managing this event.

string
fullName

Full name of the person who scheduled or is managing this event.

string
hotelIdentifier

Identifier of the property (hotel) that owns the travel inventory.

string format: uuid
id

Unique identifier for this record.

string format: uuid
isAllDay

Flag indicating whether this is an all day event.

boolean
language

ISO 639-1 language code for the user’s preferred language in notifications (e.g., en, th, de).

string
/^[a-z]{2}(-[A-Z]{2})?$/
lastModified

Timestamp when this schedule item was last modified, in ISO-8601 format.

string format: date-time
lastName

Last name of the person who scheduled or is managing this event.

string
lastUpdate

Datetime this record was last updated

string | null format: date-time
localizedVenueName

Localized (translated) name of the venue in the local language.

string
logoIdentifier

Cloudinary identifier for the logo image, used for referencing and potential reuse across notifications.

string
ownerIdentifier

Unique identifier of the travel inventory (meeting room, restaurant, spa, activity, etc.) that owns this schedule item.

string format: uuid
recurrenceException

List of date-times that are exceptions to the recurrence rule (dates when the recurring event does not occur).

Array<string>
recurrenceId

Identifier of the parent recurring event. Used when this instance is part of a recurring series.

string format: uuid
recurrenceRule

Recurrence rule in iCalendar format (RFC 5545). If present, indicates this is a recurring event. Null for non-recurring events. For details see iCalendar specification.

string
sequence

Schedule event recurring sequence

integer format: int64
0
start

Start date and time of scheduled event in ISO-8601 format.

string format: date-time
startTimezone

Timezone identifier for the start time, using IANA time zone database format (e.g., Asia/Bangkok, America/New_York).

string
title

Title of scheduled event.

string
type

The type of travel inventory.

string
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
venueName

Name of the venue where the scheduled event takes place.

string
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
Example
{
"address": {
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"city": "Bangkok",
"country": "United States",
"countryCode": "TH",
"county": "Alameda county",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States",
"postalCode": "90210",
"state": "CA"
},
"attendees": 2,
"bookingIdentifier": "f4d1c8e5-2b9a-4f3d-9e7c-1b6a5d3f8c92",
"bookingOwnerIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"brandName": "The Siam Residences",
"contact": {
"email": "[email protected]",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"lastName": "Beaumont",
"phoneNumber": "+12125551212",
"secondaryEmail": "[email protected]",
"summary": "John Smith ([email protected] / +12125551212)"
},
"created": "2026-01-14T09:30:00",
"createdDate": "2026-01-14T09:30:00",
"description": "Reservation for Jane Doe - 2 PAX",
"email": "[email protected]",
"emailHeaderLogoUrl": "https://res.cloudinary.com/wink/image/upload/v1/branding/the-siam-residences-logo.png",
"end": "2026-02-15T15:30:00",
"endTimezone": "Asia/Bangkok",
"firstName": "Alexandra",
"fullName": "Alexandra Beaumont",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"isAllDay": true,
"language": "en",
"lastModified": "2026-02-03T16:45:12",
"lastName": "Beaumont",
"lastUpdate": "2026-02-03T16:45:12",
"localizedVenueName": "ห้องอาหารหลัก",
"logoIdentifier": "the-siam-residences-logo",
"ownerIdentifier": "9c2e7f1a-4b8d-4e3c-a5f6-2d9b1e0c7a43",
"recurrenceException": [
"2026-02-16T14:00:00",
"2026-02-18T14:00:00"
],
"recurrenceId": "a2d5f8b1-1c4e-4d7a-8b3f-2e9a0c6b5d41",
"recurrenceRule": "FREQ=DAILY;COUNT=5",
"sequence": 0,
"start": "2026-02-15T14:00:00",
"startTimezone": "Asia/Bangkok",
"title": "Jane Doe +1",
"type": "MEETING_ROOM",
"venueName": "The Siam Residences Dining Hall",
"version": 3
}

Bad Request — missing or invalid request parameter or body

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unauthorized — authentication is required or the session has expired

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Forbidden — authenticated but lacking the required permission or scope

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Not Found — the requested resource does not exist

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Unsupported Media Type — use application/json

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Internal Server Error — an unexpected failure occurred on the server

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}

Service Unavailable — a downstream dependency is unreachable

Media typeapplication/problem+json
object
detail
string
instance
string format: uri
properties
object
key
additional properties
status
integer format: int32
title
string
type
string format: uri
Examplegenerated
{
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
},
"status": 1,
"title": "example",
"type": "https://example.com"
}