---
title: Update timeslot
slug: update-timeslot
docTags: 
createdAt: 2023-04-12T08:32:15.000Z
---

:::ApiMethodV2
```json
{
  "tab": "examples",
  "url": "https://api.brella.io/api/integration/organizations/{organizationId}/events/{eventId}/timeslots/bulk_update",
  "name": "Update existing timeslot",
  "method": "PUT",
  "request": {
    "pathParameters": [
      {
        "kind": "required",
        "name": "{organizationId}",
        "type": "Number",
        "children": [],
        "description": "The id of the Brella organization you are trying to retrieve data from"
      },
      {
        "kind": "required",
        "name": "{eventId}",
        "type": "Number",
        "children": [],
        "description": "The id of the Brella event you are trying to retrieve data from"
      }
    ],
    "queryParameters": [],
    "headerParameters": [
      {
        "kind": "required",
        "name": "Brella-API-Access-Token",
        "type": "String",
        "children": [],
        "description": "Your unique Brella API key"
      },
      {
        "kind": "required",
        "name": "Accept",
        "type": "string",
        "children": [],
        "description": "application/vnd.brella.v4+json"
      },
      {
        "kind": "required",
        "name": "Content-Type",
        "type": "string",
        "children": [],
        "description": "application/json"
      }
    ],
    "bodyDataParameters": [],
    "formDataParameters": []
  },
  "results": {
    "languages": [
      {
        "id": "PsoboMOJ9Uo00iBrqhmgp",
        "code": "{\n  \"data\": [\n    {\n      \"id\": \"107877\",\n      \"type\": \"timeslot\",\n      \"attributes\": {\n        \"title\": \"Updated title of your session\",\n        \"reservable\": \"false\",\n        \"duration\": \"90\",\n        \"location\": \"Main hall and Venue\",\n        \"content\": {\n          \"blocks\": [\n            {\n              \"text\": \"You can write \",\n              \"type\": \"unstyled\",\n              \"depth\": \"0\",\n              \"entity-ranges\": [],\n              \"inline-style-ranges\": []\n            },\n            {\n              \"text\": \"html\",\n              \"type\": \"unstyled\",\n              \"depth\": \"0\",\n              \"entity-ranges\": [],\n              \"inline-style-ranges\": []\n            },\n            {\n              \"text\": \" or just have a string. Anything here will be converted to DraftJs-consumable object\",\n              \"type\": \"unstyled\",\n              \"depth\": \"0\",\n              \"entity-ranges\": [],\n              \"inline-style-ranges\": []\n            }\n          ],\n          \"entity-map\": {}\n        },\n        \"subtitle\": \"\",\n        \"highlight-position\": {},\n        \"stream-link\": {},\n        \"chat-channel-id\": \"timeslot-107877\",\n        \"start-time\": \"2025-11-27T00:30:00.000Z\",\n        \"end-time\": \"2025-11-27T02:00:00.000Z\",\n        \"tag-order\": [\n          \"74339\",\n          \"74340\",\n          \"74341\",\n          \"74342\",\n          \"74583\"\n        ]\n      },\n      \"relationships\": {\n        \"tags\": {\n          \"data\": [\n            {\n              \"id\": \"74339\",\n              \"type\": \"tag\"\n            },\n            {\n              \"id\": \"74340\",\n              \"type\": \"tag\"\n            },\n            {\n              \"id\": \"74341\",\n              \"type\": \"tag\"\n            },\n            {\n              \"id\": \"74342\",\n              \"type\": \"tag\"\n            },\n            {\n              \"id\": \"74583\",\n              \"type\": \"tag\"\n            }\n          ]\n        },\n        \"locations\": {\n          \"data\": [\n            {\n              \"id\": \"74343\",\n              \"type\": \"tag\"\n            }\n          ]\n        },\n        \"speaker-assignments\": {\n          \"data\": []\n        },\n        \"speakers\": {\n          \"data\": []\n        },\n        \"tabs\": {\n          \"data\": []\n        },\n        \"attendee-groups\": {\n          \"data\": []\n        },\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        },\n        \"track\": {\n           \"data\": {\n            \"id\": \"49128\",\n            \"type\": \"track\"\n                    }\n                }\n      }\n    }\n  ],\n  \"included\": [\n          {\n            \"id\": \"49128\",\n            \"type\": \"track\",\n            \"attributes\": {\n                \"name\": \"Track X\",\n                \"description\": null,\n                \"position\": 3,\n                \"enabled\": true,\n                \"default\": false,\n                \"togglable\": true,\n                \"color\": \"#0080C0\",\n                \"show-highlighted-speakers\": false,\n                \"track-type\": \"ContentTrack\"\n            }\n        },\n    {\n      \"id\": \"74339\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"Track 1\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-24T10:06:02.026Z\",\n        \"created-at\": \"2023-03-24T10:06:02.026Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"74340\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"Keynote 1\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-24T10:06:02.038Z\",\n        \"created-at\": \"2023-03-24T10:06:02.038Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"74341\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"UX\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-24T10:06:02.048Z\",\n        \"created-at\": \"2023-03-24T10:06:02.048Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"74342\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"AI\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-24T10:06:02.057Z\",\n        \"created-at\": \"2023-03-24T10:06:02.057Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"74583\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"A test tag\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-27T08:45:11.105Z\",\n        \"created-at\": \"2023-03-27T08:45:11.105Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"74343\",\n      \"type\": \"tag\",\n      \"attributes\": {\n        \"name\": \"Main hall and Venue\",\n        \"color\": \"#58D78E\",\n        \"updated-at\": \"2023-03-24T10:06:02.065Z\",\n        \"created-at\": \"2023-03-24T10:06:02.065Z\"\n      },\n      \"relationships\": {\n        \"event\": {\n          \"data\": {\n            \"id\": \"197444\",\n            \"type\": \"event\"\n          }\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"failures\": []\n  }\n}",
        "language": "200",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "PsoboMOJ9Uo00iBrqhmgp"
  },
  "examples": {
    "languages": [
      {
        "id": "cRAJpOUmTVUqZjfUl_-OZ",
        "language": "curl",
        "code": "curl --location -g --request PUT 'https://api.brella.io/api/integration/organizations/{organizationId}/events/{eventId}/timeslots/bulk_update' \\\n--header 'Brella-API-Access-Token: String' \\\n--header 'Accept: application/vnd.brella.v4+json' \\\n--header 'Content-Type: application/json'\\\n--data '{  \n     \"timeslots\": [{      \n           \"title\": \"{{session_title}}\",      \n           \"start_time\": \"{{2029-06-10T14:30:00+0200T}}\",      \n           \"end_time\": \"{{2029-11-10T16:00:00+0200}}\",      \n           \"content\": \"{{You can write <p>html</p> or just have a string. Anything here will be converted to DraftJs-consumable object}}\",  \n           \"track\":\"{{trackName}}\",     \n           \"location\": \"{{Main hall and Venue}}\",\n           \"tags\": [\"tag 01\", \"tag 02\", \"tag 03\", \"tag 04\", \"tag 05\"],\n           \"external_id\": \"{{SomeExternalId}}\",\n           \"uses_rsvp\": true,\n           \"uses_attendee_list\":true,\n           \"uses_ticket_qr_code\": true,\n           \"attendance_registration_open\": true,\n           \"attendance_cap\": 123,\n           \"registrant_list_ids\":[21782,21988],\n           \"parent_timeslot_id\": \"{{brella_id}}\",\n           \"child_sessions_section_title\": \"{{child_session_title}}\",\n           \"custom_fields_attributes\": [\n           {\n             \"key\": \"key1\",\n             \"value\": \"Value 1\"\n           },\n           {\n             \"key\": \"key2\",\n             \"value\": \"Value 2\"\n           }\n         ]         \n}]\n}'\n\n\n\n\n\n\n\n\n\n\n\n\n\n'",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "cRAJpOUmTVUqZjfUl_-OZ"
  },
  "description": "Update an existing timeslot in an event",
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "update-existing-timeslot",
  "legacyHash": "GVk1RuRk7dJUk_oA_kdbt"
}
```
:::

**REQUEST BODY**

:::BlockQuote
\{ &#x20;
&#x20;  "timeslots": \[\{     &#x20;
&#x20;    "title": "\{\{session\_title}}",     &#x20;
&#x20;    "start\_time": "\{\{2029-06-10T14:30:00+0200T}}",     &#x20;
&#x20;    "end\_time": "\{\{2029-11-10T16:00:00+0200}}",     &#x20;
&#x20;    "content": "\{\{You can write \<p>html\</p> or just have a string. Anything here will be converted to DraftJs-consumable object}}",  &#x20;
&#x20;    "track":"\{\{trackName}}",   &#x20;
&#x20;    "location": "\{\{Main hall and Venue}}",
&#x20;    "tags": \["tag 01", "tag 02", "tag 03", "tag 04", "tag 05"],
&#x20;    "external\_id": "D00BYD11-01"   &#x20;
}]
}
:::

**Required attributes:**

- `title` String / the title of the session happening in this timeslot
- `start_time` DateTime / the start date and time; see notes for more information on formatting
- `end_time` DateTime / the start date and time; see notes for more information on formatting
- `external_id` String / see notes for more information
- `tags` List / if not used, an empty list \[] must be sent

Notes:

**01:** `start_time` and `end_time` must be specified in the following format:

- YYYY-MM-DDTHH\:mm\:ssZ
- **eg:** 2029-06-10T14:30:00+0200
- The timezone of the event must be specified accurately, as the API will pass data in UTC time. In the example above +0200 refers to Helsinki time.
- Make sure that the date and time are within the event dates specified in Brella (if your event dates aren't correctly set-up in Brella, first do so via the Admin Panel (Event > Details).
- You may need to do some formatting within your integration before passing this data to Brella

**02:&#x20;**`track` is not *technically* required, but is highly recommended when passing timeslots via the API — especially if multiple sessions take place simultaneously. A single track cannot have overlapping sessions — the endpoint will return an error if this is the case.&#x20;

- If the `track` attribute is empty / not passed, Brella will automatically re-assign the timeslot being updated by the request to the default track.&#x20;
- The tracks can be existing schedule tracks (created in the Admin Panel), or tracks that do not exist. If the value passed in the `track `attribute doesn't match an existing track's name, Brella will create a new track named with the value of the `track` attribute in the request and assign the timeslot there.&#x20;

**03:&#x20;**`external_id` is not *technically* required, but is highly recommended when passing timeslots via the API. This value is used to update timeslots, and to find specific timeslots via the API. Typically, it would contain a shared value between the 3rd party system the data is coming from and Brella (eg: you could pass the unique identifier generated by the 3rd party system to the `external_id` attribute in Brella.

**04:** `uses_rsvp`, `uses_attendee_list` `uses_ticket_qr_code`, `attendance_registration_open` and `attendance_cap` allow you to control whether a session can be reserved /RSVPd in Brella.&#x20;

- `uses_rsvp` : (boolean/ true or falseTurns the feature on at the highest level. Also required in order to allow our RSVP endpoints to be used with this timeslot. This alone will NOT allow attendees to register for the timeslot in the app.
- `uses_attendee_list`: (boolean/ true or falseShow a list of all attendees within the app who have RSVPd for a particular session
- uses\_ticket\_qr\_code: (boolean/ true or false)Show the attendee's code in the session page of the app
- `attendance_registration_open`: (boolean/ true or falseAllow attendees to actually register for the ression via the app. This can be turned off at any time, after which attendees can remove their RSVPs, but not register for new sessions.
- `attendance_cap`: (integer) Limit how many attendees can register for a particular session

**05:** `attendee_group_ids`: (array containing integers) If you have existing user groups in Brella, you can allow only specific user groups to see / access this session. Send the group\_ids of the user groups that should be able to see this timeslot into this array.

**06:** `parent_timeslot_id`: (integer) If your session is a child session and you'd like to link this to an existing session, the relationship with the parent session can be established by stating the Parent Session Brella ID under this parameter.

**07**:  `custom_fields_attributes` should be an array. Each object within the `custom_fields_attributes` array corresponds to a single custom field, which can be created manually from the Admin Panel:

- The Custom Field needs to be linked to the Sessions.
- The `key` and `value` are mandatory.
- Currently, `value` needs to be a string.

