WSD Recurring Reservation API

concept brazil Updated Sep 10, 2026 48 min read wsd_recur_reserv-api.md
Raw file servicenow.com

The Workplace Service Delivery (WSD) Recurring Reservation API provides endpoints for managing reservations that occur at the same time, but have different dates.

To access this API, the caller must have the sn_wsd_core.workplace_user role and the Workplace Safety Management (sn_wsd_core) and Workplace Reservation Management (sn_wsd_rsv) plugins must be activated.

This API runs in the sn_wsd_rsv namespace.

For additional information on Workplace Reservation Management, see Workplace Reservation Management.

Parent Topic:REST API reference

WSD Recurring Reservation - GET /api/sn_wsd_rsv/recurring_reservation/list/{parent_id}

Returns the specified recurring reservation.

If more than six recurring meeting occurrences are available for the reservation, you can paginate through the occurrences using the query parameters. You can also specify occurrence records not to return.

URL format

Versioned URL: /api/sn_wsd_rsv/{api_version}/recurring_reservation/list/{parent_id}

Default URL: /api/sn_wsd_rsv/recurring_reservation/list/{parent_id}

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

parent_id

Sys_id of the recurring parent reservation record.When a recurring reservation is created, one recurring parent record and one or more child reservation records are created. Reservation records contain a field called reservation_subtype, that indicates the type of reservation record. For recurring parent records, this field is set to "Recurring parent". For child records, this field is set to "Occurrence".

Within a child record, the sys_id of the associated recurring parent record is in the source_reservation field.

Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

Name

Description

end_index

When paginating through a recurring record set, the zero-based record number at which to stop returning occurrence records.Note: If the number of recurring occurrences is less than six the endpoint returns all of the occurrences, otherwise it returns the first six occurrences. To retrieve the occurrences beyond six, you must pass the end_index parameter accordingly.

Data type: Number

occurrence_sys_id

Sys_id of an occurrence record in the recurring series not to return.Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

start_index

When paginating through a recurring record set, the zero-based record number at which to start returning occurrence records.Data type: Number

Default: 0

|Name|Description| |----|-----------| |None| |

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header

Description

Accept

Data format of the request body. Supported types: application/json, application/xml or, text/xml. Default: application/json

|Header|Description| |------|-----------| |None| |

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code Description
200 Successful. The request was successfully processed.
401 Unauthorized. The user credentials are incorrect or have not been passed.
404 Not found. The requested item wasn't found.
500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

Response body parameters

Name

Description

result

Return results for the requested recurring reservation.Data type: Object

Text
"result": {  "occurencesTotalCount": "String",  "reservation": {Object}}

result.occurencesTotalCount

Total number of meeting occurrences in the recurring series.Data type: String

result.reservation

Details about the requested recurring reservation.Data type: Object

CSS
"reservation": {  "active": Boolean,  "attendees": [Array],  "check_in_state": {Object},  "edit_restriction": {Object},  "end": "String",  "external_ical": "String",  "external_id": "String",  "is_parent": Boolean,  "last_updated_sub_source": {Object},  "location": {Object},  "notification_custom_message": "String",  "notification_recipients": [Array],  "number": "String",  "number_of_attendees": Number,  "opened_by": {Object},  "recording_details": [Array],  "recurring_pattern": {Object},  "requested_for": {Object},  "reservable_module": {Object},  "sensitivity": {Object},  "shift": {Object},  "source": {Object},  "source_icon": {Object},  "source_reservation": {Object},  "source_reservation_requester": {Object},  "start": "String",  "state": {Object},  "subject": "String",  "sub_source": {Object},  "sync_state": {Object},  "sys_created_on": "String",  "sys_id": "String",  "sys_updated_on": "String",  "virtual_meeting": "String"}

result.reservation.active

Flag that indicates whether the reservation is active.Valid values:

  • true: Reservation is active.
  • false: Reservation is inactive.

Data type: Boolean

result.reservation.attendees

List of attendees for the reservation.Data type: Array of Objects

JSON
"attendees": [  {    "avatar": "String",    "displayValue": "String",    "display_value": "String",    "email": "String",    "initials": "String",    "label": "String",    "name": "String",    "sys_id": "String",    "table": "String",    "user_name": "String",    "value": "String"  }]

result.reservation.attendees.avatar

Sys_id of the avatar associated with the attendee.Data type: String

Table: Attachments [sys_attachment]

result.reservation.attendees.displayValue

Display value for the attendee.Data type: String

result.reservation.attendees.display_value

Display value of the attendee. Same as displayValue.Data type: String

result.reservation.attendees.email

Attendee's email address.Data type: String

result.reservation.attendees.initials

Attendee's initials.Data type: String

result.reservation.attendees.name

Attendee's name.Data type: String

result.reservation.attendees.sys_id

Sys_id of the attendee record.Data type: String

result.reservation.attendees.table

Table in which the attendee record exists.Data type: String

result.reservation.attendees.user_name

Attendee's user name.Data type: String

result.reservation.attendees.value

Internal value of the attendee.Data type: String

result.reservation.check_in_state

Details about the check-in state of the reservation.Data type: Object

Text
"check_in_state": {  "display_value": "String",  "value": "String"}

result.reservation.check_in_state.​display_value

Display value for the current check-in state of the reservation, such as In progress or complete.Data type: String

result.reservation.check_in_state.value

Internal value for the current check-in state of the reservation, such as 2.Data type: String

result.reservation.edit_restriction

Description of the user edit restrictions for the reservation, such as no_restrictions, service_only, or fully_restricted.Data type: Object

Text
"edit_restriction": {  "display_value": "String",  "value": "String"}

result.reservation.edit_restriction.display_​value

Display value for the edit restrictions for the reservation, such as No restriction.Data type: String

result.reservation.edit_restriction.value

Internal value for the edit restrictions for the reservation, such as no_restriction.Data type: String

result.reservation.end

Reservation end date and time.Data type: String

Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.reservation.external_ical

Unique external iCalendar identification of the reservation. Use this value to identify the reservation when this is a calendar sync related reservation.Data type: String

result.reservation.external_id

Unique external identification of the reservation. Use this value to identify the reservation when this is a calendar sync related reservation.Data type: String

result.reservation.is_parent

Flag that indicates whether this reservation is a parent reservation.Possible values:

  • true: Parent reservation.
  • false: Not a parent reservation.

Data type: Boolean

result.reservation.last_updated_sub_source

Details about the last updated sub-source for the reservation. Sub-sources are used when integrating reservations with an external calendar. This object contains information such as "servicenow_workplace_service_delivery", "google_calendar", or "microsoft_exchange".Data type: Object

Text
"last_updated_sub_source": {  "display_value": "String",  "value": "String"}

result.reservation.last_updated_sub_source.​display_value

Display value for the last updated sub-source of the reservation, such as ServiceNow Workplace Service Delivery or Google Calendar. Used when integrating the reservation with an outside service such as Google calendar or Microsoft Outlook.Data type: String

result.reservation.last_updated_sub_source.​value

Internal value for the last updated sub-source of the reservation, such as servicenow_workplace_service_delivery or google_calendar. Used when integrating the reservation with an outside service such as Google calendar or Microsoft Outlook.Data type: String

result.reservation.location

Details about the location associated with the reservation.Data type: Object

CSS
"location": {  "area": {Object},  "building": {Object},  "campus": {Object},  "capacity": Number,  "description": "String",  "display_value": "String",  "email": "String",  "floor": {Object},  "label_value": "String",  "name": "String",  "number": "String",  "number_of_attendees": Boolean,  "region": {Object},  "requested_for": {Object},  "reservable_module": {Object},  "reservation": {Object},  "site": {Object},  "state": {Object},  "sys_id": "String"}

result.reservation.location.area

Details about the area associated with the location.Data type: Object

JavaScript
"area": {  "active": Boolean,  "display_value": "String",  "sys_id": "String"}

result.reservation.location.area.active

Flag that indicates whether the area is active.Valid values:

  • true: Area is active.
  • false: Area is inactive.

Data type: Boolean

result.reservation.location.area.display_value

Display value of the area to which this location belongs, such as Desk A2.Data type: String

result.reservation.location.area.sys_id

Sys_id of the area to which this location belongs.Data type: String

Table: Area [sn_wsd_core_area]

result.reservation.location.building

Details about the building associated with the location.Data type: Object

JavaScript
"building": {  "active": Boolean,  "display_value": "String",  "sys_id": "String",  "timezone": {Object}}

result.reservation.location.building.active

Flag that indicates whether the building is active.Valid values:

  • true: Building is active.
  • false: Building is inactive.

Data type: Boolean

result.reservation.location.building.​display_value

Display value of the building to which this location belongs, such as AMS - Bld1.Data type: String

result.reservation.location.building.sys_id

Sys_id of the building to which this location belongs.Data type: String

Table: Building [sn_wsd_core_building]

result.reservation.location.building.timezone

Details of the time zone for the building.Data type: Object

Text
"timezone": {  "displayValue": "String",  "value": "String"}

result.reservation.location.building.timezone.​display_value

Display value of the time zone in which the associated building resides.Data type: String

result.reservation.location.building.timezone.​value

Internal value for the time zone to which this location belongs.Data type: String

result.reservation.location.campus

Details about the campus associated with the location.Data type: Object

JavaScript
"campus": {  "active": Boolean,  "display_value": "String",  "sys_id": "String"}

result.reservation.location.campus.active

Flag that indicates whether the campus is active.Valid values:

  • true: Campus is active.
  • false: Campus is inactive.

Data type: Boolean

result.reservation.location.campus.​display_value

Display value of the campus to which this location belongs, such as Amsterdam Campus.Data type: String

result.reservation.location.campus.sys_id

Sys_id of the campus to which this location belongs.Data type: String

Table: Campus [sn_wsd_core_campus]

result.reservation.location.capacity

Maximum number of occupants for the location.Data type: Number

result.reservation.location.description

Brief description of the location.Data type: String

result.reservation.location.display_value

Value to display in the UI for this location.Data type: String

result.reservation.location.email

Email address for the location.Data type: String

result.reservation.location.floor

Details about the floor associated with the location.Data type: Object

JavaScript
"floor": {  "active": Boolean,  "display_value": "String",  "sys_id": "String"}

result.reservation.location.floor.active

Flag that indicates whether the floor is active.Valid values:

  • true: Floor is active.
  • false: Floor is inactive.

Data type: Boolean

result.reservation.location.floor.display_value

Display value of the floor to which this location belongs, such as First floor.Data type: String

result.reservation.location.floor.sys_id

Sys_id of the floor to which this location belongs.Data type: String

Table: Floor [sn_wsd_core_floor]

result.reservation.location.label_value

Type of value specified in the name parameter, such as Room name.Data type: String

result.reservation.location.name

Name of the location.Data type: String

result.reservation.location.number

Reservation number.Data type: String

result.reservation.location.number_of_​attendees

Number of attendees for the reservation.Data type: Number

result.reservation.location.reservable_module

Details about the reservable module associated with the reservation.Data type: Object

JSON
"reservable_module": {  "inline_title": "String",  "name": "String",  "sys_id": "String",  "title": "String"}

result.reservation.location.reservable_module.​inline_title

Inline title of the reservable module. The title appears in line with the descriptive text on the Workplace service portal.Data type: String

result.reservation.location.reservable_module.​name

Name of the reservable module.Data type: String

result.reservation.location.reservable_module.​sys_id

Sys_id of the reservable module.Data type: String

result.reservation.location.reservable_module.​title

Title of the reservable module.Data type: String

result.reservation.location.region

Details about the region associated with the location.Data type: Object

JavaScript
"region": {  "active": Boolean,  "display_value": "String",  "sys_id": "String"}

result.reservation.location.region.active

Flag that indicates whether the region is active.Valid values:

  • true: Region is active.
  • false: Region is inactive.

Data type: Boolean

result.reservation.location.region.​display_value

Display value of the region to which this location belongs, such as Europe.Data type: String

result.reservation.location.region.sys_id

Sys_id of the region to which this location belongs.Data type: String

Table: Region [sn_wsd_core_region]

result.reservation.location.reservation

Details about the reservation associated with the location.Data type: Object

JavaScript
"reservation": {  "active": Boolean,  "number": "String",  "number_of_attendees": Number,  "requested_for": {Object},  "state": {Object},  "sys_id": "String"}

result.reservation.location.reservation.active

Flag that indicates whether the reservation is active.Valid values:

  • true: Reservation is active.
  • false: Reservation is inactive.

Data type: Boolean

result.reservation.location.reservation.number

Reservation number.Data type: String

result.reservation.location.reservation.​number_of_attendees

Number of attendees of the reservation.Data type: Number

result.reservation.location.reservation.​requested_for

Details about the person for whom the reservation was requested on behalf of.Data type: Object

JSON
"requested_for": {  "name": "String",  "sys_id": "String",  "user_name": "String"}

result.reservation.location.reservation.​requested_for.name

Name of the user for whom the reservation was requested for.Data type: String

result.reservation.location.reservation.​requested_for.sys_id

Sys_id of the requested for user.Data type: String

Table: User [sys_user]

result.reservation.location.reservation.​requested_for.user_name

User name of the user for whom the reservation was requested for.Data type: String

result.reservation.location.reservation.​state

Details about the state of the reservation for the location.Data type: Object

Text
"state": {  "display_value": "String",  "value": "String"}

result.reservation.location.reservation.​.state.display_value

Display value for the current state of the reservation, such as confirmed.Data type: String

result.reservation.location.reservation.​.state.value

Internal value for the current state of the reservation, such as 2.Data type: String

result.reservation.location.site

Site to which the location belongs.Data type: Object

JavaScript
"site": {  "active": Boolean,  "display_value": "String",  "sys_id": "String"}

Table: Site [sn_wsd_core_site]

result.reservation.location.site.active

Flag that indicates whether the site is active.Valid values:

  • true: Site is active.
  • false: Site is inactive.

Data type: Boolean

result.reservation.location.site.display_value

Display value of the site to which this location belongs, such as Western Europe.Data type: String

result.reservation.location.site.sys_id

Sys_id of the site to which this location belongs.Data type: String

Table: Site [sn_wsd_core_site]

result.reservation.location.standard_services

Standard available services.Data type: String

result.reservation.location.state

Details about the state of the reservation for the location.Data type: Object

Text
"state": {  "display_value": "String",  "value": "String"}

result.reservation.location.state.display_value

Display value for the current state of the reservation, such as confirmed.Data type: String

result.reservation.location.state.value

Internal value for the current state of the reservation, such as 2.Data type: String

result.reservation.location.sys_id

Sys_id of the associated location record.Data type: String

Table: Workplace Location [sn_wsd_core_workplace_location]

result.reservation.notification_custom_​message

Custom message for the notification sent to the recipients listed in reservation.notification_recipients.Data type: String

result.reservation.notification_recipients

List of recipients that receive notification about the reservation.Data type: Array of Objects

JSON
"notification_recipients":[  {    "name": "String",    "sys_id": "String",    "user_name": "String"  }]

result.reservation.notification_recipients.name

Name of the recipient.Data type: String

result.reservation.notification_recipients.sys_id

Sys_id of the recipient.Data type: String

Table: User [sys_user]

result.reservation.notification_recipients.​user_name

User name of the recipient.Data type: String

result.reservation.number

Unique number of the reservation record. You can use this value to query the reservation.Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

result.reservation.number_of_attendees

Number of attendees in this reservation.Data type: Number

result.reservation.opened_by

Details about the user that created the reservation.Data type: Object

JSON
"opened_by": {  "avatar": "String",  "displayValue": "String",  "display_value": "String",  "email": "String",  "initials": "String",  "label": "String",  "name": "String",  "sys_id": "String",  "table": "String",  "user_name": "String",  "value": "String"}

result.reservation.opened_by.avatar

Avatar for the user that opened the reservation.Data type: String

result.reservation.opened_by.displayValue

Display value of the opened by user.Data type: String

result.reservation.opened_by.display_value

Display value of the opened by user.Data type: String

result.reservation.opened_by.email

Email address for the user that opened the reservation.Data type: String

result.reservation.opened_by.initials

Initials of the user that opened the reservation.Data type: String

result.reservation.opened_by.name

Name of the user that opened the reservation.Data type: String

result.reservation.opened_by.user_name

User name of the user that opened the reservation.Data type: String

result.reservation.opened_by.value

Internal value of the user that opened the reservation.Data type: String

result.reservation.recording_details

Details about the recordings associated with the reservation (meeting).Data type: Array of Objects

Text
"recording_details": [  "recording_url": "String"]

result.reservation.recording_details.​recording_url

URL of the recordings associated with the reservation.Data type: String

result.reservation.recurring_pattern

Details about the recurring pattern for the reservation.Data type: Object

JavaScript
"recurring_pattern": {  "amountOfDates": "String",  "duration": Number,  "label": "String",  "options": {Object},  "repeats": "String",  "startDate":"String",  "startDateGdt": {Object}}

result.reservation.recurring_pattern.​amountOfDates

Number of dates for which the reservables are reserved.Data type: String

result.reservation.recurring_pattern.duration

Length of time to reserve the reservable.

Data type: Number

Unit: Seconds

result.reservation.recurring_pattern.label

Descriptive name for the recurring reservation.Data type: String

result.reservation.recurring_pattern.options

Details about the options associated with the recurring reservation.Data type: Object

JavaScript
"options": {  "count": Number,  "daysOfWeek": "String",  "every": Number,  "endDate": "String"  "endDateGdt": {Object}}

result.reservation.recurring_pattern.options.​count

Number of times to repeat the pattern.

Data type: Number

result.reservation.recurring_pattern.options.​daysOfWeek

Days of the week that the reservable is needed.

Valid values:

  • 1 = Monday
  • 2 = Tuesday
  • 3 = Wednesday
  • 4 = Thursday
  • 5 = Friday
  • 6 = Saturday
  • 7 = Sunday

For example, to specify Tuesday, Thursday, and Friday, pass 245 (no delimiter). If repeats is weekly, count is 5, and daysOfWeek is245, then in the return results, the total is equal to count*daysOfWeek.length (5*3=15).

Data type: String

result.reservation.recurring_pattern.options.​every

Pattern repeat interval. For example, the value '2' indicates that the pattern repeats every 2 days or 2 months depending on the value of the repeats property.Note: This setting is not applicable to weekly repeat intervals. You can set the repeats property to daily and this value to 14 for biweekly repeat intervals.

Data type: Number

Default value: 1

result.reservation.recurring_pattern.options.​endDate

End date and time of the recurrence of the meeting, such as "2022-07-08T14:00:00Z".Data type: String

Format: UTC yyyy-mm-dd hh:mm:ss

result.reservation.recurring_pattern.options.​endDateGdt

End date and time of the recurrence of the meeting.Data type: String

Format: GDT, such as "2022-07-08T14:00:00Z"

result.reservation.recurring_pattern.repeats

Repeating pattern for the reservable.

Valid values: (case-sensitive)

  • daily
  • monthly
  • weekly

Note: The pattern repeat interval is set in the options.every property. The only valid repeat interval for weekly patterns is one.

Data type: String

result.reservation.recurring_pattern.startDate

Start date and time for the recurring pattern, such as "2022-07-08T14:00:00Z".

Data type: String

Format: UTC yyyy-mm-dd hh:mm:ss

result.reservation.recurring_pattern.​startDateGdt

Start date and time for the recurring pattern, such as "2022-07-08T14:00:00Z".

Data type: String

Format: UTC yyyy-mm-dd hh:mm:ss

result.reservation.requested_for

Details about the user that the reservation was made on behalf of.Data type: Object

JSON
"requested_for": {  "avatar": "String",  "displayValue": "String",  "display_value": "String",  "email": "String",  "initials": "String",  "label": "String",  "name": "String",  "sys_id": "String",  "table": "String",  "user_name": "String",  "value": "String"}

result.reservation.requested_for.avatar

Avatar for the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.displayValue

Display value of the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.display_value

Display value of the user that the reservation was made on behalf of. Same as displayValue.Data type: String

result.reservation.requested_for.email

Email address for the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.initials

Initials of the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.label

Label for the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.name

Name of the user that the reservation was made on behalf of.Data type: String

result.rservation.requested_for.sys_id

Sys_id_of the user that the reservation was made on behalf of.Data type: String

Table: User [sys_user]

result.rservation.requested_for.table

Table that contains the user record.Data type: String

result.reservation.requested_for.user_name

User name of the user that the reservation was made on behalf of.Data type: String

result.reservation.requested_for.value

Internal value of the user that the reservation was made on behalf of.Data type: String

result.reservation.reservable_module

Details for the requested reservable module.Data type: Object

JavaScript
"reservable_module": {  "allow_invitees": Boolean,  "allow_whole_day": Boolean,  "apply_to_shift": Boolean,  "browse_by_area_enabled": Boolean,  "browse_near_a_person_enabled": Boolean,  "buildingSysIds": [Array],  "checkin_before_minutes": Number,  "display_number_of_attendees": Boolean,  "display_on_behalf_of": Boolean,  "display_sensitivity": Boolean,  "display_value": "String",  "enable_browse_by_area": Boolean,  "enable_browse_near_a_person": Boolean,  "enable_facet_filter": Boolean,  "enable_group_reservations": Boolean,  "enable_ical_generation": Boolean,  "font_awesome_icon": "String",  "inline_title": "String",        "layout_mapping": {Object},  "max_days_in_future": Number,  "max_occurrences": Number,  "name": "String",  "override_approval_policy": "String",  "require_cancel_notes": Boolean,  "require_cc_dept_check": Boolean,  "require_subject": Boolean,  "reservable_columns": [Array],  "reservable_container_field": "String",  "reservable_filter": "String",  "reservable_quantity_field": "String",  "reservable_table": "String",  "reservable_type": "String",  "reservable_views": [Array],  "reservation_paths": [Array],  "search_limit": Number,  "selection_type": "String",  "short_description": "String",  "show_map_view": Boolean,  "sys_id": "String",  "timeSlots": [Array],  "title": "String",  "virtual_meeting_provider": {Object}}

result.reservation.reservable_module.​allow_invitees

Flag that indicates whether employees are able to add invitees to the reservation. Valid values:

  • true: Allow employees to add invitees to the reservation.
  • false: Don't allow employees to add invitees to the reservation.

Data type: Boolean

result.reservation.reservable_module.​allow_whole_day

Flag that indicates whether users can reserve the reservable for the entire day. Valid values:

  • true: Allow users to reserve for the entire day.
  • false: Don't allow users to reserve for the entire day.

Data type: Boolean

result.reservation.reservable_module.​apply_to_shift

Flag that indicates whether shift-based reservations are enabled for the reservable module. Valid values:

  • true: Allow shift-based reservations.
  • false: Don't allow shift-based reservations.

Data type: Boolean

result.reservation.reservable_module.​browse_by_area_enabled

Flag that indicates whether users are able to search for reservable modules by area.Valid values:

  • true: Allow users to browse reservable modules by area.
  • false: Don't allow users to browse reservable modules by area.

Data type: Boolean

result.reservation.reservable_module.​browse_near_a_person_enabled

Flag that indicates whether users are able to search for reservable modules located by a specified person.Valid values:

  • true: Allow users to browse reservable modules near a person.
  • false: Don't allow users to browse reservable modules near a person.

Data type: Boolean

result.reservation.reservable_module.​buildingSysIds

List of sys_ids of the buildings associated with the reservable module.Data type: Array of Strings

result.reservation.reservable_module.​checkin_before_minutes

Amount of time before a reservation starts that a user can check into their reservation.Unit: Minutes

Data type: Number

result.reservation.reservable_module.​display_number_of_attendees

Flag that indicates whether users can specify the number of attendees in the reservation. Valid values:

  • true: Users can specify the number of attendees.
  • false: Users can't specify the display number of attendees.

Data type: Boolean

result.reservation.reservable_module.​display_on_behalf_of

Flag that indicates whether reservations can be made on behalf of someone else. Valid values:

  • true: On behalf of supported.
  • false: On behalf of not supported.

Data type: Boolean

result.reservation.reservable_module.​display_sensitivity

Flag that indicates whether users can set the sensitivity of the reservation, such as normal or private.Valid values:

  • true: Able to set sensitivity.
  • false: Not able to set sensitivity. Defaults to normal.

Data type: Boolean

result.reservation.reservable_module.​display_value

Display value of the reservable module.Data type: String

result.reservation.reservable_module.​enable_browse_by_area

Flag that indicates whether users are able to search for reservable modules by area. Same as browse_by_area_enabled.Valid values:

  • true: Allow users to browse reservable modules by area.
  • false: Don't allow users to browse reservable modules by area.

Data type: Boolean

result.reservation.reservable_module.​enable_browse_near_a_person

Flag that indicates whether users are able to search for reservable modules located by a specified person. Same asbrowse_near_a_person_enabled.Valid values:

  • true: Allow users to browse reservable modules near a person.
  • false: Don't allow users to browse reservable modules near a person.

Data type: Boolean

result.reservation.reservable_module.​enable_facet_filter

Flag that indicates whether facet filtering on workplace items is enabled. When enabled, the filter options that appear are based on the search results. Only the items that are available in the generated search result are available to users for selection in the filter.Valid values:

  • true: Facet filters are enabled.
  • false: Facet filters aren't enabled.

Data type: Boolean

result.reservation.reservable_module.​enable_group_reservations

Flag that indicates whether users can make a group reservation.Valid values:

  • true: Able to make group reservations.
  • false: Not able to make group reservations.

Data type: Boolean

result.reservation.reservable_module.​enable_ical_generation

Flag that indicates whether users can generate an iCalendar for the reservation.Valid values:

  • true: iCalendar generation allowed.
  • false: iCalendar generation isn't allowed.

Data type: Boolean

result.reservation.reservable_module.​font_awesome_icon

Name of the font icon attached to the reservable module.Data type: String

result.reservation.reservable_module.​inline_title

Inline title of the reservable module. The title appears in line with the descriptive text on the Workplace service portal.Data type: String

result.reservation.reservable_module.​layout_mapping

Details about the structure of the layout mapping of locations. Use this data to lay out the information in the UI. Data type: Object

JavaScript
"layout_mapping": {  "body": [Array],  "description": [Array],  "image": "String",  "subtitle": [Array],  "subtitle_asc": [Array],  "title": [Array]}

result.reservation.reservable_module.​layout_mapping.body

Placeholder for mapping the front-end UI data.Data type: Array of Objects

CSS
"body": [  {    "field": "String",    "field_to_display": "String",    "icon": "String",    "label": "String"  }]

result.reservation.reservable_module.​layout_mapping.body.field

Placeholder for mapping the front-end UI data.Data type: String

result.reservation.reservable_module.​layout_mapping.body.field_to_display

Placeholder for mapping the front-end UI data.Data type: String

result.reservation.reservable_module.​layout_mapping.body.icon

Placeholder for mapping the front-end UI data.Data type: String

result.reservation.reservable_module.​layout_mapping.body.label

Placeholder for mapping the front-end UI data.Data type: String

result.reservation.reservable_module.​layout_mapping.description

Placeholder for mapping the front-end UI data. Description of the layout mapping.Data type: Array

result.reservation.reservable_module.​layout_mapping.image

Placeholder for mapping the front-end UI data.Data type: String

result.reservation.reservable_module.​layout_mapping.subtitle

Placeholder for mapping the front-end UI data.Data type: Array

result.reservation.reservable_module.​layout_mapping.subtitle_asc

Placeholder for mapping the front-end UI data.Data type: Array

result.reservation.reservable_module.​layout_mapping.title

Placeholder for mapping the front-end UI data.Data type: Array

result.reservation.reservable_module.​max_days_in_future

Maximum number of the days in the future that a user can reserve the reservable module.Data type: Number

result.reservation.reservable_module.​max_occurrences

Maximum number of recurring reservation occurrences if recurring reservations are available for the reservable module.Data type: Number

result.reservation.reservable_module.name

Name of the reservable module.Data type: String

result.reservation.reservable_module.​override_approval_policy

Option to specify how to implement the approval policy. Choices:

  • No override: The approval policy is implemented as set in the Requires approval field of a workplace space or room.
  • Always require approval: The approval policy is required regardless of what is set in the Requires approval field of a workplace space or room.
  • Never require approval: The approval policy is removed regardless of what is set in the Requires approvall field of a workplace space or room.

Data type: String

result.reservation.reservable_module.​require_cancel_notes

Flag that indicates whether users must enter a cancellation note before cancelling a reservable module.Valid values:

  • true: Cancellation note required.
  • false: Cancellation note not required.

Data type: Boolean

result.reservation.reservable_module.​require_cc_dept_check

Flag that indicates whether to check if there's a cost center or department mismatch between the workspace item and the logged in user. Valid values:

  • true: Check for a mismatch.
  • false: Don't check for a mismatch.

Data type: Boolean

result.reservation.reservable_module.​require_subject

Flag that indicates whether the user must enter a subject when making the reservation.Valid values:

  • true: Subject required.
  • false: Subject isn't required.

Data type: Boolean

result.reservation.reservable_module.​reservable_columns

List of the columns of a reservable.Data type: Array

Table: Workplace Location [sn_wsd_core_workplace_location]

result.reservation.reservable_module.​reservable_container_field

Level of the container, such as a group of desks in a specific area.Data type: String

result.reservation.reservable_module.​reservable_filter

Filter conditions used to filter out reservable items in the associated Reservable table. Reservable table is a field in the Reservable Module [sn_wsd_rsv_reservable_module] table. These filter conditions were applied to the table contained in the field Reservable table.Data type: String

result.reservation.reservable_module.​reservable_quantity_field

Reservable quantity of all the spaces. The quantity is used when assigning neighbourhood spaces to an area. For additional information, see Assign neighborhood spaces to an area.Data type: String

result.reservation.reservable_module.​reservable_table

Table that contains the reservable workplace items.Data type: String

result.reservation.reservable_module.​reservable_type

Type of the reservable item, such as location.Data type: String

result.reservation.reservable_module.​reservable_views

Details about the different views associated with the reservable module, such as card view or schedule view.Data type: Object

JavaScript
"reservable_views": {  "iconClass": "String",  "isDefault": Boolean,  "label": "String",  "order": Number,  "type": "String"}

Table: Reservable View [sn_wsd_rsv_reservable_view]

result.reservation.reservable_module.​reservable_views.iconClass

Icon class of the reservable view.Data type: String

result.reservation.reservable_module.​reservable_views.isDefault

Flag that indicates whether to make this reservable view the default for reservable modules. Valid values:

  • true: Make default.
  • false: Don't make default.

Data type: Boolean

result.reservation.reservable_module.​reservable_views.label

Name of the reservable view.Data type: String

result.reservation.reservable_module.​reservable_views.order

Order in which the views are displayed for the reservable module in the UI. The lower order number come first in the UI. In case of the same order number, it is assigned random ordering.Data type: Number

result.reservation.reservable_module.​reservable_views.type

Backend name of the reservable view. Used for internal processing.Data type: String

result.reservation.reservable_module.​reservation_paths

Reservation paths associated with the reservable modules such as Browse all, Browse near a person.Data type: Array of Objects

Text
"reservation_paths": [  {    "displayValue": "String",    "value": "String"  }]

result.reservation.reservable_module.​reservation_paths.display_value

Display value for the reservation path, such as "Browse near a person".Data type: String

result.reservation.reservable_module.​reservation_paths.value

Internal value for the reservation path, such as "browse_near_a_person".Data type: String

result.reservation.reservable_module.​search_limit

Maximum number of search results to return when a user searches for a workplace location.Data type: Number

result.reservation.reservable_module.​selection_type

Type of selection to display in the search results.

Can be one of the following options:

  • Specific unit: The search result displays every workplace item.
  • Container: The search result displays the parent or container of the workplace items.

Data type: String

result.reservation.reservable_module.​short_description

Brief description of the reservable module.Data type: String

result.reservation.reservable_module.​show_map_view

Flag that indicates whether to enable the map view for reservable modules. Valid values:

  • true: Enable map view.
  • false: Don't enable map view.

Data type: Boolean

result.reservation.reservable_module.sys_id

Sys_id of the reservable module.Data type: String

result.reservation.reservable_module.timeSlots

Details about the time slots associated for a reservable module.Data type: Array of Objects

JSON
[  {    "name": "String",    "short_description": "String",    "slot_end": "String",    "slot_start": "String",    "sys_id": "String"  }]

result.reservation.reservable_module.​timeSlots.name

Name of the time slot.Data type: String

result.reservation.reservable_module.​timeSlots.short_description

Brief description of the time slot.Data type: String

result.reservation.reservable_module.​timeSlots.slot_end

End time of the time slot.Data type: String

result.reservation.reservable_module.​timeSlots.slot_start

Start time of the slot.Data type: String

result.reservation.reservable_module.​timeSlots.sys_id

Sys_id of the time slot record.Data type: String

Table: Time Slot [sn_wsd_rsv_time_slot]

result.reservation.reservable_module.title

Title of the reservable module.Data type: String

result.reservation.reservable_module.​virtual_meeting_provider

Details about the virtual provider associated with the reservable module.Data type: Object

Text
"virtual_meeting_provider": {  "display_value": "String",  "sys_id": "String"}

result.reservation.reservable_module.​virtual_meeting_provider.display_value

Display value of the virtual meeting provider.Data type: String

result.reservation.reservable_module.​virtual_meeting_provider.sys_id

Sys_id of the virtual meeting provider.Data type: String

result.reservation.reservationAcl

Details of the user access control levels (ACL) checks set on the associated reservation.Data type: Object

JavaScript
"reservationAcl": {  "read": Boolean,  "write": {Object}}

result.reservation.reservationAcl.read

Flag that indicates whether to check if the user can read this reservation.Valid values:

  • true: Check if user can read the reservation.
  • false: Don't check if user can read the reservation.

Data type: Boolean

result.reservation.reservationAcl.write

Details about the user's write capabilities for the associated reservation.Data type: Object

JavaScript
"write": {  "allFields": Boolean,  "fields": {Object},  "record": Boolean}

result.reservation.reservationAcl.write.allFields

Flag that indicates whether to check if the user can write to all fields specified in the reservationACL.write.fields object. If the user only has access to some specific fields, then only those fields are true in the reservationACL.write.fields object.Valid values:

  • true: Check if user can write to all fields specified in the reservationACL.write.fields object.
  • false: Don't check if user can write to all fields specified in the reservationACL.write.fields object

Data type: Boolean

result.reservation.reservationAcl.write.fields

Details of the access controls on various fields of the reservation.Data type: Object

JavaScript
"fields": {  "location": Boolean,  "number_of_attendees": Boolean,  "requested_for": Boolean,  "sensitivity": Boolean,  "subject": Boolean}

result.reservation.reservationAcl.write.fields.​location

Flag that indicates whether to check if the user can write to the location fields in this reservation.Valid values:

  • true: Check if user can write to the location fields.
  • false: Don't check if user can write to the location fields.

Data type: Boolean

result.reservation.reservationAcl.write.fields.​number_of_attendees

Flag that indicates whether to check if the user can write to the number of attendees fields in this reservation.Valid values:

  • true: Check if user can write to the number of attendees field.
  • false: Don't check if user can write to the number of attendees field.

Data type: Boolean

result.reservation.reservationAcl.write.fields.​requested_for

Flag that indicates whether to check if the user can write to the requested for fields in this reservation.Valid values:

  • true: Check if user can write to the requested for field.
  • false: Don't check if user can write to the requested for field.

Data type: Boolean

result.reservation.reservationAcl.write.fields.​sensitivity

Flag that indicates whether to check if the user can write to the sensitivity fields in this reservation.Valid values:

  • true: Check if user can write to the sensitivity field.
  • false: Don't check if user can write to the sensitivity field.

Data type: Boolean

result.reservation.reservationAcl.write.fields.​subject

Flag that indicates whether to check if the user can write to the subject fields in this reservation.Valid values:

  • true: Check if user can write to the subject field.
  • false: Don't check if user can write to the subject fields.

Data type: Boolean

result.reservation.reservationAcl.write.record

Flag that indicates whether to check if the user can write to the entire reservation record.Valid values:

  • true: Check if user can write to the entire reservation record.
  • false: Don't check if user can write to the entire reservation record.

Data type: Boolean

result.reservation.reservation_purpose

Details about the purpose of the reservation.Data type: Object

Text
"reservation_purpose": {  "display_value": "String",  "value": "String"}

result.reservation.reservation_purpose.​display_value

Display value for the purpose of the reservation, such as Company meeting.Data type: String

result.reservation.reservation_purpose.value

Internal value for the purpose of the reservation, such as company_meeting.Data type: String

result.reservation.reservation_type

Details about the type of the reservation.Data type: Object

Text
"reservation_type": {  "display_value": "String",  "value": "String"}

result.reservation.reservation_type.​display_value

Display value for the type of the reservation, such as Space.Data type: String

result.reservation.reservation_type.value

Internal value for the type of the reservation, such as space.Data type: String

result.reservation.reservation_subtype

Details about the subtype of the reservation. Subtypes indicate the type of reservation, such as single, Multi parent, Multi child, Recurring parent, or occurrence.Data type: Object

Text
"reservation_subtype": {  "display_value": "String",  "value": "String"}

result.reservation.reservation_subtype.​display_value

Display value for the subtype of the reservation, such as Single.Data type: String

result.reservation.reservation_subtype.value

Internal value for the subtype of the reservation, such as single.Data type: String

result.reservation.sensitivity

Details about the sensitivity of the reservation.Data type: Object

Text
"sensitivity": {  "display_value": "String",  "value": "String"}

result.reservation.sensitivity.display_value

Display value for the sensitivity of the reservation, such as high or low.Data type: String

result.reservation.sensitivity.value

Internal value for the sensitivity of the reservation, such as 1 or 3.Data type: String

result.reservation.shift

Details about the shift applied to the reservation.Data type: Object

JSON
"shift": {  "display_value": "String",  "name": "String",  "shiftDetails": "String",  "sys_id": "String"}

result.reservation.shift.display_value

Display value of the shift.Data type: String

result.reservation.shift.name

Name of the shift. Same as display_value.Data type: String

Result.reservation.shift.shiftDetails

Details of shift.Data type: String

result.reservation.shift.sys_id

Sys_id of the shift record.Data type: String

Table: Shift [sn_wsd_core_shift]

result.reservation.source

Details about the source for the reservation, such as Workplace Services or Google Mail..Data type: Object

CSS
"source": {  "display_value": "String",  "value": "String"}

result.reservation.source.display_value

Display value for the reservation source, such as Workplace Services.Data type: String

result.reservation.source.value

Internal value for the reservation source, such as servicenow.Data type: String

result.reservation.source_icon

Details about the source of the icon used in the reservation. This icon is used in the UI.Data type: Object

JSON
"source_icon": {  "classNames": "String",  "imgSrc": "String",  "tooltip": "String"}

result.reservation.source_icon.classNames

Comma-separated class names for the source icon.Data type: String

result.reservation.source_icon.imgSrc

Name of the image source for source icon. This icon is stored in the Images [db_image] table.Data type: String

result.reservation.source_icon.tooltip

Tooltip associated with the source icon.Data type: String

result.reservation.source_reservation

Source reservation of the current reservation. For example, for recurring reservations, the recurring parent reservation is the source of the series of occurrence reservations.Data type: Object

JSON
"source_reservation": {  "display_value": "String",  "name": "String",  "sys_id": "String"}

result.reservation.source_reservation.​display_value

Display value for the source reservation.Data type: String

result.reservation.source_reservation.name

Name of the source reservation.Data type: String

result.reservation.source_reservation.sys_id

Sys_id of the source reservation record.Data type: String

Table:Workplace Reservation [sn_wsd_rsv_reservation]

result.reservation.source_reservation_​requester

User who requested the recurring reservation.Data type: Object

JSON
"source_reservation": {  "name": "String",  "sys_id": "String",  "user_name": "String"}

result.reservation.source_reservation_​requester.name

Name of the recurring reservation requester.Data type: String

result.reservation.source_reservation_​requester.sys_id

Sys_id of the user who requested the recurring reservation.Data type: String

Table: User [sys_user]

result.reservation.source_reservation_​requester.user_name

User name of the recurring reservation requester.Data type: String

result.reservation.start

Reservation start date and time.Data type: String

Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.reservation.state

Details about the state of the reservation.Data type: Object

Text
"state": {  "display_value": "String",  "value": "String"}

result.reservation.state.display_value

Display value for the current state of the reservation, such as confirmed.Data type: String

result.reservation.state.value

Internal value for the current state of the reservation, such as 2.Data type: String

result.reservation.subject

Reservation's subject.Data type: String

result.reservation.sub_source

Details about the sub-source of the reservation. The sub-source specifies where the reservation originated such as Google Calendar or Microsoft Exchange.Data type: Object

Text
"sub_source": {  "display_value": "String",  "value": "String"}

result.reservation.sub_source.display_value

Display value for the sub-source of the reservation, such as Google Calendar.Data type: String

result.reservation.sub_source.value

Internal value of the sub-source field of the reservation, such as google_calendar.Data type: String

result.reservation.sync_state

Details about the synchronization state of a reservation from another service, such as "sync_enqueued" or "synchronized".Data type: Object

Text
"sync_state": {  "display_value": "String",  "value": "String"}

result.reservation.sync_state.display_value

Display value for the current sync state of the reservation, such as synchronized.Data type: String

result.reservation.sync_state.value

Internal value of the current sync state of the reservation, such as synchronized.Data type: String

result.reservation.sys_created_on

Date and time when the reservation was created.Data type: String

result.reservation.sys_id

Sys_id of the reservation record.

Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

Result.reservation.sys_updated_on

Date and time when the reservation was last updated. Data type: String

result.reservation.virtual_meeting

URL of the virtual meeting link.Data type: String

### cURL request

The following code example shows how to retrieve a specific recurring reservation.

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/list/d98a381587b789506342b846dabb3563" \--request GET \--header "Accept:application/json" \--user "username": "password"

Return results:

JSON
{  "result": {    "reservations": [      {        "sys_id": "198a381587b789506342b846dabb3565",        "number": "WRES0001247",        "location": {          "sys_id": "fe1f744edb7650106c731dcd139619ca",          "name": "Aspen",          "description": "A room with large windows, dark leather seats and a large wooden table.",          "display_value": "Aspen",          "capacity": 16,          "label_value": "Room name",          "email": null,          "reservable_module": {            "sys_id": "c31241cedb7650106c731dcd13961917",            "name": "Meeting rooms",            "title": "Meeting rooms",            "inline_title": "meeting room"          },          "region": {            "sys_id": "3752ac8edb3650106c731dcd139619e0",            "display_value": "Americas",            "active": true          },          "site": {            "sys_id": "628eec06db7650106c731dcd139619dd",            "display_value": "North America",            "active": true          },          "campus": {            "sys_id": "82b2a0cedb3650106c731dcd139619e9",            "display_value": "California Campus",            "active": true          },          "building": {            "sys_id": "94e264cedb3650106c731dcd13961919",            "display_value": "CAL-B1",            "active": true,            "timezone": {              "value": "US/Pacific",              "displayValue": "US/Pacific"            }          },          "floor": {            "sys_id": "2f554296dbba10106c731dcd139619ed",            "display_value": "Floor 2",            "active": true          },          "area": {            "sys_id": "",            "display_value": "",            "active": false          },          "reservation": {            "sys_id": "198a381587b789506342b846dabb3565",            "number_of_attendees": 1,            "state": {              "value": "confirmed",              "display_value": "Confirmed"            },            "requested_for": {              "sys_id": "2de07e1887cb89106342b846dabb35fe",              "name": "Workplace User",              "user_name": "workplace_user"            },            "number": "WRES0001247",            "active": true          },          "number_of_attendees": 1,          "state": {            "value": "confirmed",            "display_value": "Confirmed"          },          "number": "WRES0001247",          "requested_for": {            "sys_id": "2de07e1887cb89106342b846dabb35fe",            "name": "Workplace User",            "user_name": "workplace_user"          }        },        "start": "2022-06-11T13:00:00Z",        "end": "2022-06-11T14:00:00Z",        "sys_created_on": "2022-05-30T07:06:37Z",        "sys_updated_on": "2022-05-30T07:06:40Z",        "source_reservation": {          "sys_id": "d98a381587b789506342b846dabb3563",          "display_value": "WRES0001246",          "name": "WRES0001246"        },        "check_in_state": {          "value": "not_required",          "display_value": "Not required"        },        "external_id": null,        "external_ical": null,        "active": true,        "state": {          "value": "confirmed",          "display_value": "Confirmed"        },        "sensitivity": {          "value": "normal",          "display_value": "Normal"        },        "reservation_type": {          "value": "space",          "display_value": "Space"        },        "reservation_subtype": {          "value": "occurrence",          "display_value": "Occurrence"        },        "reservation_purpose": {          "value": "meeting",          "display_value": "Meeting"        },        "attendees": null,        "number_of_attendees": 1,        "is_parent": false,        "subject": "Rec 1",        "virtual_meeting": null,        "recording_details": [],        "sync_state": {          "value": "not_required",          "display_value": "Synchronization not required"        },        "sub_source": {          "value": "servicenow_workplace_service_delivery",          "display_value": "ServiceNow Workplace Service Delivery"        },        "last_updated_sub_source": {          "value": "servicenow_workplace_service_delivery",          "display_value": "ServiceNow Workplace Service Delivery"        },        "reservable_module": {          "sys_id": "c31241cedb7650106c731dcd13961917",          "name": "Meeting rooms",          "title": "Meeting rooms",          "inline_title": "meeting room",          "font_awesome_icon": "fa-building",          "reservable_table": "sn_wsd_core_room",          "reservable_filter": "active=true^is_reservable=true^building!=6c0364cedb3650106c731dcd13961927^building.is_reservable=true^floor.is_reservable=true^EQ",          "short_description": "Reserve a meeting room",          "reservable_type": "location",          "require_subject": "1",          "require_cancel_notes": true,          "virtual_meeting_provider": {            "sys_id": "e33d9e6853c201103cf7ddeeff7b1205",            "display_value": "Template"          },          "allow_invitees": "1",          "display_number_of_attendees": "1",          "display_on_behalf_of": "1",          "display_sensitivity": "1",          "max_days_in_future": "180",          "allow_recurring": "1",          "allow_whole_day": "1",          "require_whole_day": null,          "selection_type": "unit",          "reservable_container_field": null,          "reservable_quantity_field": null,          "apply_to_shift": null,          "max_occurrences": "180",          "enable_facet_filter": false,          "search_limit": 10000,          "enable_ical_generation": "1",          "enable_group_reservations": null,          "enable_browse_near_a_person": "1",          "enable_browse_by_area": "1",          "enable_floor_search": "1",          "display_value": "Meeting rooms",          "browse_near_a_person_enabled": true,          "browse_by_area_enabled": true,          "reservable_columns": [            "sys_id",            "external_id",            "email",            "name",            "title",            "description",            "image",            "number",            "site",            "campus",            "building",            "floor",            "area",            "capacity",            "reservable_quantity",            "location_type",            "order",            "requires_check_in",            "is_reservable"          ],          "layout_mapping": {            "title": [              "name"            ],            "description": [              "description"            ],            "subtitle": [              "campus",              "building",              "floor",              "area"            ],            "subtitle_asc": [              "area",              "floor",              "building",              "campus"            ],            "image": "image",            "body": [              {                "label": "Capacity",                "icon": "fa-users",                "field": "capacity",                "field_to_display": ""              },              {                "label": "Standard services",                "icon": "fa-check",                "field": "standard_services",                "field_to_display": "name"              },              {                "label": "Reservable purposes",                "icon": "fa-tags",                "field": "reservable_purposes",                "field_to_display": "name"              }            ]          },          "timeSlots": [],          "buildingSysIds": [            "4703a4cedb3650106c731dcd13961945",            "6c0364cedb3650106c731dcd13961927",            "94e264cedb3650106c731dcd13961919",            "9e0364cedb3650106c731dcd1396192b"          ],          "reservable_views": [            {              "type": "card",              "label": "Card view",              "iconClass": "fa-th-large",              "isDefault": true,              "order": "1"            },            {              "type": "schedule",              "label": "Schedule view",              "iconClass": "fa-calendar-o",              "isDefault": false,              "order": "2"            }          ],          "checkin_before_minutes": 30,          "reservation_paths": [            {              "value": "browse_all",              "displayValue": "Browse all",              "availableFor": true            },            {              "value": "browse_favorites",              "displayValue": "Browse favorites",              "availableFor": false            },            {              "value": "browse_near_a_person",              "displayValue": "Browse near a person",              "availableFor": true            },            {              "value": "browse_by_area",              "displayValue": "Browse by area",              "availableFor": true            }          ],          "override_approval_policy": "never_required"        },        "notification_recipients": null,        "notification_custom_message": null,        "opened_by": {          "sys_id": "2de07e1887cb89106342b846dabb35fe",          "value": "2de07e1887cb89106342b846dabb35fe",          "displayValue": "Workplace User",          "display_value": "Workplace User",          "name": "Workplace User",          "user_name": "workplace_user",          "table": "sys_user",          "avatar": null,          "initials": "WU",          "email": "workplace_user@example.com",          "label": ""        },        "requested_for": {          "sys_id": "2de07e1887cb89106342b846dabb35fe",          "value": "2de07e1887cb89106342b846dabb35fe",          "displayValue": "Workplace User",          "display_value": "Workplace User",          "name": "Workplace User",          "user_name": "workplace_user",          "table": "sys_user",          "avatar": null,          "initials": "WU",          "email": "workplace_user@example.com",          "label": ""        },        "edit_restriction": {          "value": "no_restriction",          "display_value": "No restriction"        },        "source": {          "value": "servicenow",          "display_value": "Workplace Services"        },        "source_reservation_requester": {          "sys_id": "2de07e1887cb89106342b846dabb35fe",          "name": "Workplace User",          "user_name": "workplace_user"        },        "source_icon": {          "classNames": "fa fa-calendar-check-o",          "tooltip": "Reservation is confirmed",          "imgSrc": ""        },        "shift": null,        "recurring_pattern": {          "duration": "3600000",          "repeats": "daily",          "options": {            "count": 3,            "daysOfWeek": "",            "every": 1,            "endDate": "2022-06-13 14:00:00",            "endDateGdt": {}          },          "label": "Repeats daily, 3 times",          "startDate": "2022-06-11 13:00:00",          "startDateGdt": "{}",          "amountOfDates": "3"        },        "reservationAcl": {          "write": {            "record": true,            "fields": {              "subject": true,              "sensitivity": true,              "requested_for": true,              "number_of_attendees": true,              "location": true            },            "allFields": true          },          "read": true        }      }    ],    "occurencesTotalCount": "1"  }}

WSD Recurring Reservation - PATCH /api/sn_wsd_rsv/recurring_reservation/cancel_series/{sys_id}

Cancels an entire specified recurring series reservation or a specific meeting occurrence within the series.

Note: You cannot delete multiple meeting occurrences in a single call.

URL format

Versioned URL: /api/sn_wsd_rsv/{api_version}/recurring_reservation/cancel_series/{sys_id}

Default URL: /api/sn_wsd_rsv/recurring_reservation/cancel_series/{sys_id}

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

sys_id

To cancel the entire series, pass the sys_id of the recurring parent reservation record.To cancel a specific occurrence of the series, pass the sys_id of the occurrence of the series.

The recurring parent record has the column reservation_subtype set to Recurring parent. Individual occurrence records have the reservation_subtype field set to Occurrence.

To get the details of recurring parent reservation from the occurrence record, refer to the sys_id of the source_reservation field of the occurrence record.

Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

Name

Description

cancel_notes

Reason for cancelling the reservation.Data Type: String

|Name|Description| |----|-----------| |None| |

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header

Description

Accept

Data format of the response body. Supported types: application/json or application/xml. Default: application/json

Content-Type

Data format of the request body. Only supports application/json.

|Header|Description| |------|-----------| |None| |

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code Description
200 Successful. The request was successfully processed.
401 Unauthorized. The user credentials are incorrect or have not been passed.
404 Not found. The requested item wasn't found.
500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

Response body parameters

Name

Description

result

Return results for the cancel recurring reservation request.Data type: Object

JavaScript
"result": {  "failedToCancelOccurrenceReservations": [Array],  "seriesId": "String",  "success": Boolean,  "successCanceledOccurrences": [Array],  "user_msg": "String"}

result.failedToCancelOccurrenceReservations

List of sys_ids of the individual meeting occurrence records that failed to be cancelled.Data type: Array of Strings

result.seriesId

Sys_id of the recurring parent when the whole series is cancelled or the sys_id of a specific occurrence if a single occurrence is cancelled.Data type: String

result.success

Flag that indicates whether the reservation was successfully cancelled.Possible values:

  • true: Successfully cancelled.
  • false: Operation failed.

Data type: Boolean

result.failedToCancelOccurrenceReservations

List of sys_ids of the individual meeting occurrence records that were successfully cancelled.Data type: Array of Strings

result.user_msg

Message about the request.Data type: String

### cURL request

The following code example shows how to cancel an entire recurring reservation.

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/cancel_series/f64983a347274550003a4587746d43b8" \--request PATCH \--header "Accept:application/json" \ --header "Content-Type:application/json" \ --user "username":"password"

Return results:

JSON
{  "result": {    "failedToCancelOccurrenceReservations": [],    "successCanceledOccurrences": [      "cb4983a347274550003a4587746d43bd",      "cf4983a347274550003a4587746d43ba"    ],    "user_msg": "Your Recurring reservation has been canceled successfully!",    "seriesId": "f64983a347274550003a4587746d43b8",    "success": true  }}

WSD Recurring Reservation - POST /api/sn_wsd_rsv/recurring_reservation/create_series

Creates workplace reservations for the same time but different dates, such as weekly, monthly, or every other week.

Timezone handling

All dtstart and until values must be provided as local wall-clock time in the timezone specified by tzid. Do not use UTC or append a Z suffix.

For example, to create a recurring reservation at 2:30 PM Chicago time:

  • Accepted format: "dtstart": "2025-12-08T14:30:00", "tzid": "America/Chicago"
  • Unaccepted format (UTC — not recommended): "dtstart": "2025-12-08T20:30:00Z"

Tip: The system uses tzid to correctly handle DST transitions. A reservation set for 2:30 PM will remain at 2:30 PM local time regardless of whether the timezone is currently observing standard time or daylight saving time.

freq value Required companion fields
DAILY None beyond interval
WEEKLY byweekday (array of 1 or more day codes)
MONTHLY Either bymonthday or (bysetpos + single-value byweekday)
YEARLY No additional fields beyond dtstart / interval

URL format

Versioned URL: /api/sn_wsd_rsv/{api_version}/recurring_reservation/create_series

Default URL: /api/sn_wsd_rsv/recurring_reservation/create_series

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Note: Available versions are specified in the REST API Explorer. For scripted REST APIs there is additional version information on the Scripted REST Service form.

Supported request parameters

Name

Description

api_version

Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest. Data type: String

|Name|Description| |----|-----------| |None| |

Name

Description

recurringPattern

Details about the recurring pattern for the reservation.Data type: Object

JavaScript
"recurringPattern": {  "freq": "String",  "interval": Number,  "dtstart": "String",  "until": "String",  "byweekday": [Array],  "duration": Number,  "tzid": "String"}

recurringPattern.bymonthday

Conditional. Required if freq is MONTHLY, unless using bysetpos + byweekday. Day of the month for the occurrence. Valid values:

  • 1–31
  • or -1 for last day of month.

Mutually exclusive with bysetpos.

Data type: Number

recurringPattern.bysetpos

Conditional Used together with byweekday for "nth weekday of month" patterns (for example, 2nd Monday). Valid values:

  • 1
  • 2
  • 3
  • 4
  • -1 ( = last).

Mutually exclusive with bymonthday.

Data type: Number

recurringPattern.byweekday

Conditional. Required if freq is WEEKLY. Days of the week that the reservable is needed. Also used with bysetpos for monthly "nth weekday" patterns. Valid values:

  • MO: Monday
  • TU: Tuesday
  • WE: Wednesday
  • TH: Thursday
  • FR: Friday
  • SA: Saturday
  • SU: Sunday

For example, ["MO", "WE", "FR"] for Monday, Wednesday, and Friday. If freq is WEEKLY, count is 5, and byweekday contains 3 days, then the total number of occurrences is count × byweekday.length (5 × 3 = 15).

Data type: Array of Strings, or JSON-stringified array

recurringPattern.count

Conditional. Number of occurrences to generate. Mutually exclusive with until — exactly one of until or count is required.Data type: Number

recurringPattern.dtstart

Required. Start date and time for the recurring pattern, expressed as local wall-clock time in the timezone specified by freq. Do not include a Z suffix — the value represents the local time at the building. For example, 2025-12-08T14:30:00 means 2:30 PM in the timezone specified by freq.

Data type: String

Format: YYYY-MM-DDTHH:mm:ss

recurringPattern.duration

Required (except shift-based reservations). Length of time to reserve the reservable, in milliseconds. For example, 3600000 = 1 hour.Data type: Number****

Unit: Milliseconds

recurringPattern.freq

Required. Repeating frequency for the reservation. Valid values (case-sensitive):

  • DAILY
  • WEEKLY
  • MONTHLY
  • YEARLY

Data type: String

recurringPattern.interval

Optional. Pattern repeat interval. For example, the value 2 indicates that the pattern repeats every 2 days or 2 months depending on the value of freq.Data type: Number

Default: 1

recurringPattern.tzid

Required. IANA timezone name for the building where the reservation is located. All date and time values in the pattern (dtstart, until) must be expressed as local wall-clock time in this timezone.The system uses this timezone to generate occurrences with correct Daylight Saving Time (DST) handling — ensuring that a reservation at, for example, "2:30 PM every Monday" stays at 2:30 PM local time even across DST transitions. For example, America/Chicago, Asia/Kolkata, Australia/Sydney.

Data type: String

recurringPattern.until

Conditional. End date boundary for the recurrence, expressed as local wall-clock time in the timezone specified by tzid. Mutually exclusive with count — exactly one of until or count is required.

Data type: String

Format: ISO date or datetime, such as 2026-12-08 or 2026-12-08T23:59:59

reservation

Details about the recurring reservation to create.Data type: Object

JavaScript
"reservation": {  "is_private": Boolean,  "location": "String",  "reservable_module": "String",  "shift": "String",  "subject": "String"}

reservation.attendees

Comma-separated sys_ids of attendees.Data type: String (glide_list of sys_user)

reservation.is_private

Flag that indicates whether the reservation is private. If private, the reservation doesn't appear to anyone except the owner.For additional information on these privacy settings, see Location privacy settings and impact.

Valid values:

  • true: Reservation is private.
  • false: Reservation isn't private.

Data type: Boolean

Default: Value set for privacy in the system properties.

reservation.location

Required. Sys_id of the location to reserve.

Data type: String

Table: Workplace Location [sn_wsd_core_workplace_location]

reservation.requested_for

Sys_id or email of the user the reservation is for.Data type: String

reservation.reservable_module

Required only for April 2026 store and earlier releases. Not required with May 2026 store and later releases. Sys_id of the reservable module to associate with the reservation. A reservable module defines the workplace items needed for a reservation.

Data type: String

Table: Reservable Module [sn_wsd_rsv_reservable_module]

reservation.shift

Conditional. Sys_id of the shift to associate with the reservation. If this parameter is passed in, the duration parameter isn't required — duration derives from the shift.

For additional information on shift-based reservations, see Enable shift-based reservation.

Data type: String

Table: Shift [sn_wsd_core_shift]

reservation.subject

Required. Subject of the meeting associated with the reservation.

Data type: String

### Legacy recurringPattern format \(still accepted\)

The legacy format is still accepted but is silently converted to the RRULE format server-side. Times can be provided in UTC format (with Z suffix) — the server automatically converts them to the building's local timezone during processing. New integrations should use the RRULE format with tzid above.

Legacy field

Maps to (RRULE)

 

recurringPattern

recurringPattern

Details about the recurring pattern for the reservation.Note: Only the Object structure is legacy.

Data type: Object

JavaScript
"recurringPattern": {  "duration": Number,  "label": "String",  "options": {Object},  "repeats": "String",  "startDate": "String"}

recurringPattern.duration

duration

Required if not a shift-based reservation. Length of time to reserve the reservable.Data type: Number

Unit: Milliseconds

recurringPattern.label

Descriptive name for the recurring reservation.Data type: String

recurringPattern.options

Required. Details about the options set for the recurring pattern.Data type: Object

JavaScript
"options": {  "count": Number,  "daysOfWeek": "String",  "every": Number,  "endDate": "String"}

recurringPattern.options.count

count

Required if not a shift-based reservation; ignored for shift-based reservations. Number of times to repeat the pattern.

Data type: Number

recurringPattern.options.daysOfWeek

byweekday

Required if the repeats parameter is set to weekly.Days of the week that the reservable is needed, using concatenated digits with no delimiter. For example, "245" for Tuesday, Thursday, and Friday.

Valid values:

  • 1 = Monday
  • 2 = Tuesday
  • 3 = Wednesday
  • 4 = Thursday
  • 5 = Friday
  • 6 = Saturday
  • 7 = Sunday

Data type: String

recurringPattern.options.every

interval

Pattern repeat interval.Data type: Number

recurringPattern.options.endDate

until

End date and time of the recurrence of the meeting, such as "2022-07-08T14:00:00Z". Display only.Data type: String

Format: UTC yyyy-mm-dd hh:mm:ss

recurringPattern.repeats

freq

Required if not a shift-based reservation. Repeating pattern for the reservable.Valid values: (case-sensitive)

  • daily
  • monthly
  • weekly
  • yearly

Note: The pattern repeat interval is set in the options.every property. The only valid repeat interval for weekly patterns is one.

Data type: String

recurringPattern.startDate

dtstart

Start date and time. Accepts UTC format with Z suffix — automatically converted to building-local. Format: ISO 8601 datetime

### Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header

Description

Accept

Data format of the response body. Supported types: application/json or application/xml. Default: application/json

Content-Type

Data format of the request body. Only supports application/json.

|Header|Description| |------|-----------| |None| |

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code Description
200 Successful. The request was successfully processed.
401 Unauthorized. The user credentials are incorrect or have not been passed.
404 Not found. The requested item wasn't found.
500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

Response body parameters

Name

Description

result

Return results from the multi-reservation creation or update.Data type: Object

JavaScript
"result": {  "isValid": Boolean,  "parent": "String",  "successfulReservations": [Array],  "unSuccessfulReservations": [Array]}

result.isValid

Flag that indicates whether the reservation was successfully created.Possible values:

  • true: Successfully created.
  • false: Operation failed.

Data type: Boolean

result.parent

Sys_id of the parent reservation that was updated.Data type: String

result.successfulReservations

List of the reservations that were successfully updated.Data type: Array of Objects

JavaScript
"successfulReservations": [  {    "collision": Boolean,    "end": "String",    "error": "String",    "inserted": Boolean,    "start": "String"    "sys_id": "String"  }]

result.successfulReservations.collision

Flag that indicates whether a reservation already exists for the specified time and collides with the current reservation.Possible values:

  • true: Collision.
  • false: No collision.

Data type: Boolean

result.successfulReservations.end

Reservation end date and time.Data type: String

Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.successfulReservations.error

Error message if there was a problem while creating the reservation.Data type: String

result.successfulReservations.inserted

Flag that indicates whether the reservation was successfully inserted. Such as when a reservation is added.Possible values:

  • true: Successfully inserted.
  • false: Operation failed.

Data type: Boolean

result.successfulReservations.start

Reservation start date and time.Data type: String

Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.successfulReservations.sys_id

Sys_id of the reservation that was created.Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

result.unSuccessfulReservations

List of the reservations that were unsuccessfully updated.Data type: Array of Objects

JavaScript
"unSuccessfulReservations": [  {    "collision": Boolean,    "end": "String",    "error": "String",    "inserted": Boolean,    "start": "String"    "sys_id": "String"  }]

result.unSuccessfulReservations.collision

Flag that indicates whether a reservation already exists for the specified time and collides with the current reservation.Possible values:

  • true: Collision.
  • false: No collision.

Data type: Boolean

result.unSuccessfulReservations.end

Reservation end date and time.Data type: String

Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.unSuccessfulReservations.error

Error message if there was a problem while creating the reservation.Data type: String

result.unSuccessfulReservations.inserted

Flag that indicates whether the reservation was successfully inserted. Such as when a reservation is added.Possible values:

  • true: Successfully inserted.
  • false: Operation failed.

Data type: Boolean

result.unSuccessfulReservations.start

Reservation start date and time.Data type: String

Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

result.unSuccessfulReservations.sys_id

Sys_id of the reservation record.

Data type: String

Table: Workplace Reservation [sn_wsd_rsv_reservation]

### cURL request

Weekly on Mon/Wed/Fri, 4 occurrences (Chicago time)

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/create_series" \--request POST \--header "Accept:application/json" \--header "Content-Type:application/json" \--data '{    "reservation": {        "reservable_module": "5db44502dbb650106c731dcd13961937",        "subject": "Weekly team sync",        "location": "6a11a94adb7210106c731dcd1396194e",        "requested_for": "6816f79cc0a8016401c5a33be04be441",        "is_private": false    },    "recurringPattern": {        "freq": "WEEKLY",        "interval": 1,        "dtstart": "2025-12-08T14:30:00",        "count": 4,        "byweekday": ["MO", "WE", "FR"],        "duration": 3600000,        "tzid": "America/Chicago"    }}'

Return results:

JSON
{  "result": {    "isValid": true,    "parent": "1e5f65ca87586550cfaa99b73cbb3513",    "successfulReservations": [      {        "inserted": true,        "collision": false,        "sys_id": "9e5f65ca87586550cfaa99b73cbb3517",        "error": null,        "start": "2025-12-08T20:30:00Z",        "end": "2025-12-08T21:30:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "8e5f65ca87586550cfaa99b73cbb3518",        "error": null,        "start": "2025-12-10T20:30:00Z",        "end": "2025-12-10T21:30:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "7e5f65ca87586550cfaa99b73cbb3519",        "error": null,        "start": "2025-12-12T20:30:00Z",        "end": "2025-12-12T21:30:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "6e5f65ca87586550cfaa99b73cbb3520",        "error": null,        "start": "2025-12-15T20:30:00Z",        "end": "2025-12-15T21:30:00Z"      }    ],    "unSuccessfulReservations": []  }}

cURL request

Daily for 5 days (Kolkata time)

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/create_series" \--request POST \--header "Accept:application/json" \--header "Content-Type:application/json" \--data '{    "reservation": {        "reservable_module": "5db44502dbb650106c731dcd13961937",        "subject": "Daily standup",        "location": "6a11a94adb7210106c731dcd1396194e",        "requested_for": "6816f79cc0a8016401c5a33be04be441",        "is_private": false    },    "recurringPattern": {        "freq": "DAILY",        "interval": 1,        "dtstart": "2025-12-08T09:00:00",        "count": 5,        "duration": 1800000,        "tzid": "Asia/Kolkata"    }}'

Return results:

JSON
{  "result": {    "isValid": true,    "parent": "2e5f65ca87586550cfaa99b73cbb3514",    "successfulReservations": [      {        "inserted": true,        "collision": false,        "sys_id": "5e5f65ca87586550cfaa99b73cbb3521",        "error": null,        "start": "2025-12-08T03:30:00Z",        "end": "2025-12-08T04:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "4e5f65ca87586550cfaa99b73cbb3522",        "error": null,        "start": "2025-12-09T03:30:00Z",        "end": "2025-12-09T04:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "3e5f65ca87586550cfaa99b73cbb3523",        "error": null,        "start": "2025-12-10T03:30:00Z",        "end": "2025-12-10T04:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "2e5f65ca87586550cfaa99b73cbb3524",        "error": null,        "start": "2025-12-11T03:30:00Z",        "end": "2025-12-11T04:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "1e5f65ca87586550cfaa99b73cbb3525",        "error": null,        "start": "2025-12-12T03:30:00Z",        "end": "2025-12-12T04:00:00Z"      }    ],    "unSuccessfulReservations": []  }}

cURL request

Monthly on the 2nd Monday, until end date (Sydney time)

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/create_series" \--request POST \--header "Accept:application/json" \--header "Content-Type:application/json" \--data '{    "reservation": {        "reservable_module": "5db44502dbb650106c731dcd13961937",        "subject": "Monthly review",        "location": "6a11a94adb7210106c731dcd1396194e",        "requested_for": "6816f79cc0a8016401c5a33be04be441",        "is_private": false    },    "recurringPattern": {        "freq": "MONTHLY",        "interval": 1,        "dtstart": "2025-12-08T10:00:00",        "until": "2026-06-30",        "bysetpos": 2,        "byweekday": ["MO"],        "duration": 7200000,        "tzid": "Australia/Sydney"    }}'

Return results:

JSON
{  "result": {    "isValid": true,    "parent": "3e5f65ca87586550cfaa99b73cbb3515",    "successfulReservations": [      {        "inserted": true,        "collision": false,        "sys_id": "a1e5f65ca87586550cfaa99b73cbb3526",        "error": null,        "start": "2025-12-14T23:00:00Z",        "end": "2025-12-15T01:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "b2e5f65ca87586550cfaa99b73cbb3527",        "error": null,        "start": "2026-01-11T23:00:00Z",        "end": "2026-01-12T01:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "c3e5f65ca87586550cfaa99b73cbb3528",        "error": null,        "start": "2026-02-08T23:00:00Z",        "end": "2026-02-09T01:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "d4e5f65ca87586550cfaa99b73cbb3529",        "error": null,        "start": "2026-03-08T23:00:00Z",        "end": "2026-03-09T01:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "e5e5f65ca87586550cfaa99b73cbb3530",        "error": null,        "start": "2026-04-13T00:00:00Z",        "end": "2026-04-13T02:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "f6e5f65ca87586550cfaa99b73cbb3531",        "error": null,        "start": "2026-05-11T00:00:00Z",        "end": "2026-05-11T02:00:00Z"      },      {        "inserted": true,        "collision": false,        "sys_id": "g7e5f65ca87586550cfaa99b73cbb3532",        "error": null,        "start": "2026-06-08T00:00:00Z",        "end": "2026-06-08T02:00:00Z"      }    ],    "unSuccessfulReservations": []  }}

cURL request

(Legacy example)The following code example shows how to create a daily recurring reservation for two consecutive days.

Shell
curl "https://instance.servicenow.com/api/sn_wsd_rsv/recurring_reservation/create_series" \--request POST \--header "Accept:application/json" \--header "Content-Type:application/json" \--data "{    \"reservation\": {        \"reservable_module\": \"5db44502dbb650106c731dcd13961937\",        \"subject\": \"Test-123\",        \"reservation_purpose\": \"meeting\",        \"timezone\": \"US/Pacific\",        \"requested_for\": \"6816f79cc0a8016401c5a33be04be441\",        \"location\": \"6a11a94adb7210106c731dcd1396194e\",        \"attendees\": \"6816f79cc0a8016401c5a33be04be441\",        \"is_private\": false    },    \"recurringPattern\": {        \"duration\": 3600000,        \"repeats\": \"daily\",        \"options\": {            \"count\": 2,            \"daysOfWeek\": \"\",            \"every\": 1        },        \"label\": \"Repeats daily, 2 times\",        \"startDate\": \"2023-01-12T12:00:00Z\"    }}" \

Return results:

JSON
{  "result": {    "isValid": true,    "parent": "1e5f65ca87586550cfaa99b73cbb3513",    "successfulReservations": [      {        "inserted": true,        "collision": false,        "sys_id": "9e5f65ca87586550cfaa99b73cbb3517",        "error": null,        "start": "2023-01-13T12:00:00Z",        "end": "2023-01-13T13:00:00Z"      }    ],    "unSuccessfulReservations": [      {        "inserted": true,        "collision": true,        "sys_id": "5e5f65ca87586550cfaa99b73cbb3515",        "error": null,        "start": "2023-01-12T12:00:00Z",        "end": "2023-01-12T13:00:00Z"      }    ]  }}
Search documentation
Search document titles and file paths on the brazil branch