WSD Recurring Reservation API

  • Release version: Australia
  • Updated March 12, 2026
  • 39 minutes to read
  • 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.

    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

    Table 1. Path 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]

    Table 2. Query parameters
    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

    Table 3. Request body parameters
    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.

    Table 4. Request headers
    Header Description
    Accept Data format of the request body. Supported types: application/json, application/xml or, text/xml.

    Default: application/json

    Table 5. Response headers
    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.

    Table 6. Status 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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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 is 245, 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

    "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

    "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 as browse_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

    "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

    "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

    "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

    "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

    [
      {
        "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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

    "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.

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

    Return results:

    {
      "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

    Table 7. Path 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]

    Table 8. Query parameters
    Name Description
    cancel_notes Reason for cancelling the reservation.

    Data Type: String

    Table 9. Request body parameters
    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.

    Table 10. Request 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.
    Table 11. Response headers
    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.

    Table 12. Status 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

    "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.

    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:

    {
      "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.

    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.

    Supported request parameters

    Table 13. Path 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

    Table 14. Query parameters
    Name Description
    None
    Table 15. Request body parameters
    Name Description
    recurringPattern Details about the recurring pattern for the reservation.

    Data type: Object

    "recurringPattern": {
      "duration": Number,
      "label": "String",
      "options": {Object},
      "repeats": "String",
      "startDate": "String"
    }
    recurringPattern.duration Required if not a shift-based reservation.
    Length of time to reserve the reservable.

    Data type: Number

    Unit: Seconds

    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

    "options": {
      "count": Number,
      "daysOfWeek": "String",
      "every": Number,
      "endDate": "String"
    }
    recurringPattern.options.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 Required if the repeats parameter is set to weekly.

    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 is 245, then in the return results, the total is equal to count*daysOfWeek.length (5*3=15).

    Data type: String

    recurringPattern.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

    recurringPattern.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

    recurringPattern.repeats Required if not a shift-based reservation.

    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

    recurringPattern.startDate Required.
    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

    reservation Details about the recurring reservation to create.

    Data type: Object

    "reservation": {
      "is_private": Boolean,
      "location": "String",
      "reservable_module": "String",
      "shift": "String",
      "subject": "String"
    }
    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.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
    Sys_id of the shift to associate with the reservation. If this parameter is passed in, the end parameter isn't required.

    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

    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.

    Table 16. Request 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.
    Table 17. Response headers
    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.

    Table 18. Status 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

    "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

    "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

    "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

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

    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:

    {
      "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"
          }
        ]
      }
    }