Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Nylas Configurations API
version: v3
summary: The complete Nylas v3 API — Email, Calendar, Contacts, Notetaker, Scheduling, Administration, and Migration.
description: The Nylas API is designed using the REST ideology to provide simple and predictable URIs to access and modify objects.
contact:
url: https://www.nylas.com/
x-provenance:
method: harvested
first_party: true
publisher: Nylas
source: https://developer.nylas.com/_spec-files/nylas-api.yaml
harvested: '2026-08-21'
sha256: 7ff001d571e163b1ffe22178741b59f813d8208ec878157a839a33dc2c13fd35
bytes: 1666223
note: 'Published by Nylas as the unified contract for the Nylas v3 API and stored verbatim; API Evangelist added only this provenance block. Submitted by the provider in api-evangelist/nylas#1 and verified against the live URL before harvest: OpenAPI 3.1.0, 118 paths, 208 operations, 174 component schemas, 100% of operations carrying summary, description, tag and a unique operationId, x-code-samples on 208 of 208. This document REPLACES a 22-operation scaffold API Evangelist derived from reading the documentation, now quarantined under openapi/_scaffold/.'
x-evidence:
- url: https://developer.nylas.com/_spec-files/nylas-api.yaml
what: the published unified contract, harvested verbatim 2026-08-21 (200, text/yaml, 1,666,223 bytes)
- url: https://developer.nylas.com/.well-known/api-catalog
what: RFC 9727 linkset advertising that URL as service-desc for api.us.nylas.com and api.eu.nylas.com (200, application/linkset+json)
servers:
- url: https://api.us.nylas.com
description: U.S.
- url: https://api.eu.nylas.com
description: E.U.
security:
- ACCESS_TOKEN: []
- NYLAS_API_KEY: []
tags:
- name: Configurations
description: A configuration is a collection of event settings and preferences.
paths:
/v3/grants/{grant_id}/scheduling/configurations:
parameters:
- schema:
type: string
name: grant_id
in: path
required: true
description: 'ID of the grant to access. You can also use the email address associated with the grant, or use
`/me/` to refer to the grant associated with an access token.'
example: nyla@example.com
post:
summary: Create Configuration
tags:
- Configurations
operationId: post-configurations
description: 'Creates a Configuration object that you use to define settings and preferences for a scheduling
session.
### Duplicate email notifications
If the organizer in a scheduling session is a Microsoft account user, both the organizer and all
attendees might receive duplicate email notifications, including booking confirmations, rescheduling
and cancellation notifications, and reminders. This is because of the way Microsoft handles email
notifications. If you set notifications in Scheduler, Microsoft also sends its own notifications
to the event organizer and attendees. Microsoft doesn''t provide a way to disable these
notifications.
### Metadata as additional fields
You can add metadata fields (`type: metadata`) to your Configuration to store custom information
about a booking. For example, you can add campaign tags or keywords to track specific bookings.
Booking webhook notifications (`booking.created`, `booking.rescheduled`, `booking.cancelled`,
`booking.pending`, and `booking.reminder`) include your metadata fields in
`booking_info.additional_fields`. Calendar event webhooks (for example, `event.updated`) do _not_
include them, and email notifications and booking forms don''t display them.
To identify Scheduler-related changes in event webhooks instead, use the metadata that Scheduler
stamps on the calendar events it creates. For more information, see the
`event.updated` notification schema.'
x-scopes:
google:
min: https://www.googleapis.com/auth/calendar.readonly
others: https://www.googleapis.com/auth/calendar
microsoft:
min: https://graph.microsoft.com/Calendars.Read
others: https://graph.microsoft.com/Calendars.ReadWrite
security:
- NYLAS_API_KEY: []
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/configuration'
title: Standard Configuration
- $ref: '#/components/schemas/group-configuration'
title: Group Configuration
x-code-samples:
- lang: bash
label: cURL
source: "curl --compressed --request POST \\\n --url \"https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations\" \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"requires_session_auth\": false,\n \"participants\": [{\n \"name\": \"Nyla\",\n \"email\": \"nyla@example.com\",\n \"is_organizer\": true,\n \"availability\": {\n \"calendar_ids\": [\"primary\"]\n },\n \"booking\": {\n \"calendar_id\": \"primary\"\n }\n }],\n \"availability\": {\n \"duration_minutes\": 30\n },\n \"event_booking\": {\n \"title\": \"Testing Scheduler\",\n \"hide_participants\": false,\n \"conferencing\": {\n \"provider\": \"Zoom Meeting\",\n \"autocreate\": {\n \"conf_grant_id\": \"<NYLAS_GRANT_ID>\",\n \"conf_settings\": {\n \"settings\": {\n \"join_before_host\": true,\n \"waiting_room\": false,\n \"mute_upon_entry\": false,\n \"auto_recording\": \"none\"\n }\n }\n }\n }\n }\n }'"
- lang: javascript
label: Node.js SDK
source: "import Nylas from \"nylas\";\n\nconst nylas = new Nylas({\n apiKey: \"<NYLAS_API_KEY>\",\n apiUri: \"<NYLAS_API_URI>\",\n});\n\nasync function createConfiguration() {\n try {\n const configuration = await nylas.scheduler.configurations.create({\n identifier: \"<NYLAS_GRANT_ID>\",\n requestBody: {\n participants: [\n {\n email: \"host@example.com\",\n isOrganizer: true,\n availability: {\n calendarIds: [\"primary\"],\n },\n booking: {\n calendarId: \"primary\",\n },\n },\n ],\n availability: {\n durationMinutes: 30,\n },\n eventBooking: {\n title: \"30-minute meeting\",\n },\n },\n });\n\n console.log(\"Configuration:\", configuration);\n } catch (error) {\n console.error(\"Error creating configuration:\", error);\n }\n}\n\ncreateConfiguration();\n"
- lang: python
label: Python SDK
source: "from nylas import Client\n\nnylas = Client(\n \"<NYLAS_API_KEY>\",\n \"<NYLAS_API_URI>\",\n)\n\nconfiguration = nylas.scheduler.configurations.create(\n identifier=\"<NYLAS_GRANT_ID>\",\n request_body={\n \"participants\": [\n {\n \"name\": \"<HOST_NAME>\",\n \"email\": \"<HOST_EMAIL>\",\n \"is_organizer\": True,\n \"availability\": {\n \"calendar_ids\": [\"<CALENDAR_ID>\"],\n },\n \"booking\": {\n \"calendar_id\": \"<CALENDAR_ID>\",\n },\n }\n ],\n \"availability\": {\n \"duration_minutes\": 30,\n },\n \"event_booking\": {\n \"title\": \"30-minute meeting\",\n },\n },\n)\n\nprint(\"Configuration:\", configuration)\n"
- lang: ruby
label: Ruby SDK
source: "# Load gems\nrequire 'nylas'\n\n# Initialize Nylas client\nnylas = Nylas::Client.new(\n api_key: \"<NYLAS_API_KEY>\"\n)\n\nrequest_body = {\n \"requires_session_auth\": false,\n \"participants\": [\n {\n \"name\": \"Test\",\n \"email\": \"nylas_test_8@nylas.com\",\n \"is_organizer\": true,\n \"availability\": {\n \"calendar_ids\": [\n \"primary\"\n ]\n },\n \"booking\": {\n \"calendar_id\": \"primary\"\n }\n }\n ],\n \"availability\": {\n \"duration_minutes\": 30\n },\n \"event_booking\": {\n \"title\": \"My test event\",\n \"hide_participants\": false\n }\n}\n\n# Create a configuration\nconfiguration, _request_ids = nylas.scheduler.configurations.create(identifier: \"<NYLAS_GRANT_ID>\", request_body: request_body)\n\nputs configuration"
- lang: java
label: Java SDK
source: "import com.nylas.NylasClient;\nimport com.nylas.models.Configuration;\nimport com.nylas.models.ConfigurationAvailability;\nimport com.nylas.models.ConfigurationAvailabilityParticipant;\nimport com.nylas.models.ConfigurationBookingParticipant;\nimport com.nylas.models.ConfigurationEventBooking;\nimport com.nylas.models.ConfigurationParticipant;\nimport com.nylas.models.CreateConfigurationRequest;\nimport com.nylas.models.NylasApiError;\nimport com.nylas.models.NylasSdkTimeoutError;\nimport com.nylas.models.Response;\nimport java.util.Collections;\nimport java.util.List;\n\npublic class CreateConfiguration {\n public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {\n NylasClient nylas = new NylasClient.Builder(\"<NYLAS_API_KEY>\").build();\n\n ConfigurationParticipant participant = new ConfigurationParticipant.Builder(\"host@example.com\")\n .isOrganizer(true)\n .availability(new ConfigurationAvailabilityParticipant.Builder()\n .calendarIds(Collections.singletonList(\"primary\"))\n .build())\n .booking(new ConfigurationBookingParticipant.Builder()\n .calendarId(\"primary\")\n .build())\n .build();\n\n ConfigurationAvailability availability = new ConfigurationAvailability.Builder()\n .durationMinutes(30)\n .build();\n\n ConfigurationEventBooking eventBooking = new ConfigurationEventBooking.Builder()\n .title(\"30-minute meeting\")\n .build();\n\n CreateConfigurationRequest requestBody = new CreateConfigurationRequest.Builder(\n Collections.singletonList(participant), availability, eventBooking)\n .build();\n\n Response<Configuration> configuration = nylas.scheduler().configurations()\n .create(\"<NYLAS_GRANT_ID>\", requestBody);\n\n System.out.println(\"Configuration: \" + configuration.getData());\n }\n}\n"
- lang: kotlin
label: Kotlin SDK
source: "import com.nylas.NylasClient\nimport com.nylas.models.ConfigurationAvailability\nimport com.nylas.models.ConfigurationAvailabilityParticipant\nimport com.nylas.models.ConfigurationBookingParticipant\nimport com.nylas.models.ConfigurationEventBooking\nimport com.nylas.models.ConfigurationParticipant\nimport com.nylas.models.CreateConfigurationRequest\n\nfun main() {\n val nylas = NylasClient.Builder(\"<NYLAS_API_KEY>\").build()\n\n val participant = ConfigurationParticipant.Builder(\"host@example.com\")\n .isOrganizer(true)\n .availability(ConfigurationAvailabilityParticipant.Builder()\n .calendarIds(listOf(\"primary\"))\n .build())\n .booking(ConfigurationBookingParticipant.Builder()\n .calendarId(\"primary\")\n .build())\n .build()\n\n val availability = ConfigurationAvailability.Builder()\n .durationMinutes(30)\n .build()\n\n val eventBooking = ConfigurationEventBooking.Builder()\n .title(\"30-minute meeting\")\n .build()\n\n val requestBody = CreateConfigurationRequest.Builder(\n listOf(participant), availability, eventBooking)\n .build()\n\n val configuration = nylas.scheduler().configurations()\n .create(\"<NYLAS_GRANT_ID>\", requestBody)\n\n println(\"Configuration: ${configuration.data}\")\n}\n"
responses:
'200':
$ref: '#/components/responses/configuration'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'429':
$ref: '#/components/responses/429'
'504':
$ref: '#/components/responses/504'
get:
summary: Return all Configuration objects
tags:
- Configurations
operationId: get-configurations
description: Returns all Configuration objects.
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page_token'
x-code-samples:
- lang: bash
label: cURL
source: "curl --compressed --request GET \\\n --url \"https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations\" \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --header 'Content-Type: application/json'"
- lang: javascript
label: Node.js SDK
source: "import Nylas from \"nylas\";\n\nconst nylas = new Nylas({\n apiKey: \"<NYLAS_API_KEY>\",\n apiUri: \"<NYLAS_API_URI>\",\n});\n\nasync function listConfigurations() {\n try {\n const configurations = await nylas.scheduler.configurations.list({\n identifier: \"<NYLAS_GRANT_ID>\",\n });\n\n console.log(\"Configurations:\", configurations);\n } catch (error) {\n console.error(\"Error listing configurations:\", error);\n }\n}\n\nlistConfigurations();\n"
- lang: python
label: Python SDK
source: "from nylas import Client\n\nnylas = Client(\n \"<NYLAS_API_KEY>\",\n \"<NYLAS_API_URI>\",\n)\n\nconfigurations = nylas.scheduler.configurations.list(\n identifier=\"<NYLAS_GRANT_ID>\",\n query_params={\n \"limit\": 50,\n },\n)\n\nprint(\"Configurations:\", configurations)\n"
- lang: ruby
label: Ruby SDK
source: "# Load gems\nrequire 'nylas'\n\n# Initialize Nylas client\nnylas = Nylas::Client.new(\n api_key: \"<NYLAS_API_KEY>\"\n)\n\n# Get a list of configurations\nconfigurations, _request_ids = nylas.scheduler.configurations.list(identifier: \"<NYLAS_GRANT_ID>\")\n\n# Loop the configurations\n\nconfigurations.each {|configuration|\n\tputs(\"ID: #{configuration[:id]} | Slug: #{configuration[:slug]}\")\n}"
- lang: java
label: Java SDK
source: "import com.nylas.NylasClient;\nimport com.nylas.models.Configuration;\nimport com.nylas.models.ListResponse;\nimport com.nylas.models.NylasApiError;\nimport com.nylas.models.NylasSdkTimeoutError;\n\npublic class ListConfigurations {\n public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {\n NylasClient nylas = new NylasClient.Builder(\"<NYLAS_API_KEY>\").build();\n\n ListResponse<Configuration> configurations = nylas.scheduler().configurations()\n .list(\"<NYLAS_GRANT_ID>\");\n\n System.out.println(\"Configurations: \" + configurations.getData());\n }\n}\n"
- lang: kotlin
label: Kotlin SDK
source: "import com.nylas.NylasClient\n\nfun main() {\n val nylas = NylasClient.Builder(\"<NYLAS_API_KEY>\").build()\n\n val configurations = nylas.scheduler().configurations().list(\"<NYLAS_GRANT_ID>\")\n\n println(\"Configurations: ${configurations.data}\")\n}\n"
responses:
'200':
$ref: '#/components/responses/configurations'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'429':
$ref: '#/components/responses/429'
'504':
$ref: '#/components/responses/504'
security:
- NYLAS_API_KEY: []
/v3/grants/{grant_id}/scheduling/configurations/{configuration_id}:
parameters:
- schema:
type: string
name: grant_id
in: path
required: true
description: 'ID of the grant to access. You can also use the email address associated with the grant, or use
`/me/` to refer to the grant associated with an access token.'
example: nyla@example.com
- schema:
type: string
name: configuration_id
in: path
required: true
description: The ID of the Configuration object to access.
get:
summary: Return a Configuration
tags:
- Configurations
operationId: get-configurations-id
description: Returns the specified Configuration object.
x-code-samples:
- lang: bash
label: cURL
source: "curl --compressed --request GET \\\n --url \"https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<SCHEDULER_CONFIG_ID>\" \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --header 'Content-Type: application/json'"
- lang: javascript
label: Node.js SDK
source: "import Nylas from \"nylas\";\n\nconst nylas = new Nylas({\n apiKey: \"<NYLAS_API_KEY>\",\n apiUri: \"<NYLAS_API_URI>\",\n});\n\nasync function findConfiguration() {\n try {\n const configuration = await nylas.scheduler.configurations.find({\n identifier: \"<NYLAS_GRANT_ID>\",\n configurationId: \"<CONFIGURATION_ID>\",\n });\n\n console.log(\"Configuration:\", configuration);\n } catch (error) {\n console.error(\"Error finding configuration:\", error);\n }\n}\n\nfindConfiguration();\n"
- lang: python
label: Python SDK
source: "from nylas import Client\n\nnylas = Client(\n \"<NYLAS_API_KEY>\",\n \"<NYLAS_API_URI>\",\n)\n\nconfiguration = nylas.scheduler.configurations.find(\n identifier=\"<NYLAS_GRANT_ID>\",\n config_id=\"<SCHEDULER_CONFIG_ID>\",\n)\n\nprint(\"Configuration:\", configuration)\n"
- lang: ruby
label: Ruby SDK
source: "# Load gems\nrequire 'nylas'\n\n# Initialize Nylas client\nnylas = Nylas::Client.new(\n api_key: \"<NYLAS_API_KEY>\"\n)\n\nconfiguration, _request_ids = nylas.scheduler.configurations.find(identifier: \"<NYLAS_GRANT_ID>\", configuration_id: \"<SCHEDULER_CONFIG_ID>\")\n\nputs configuration"
- lang: java
label: Java SDK
source: "import com.nylas.NylasClient;\nimport com.nylas.models.Configuration;\nimport com.nylas.models.NylasApiError;\nimport com.nylas.models.NylasSdkTimeoutError;\nimport com.nylas.models.Response;\n\npublic class FindConfiguration {\n public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {\n NylasClient nylas = new NylasClient.Builder(\"<NYLAS_API_KEY>\").build();\n\n Response<Configuration> configuration = nylas.scheduler().configurations()\n .find(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\");\n\n System.out.println(\"Configuration: \" + configuration.getData());\n }\n}\n"
- lang: kotlin
label: Kotlin SDK
source: "import com.nylas.NylasClient\n\nfun main() {\n val nylas = NylasClient.Builder(\"<NYLAS_API_KEY>\").build()\n\n val configuration = nylas.scheduler().configurations()\n .find(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\")\n\n println(\"Configuration: ${configuration.data}\")\n}\n"
responses:
'200':
$ref: '#/components/responses/configuration'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
'504':
$ref: '#/components/responses/504'
security:
- NYLAS_API_KEY: []
put:
summary: Update Configuration
tags:
- Configurations
operationId: put-configurations-id
description: 'Updates the specified Configuration object.
When you make a `PUT` request, Nylas replaces all data in the nested object with the information
included in your request. For more information, see
Updating objects.'
x-scopes:
google:
min: https://www.googleapis.com/auth/calendar.readonly
others: https://www.googleapis.com/auth/calendar
microsoft:
min: https://graph.microsoft.com/Calendars.Read
others: https://graph.microsoft.com/Calendars.ReadWrite
security:
- NYLAS_API_KEY: []
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/configuration'
title: Standard Configuration
- $ref: '#/components/schemas/group-configuration'
title: Group Configuration
x-code-samples:
- lang: bash
label: cURL
source: "curl --compressed --request PUT \\\n --url \"https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<SCHEDULER_CONFIGURATION_ID>\" \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"event_booking\": {\n \"title\": \"Testing Scheduler\",\n \"hide_participants\": false,\n \"conferencing\": {\n \"provider\": \"Zoom Meeting\",\n \"autocreate\": {\n \"conf_grant_id\": \"<NYLAS_GRANT_ID>\",\n \"conf_settings\": {\n \"settings\": {\n \"join_before_host\": true,\n \"waiting_room\": false,\n \"mute_upon_entry\": false,\n \"auto_recording\": \"none\"\n }\n }\n }\n }\n }\n \"scheduler\": {\n \"rescheduling_url\": \"https://www.example.com/reschdule/:booking_ref\",\n \"cancellation_url\": \"https://www.example.com/cancel/:booking_ref\" \n }\n }'"
- lang: javascript
label: Node.js SDK
source: "import Nylas from \"nylas\";\n\nconst nylas = new Nylas({\n apiKey: \"<NYLAS_API_KEY>\",\n apiUri: \"<NYLAS_API_URI>\",\n});\n\nasync function updateConfiguration() {\n try {\n const configuration = await nylas.scheduler.configurations.update({\n identifier: \"<NYLAS_GRANT_ID>\",\n configurationId: \"<CONFIGURATION_ID>\",\n requestBody: {\n availability: {\n durationMinutes: 45,\n },\n },\n });\n\n console.log(\"Updated configuration:\", configuration);\n } catch (error) {\n console.error(\"Error updating configuration:\", error);\n }\n}\n\nupdateConfiguration();\n"
- lang: ruby
label: Ruby SDK
source: "# Load gems\nrequire 'nylas'\n\n# Initialize Nylas client\nnylas = Nylas::Client.new(\n api_key: \"<NYLAS_API_KEY>\"\n)\n\nrequest_body = {\n \"availability\": {\n \"duration_minutes\": 60\n }\n}\n\nconfiguration, _request_ids = nylas.scheduler.configurations.update(identifier: \"<NYLAS_GRANT_ID>\", configuration_id: \"<SCHEDULER_CONFIG_ID>\", request_body: request_body)\n\nputs configuration"
- lang: java
label: Java SDK
source: "import com.nylas.NylasClient;\nimport com.nylas.models.Configuration;\nimport com.nylas.models.ConfigurationAvailability;\nimport com.nylas.models.NylasApiError;\nimport com.nylas.models.NylasSdkTimeoutError;\nimport com.nylas.models.Response;\nimport com.nylas.models.UpdateConfigurationRequest;\n\npublic class UpdateConfiguration {\n public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {\n NylasClient nylas = new NylasClient.Builder(\"<NYLAS_API_KEY>\").build();\n\n ConfigurationAvailability availability = new ConfigurationAvailability.Builder()\n .durationMinutes(45)\n .build();\n\n UpdateConfigurationRequest requestBody = new UpdateConfigurationRequest.Builder()\n .availability(availability)\n .build();\n\n Response<Configuration> configuration = nylas.scheduler().configurations()\n .update(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\", requestBody);\n\n System.out.println(\"Updated configuration: \" + configuration.getData());\n }\n}\n"
- lang: kotlin
label: Kotlin SDK
source: "import com.nylas.NylasClient\nimport com.nylas.models.ConfigurationAvailability\nimport com.nylas.models.UpdateConfigurationRequest\n\nfun main() {\n val nylas = NylasClient.Builder(\"<NYLAS_API_KEY>\").build()\n\n val availability = ConfigurationAvailability.Builder()\n .durationMinutes(45)\n .build()\n\n val requestBody = UpdateConfigurationRequest.Builder()\n .availability(availability)\n .build()\n\n val configuration = nylas.scheduler().configurations()\n .update(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\", requestBody)\n\n println(\"Updated configuration: ${configuration.data}\")\n}\n"
responses:
'200':
$ref: '#/components/responses/configuration'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
'504':
$ref: '#/components/responses/504'
delete:
summary: Delete a Configuration
tags:
- Configurations
operationId: delete-configurations-id
description: 'Deletes the specified Configuration object. You can''t delete a Configuration that has active
sessions.'
x-code-samples:
- lang: bash
label: cURL
source: "curl --compressed --request DELETE \\\n --url \"https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<SCHEDULER_CONFIG_ID>\" \\\n --header 'Accept: application/json' \\\n --header 'Authorization: Bearer <NYLAS_API_KEY>' \\\n --header 'Content-Type: application/json'"
- lang: javascript
label: Node.js SDK
source: "import Nylas from \"nylas\";\n\nconst nylas = new Nylas({\n apiKey: \"<NYLAS_API_KEY>\",\n apiUri: \"<NYLAS_API_URI>\",\n});\n\nasync function deleteConfiguration() {\n try {\n const result = await nylas.scheduler.configurations.destroy({\n identifier: \"<NYLAS_GRANT_ID>\",\n configurationId: \"<CONFIGURATION_ID>\",\n });\n\n console.log(\"Deleted configuration:\", result);\n } catch (error) {\n console.error(\"Error deleting configuration:\", error);\n }\n}\n\ndeleteConfiguration();\n"
- lang: python
label: Python SDK
source: "from nylas import Client\n\nnylas = Client(\n \"<NYLAS_API_KEY>\",\n \"<NYLAS_API_URI>\",\n)\n\nresponse = nylas.scheduler.configurations.destroy(\n identifier=\"<NYLAS_GRANT_ID>\",\n config_id=\"<SCHEDULER_CONFIG_ID>\",\n)\n\nprint(\"Configuration deleted:\", response)\n"
- lang: ruby
label: Ruby SDK
source: "# Load gems\nrequire 'nylas'\n\n# Initialize Nylas client\nnylas = Nylas::Client.new(\n api_key: \"<NYLAS_API_KEY>\"\n)\n\n_, request_ids = nylas.scheduler.configurations.destroy(identifier: \"<NYLAS_GRANT_ID>\", configuration_id: \"<SCHEDULER_CONFIG_ID>\")\n\nputs request_ids"
- lang: java
label: Java SDK
source: "import com.nylas.NylasClient;\nimport com.nylas.models.DeleteResponse;\nimport com.nylas.models.NylasApiError;\nimport com.nylas.models.NylasSdkTimeoutError;\n\npublic class DeleteConfiguration {\n public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {\n NylasClient nylas = new NylasClient.Builder(\"<NYLAS_API_KEY>\").build();\n\n DeleteResponse result = nylas.scheduler().configurations()\n .destroy(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\", null);\n\n System.out.println(\"Deleted configuration: \" + result);\n }\n}\n"
- lang: kotlin
label: Kotlin SDK
source: "import com.nylas.NylasClient\n\nfun main() {\n val nylas = NylasClient.Builder(\"<NYLAS_API_KEY>\").build()\n\n val result = nylas.scheduler().configurations()\n .destroy(\"<NYLAS_GRANT_ID>\", \"<CONFIGURATION_ID>\")\n\n println(\"Deleted configuration: $result\")\n}\n"
responses:
'200':
$ref: '#/components/responses/200-delete'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
'429':
$ref: '#/components/responses/429'
'504':
$ref: '#/components/responses/504'
security:
- NYLAS_API_KEY: []
components:
responses:
configurations:
description: Configuration objects returned
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/common_response_with_cursor'
- properties:
data:
type: array
items:
type: object
oneOf:
- title: Standard Configuration
description: Single-host configuration for one-on-one bookings.
properties:
appearance:
type:
- object
- 'null'
example: null
availability:
type: object
description: The rules that determine available time slots for the event.
properties:
availability_rules:
type: object
description: A list of availability rules that apply to all participants.
properties:
availability_method:
type: string
description: The method Nylas uses to calculate availability for all participants.
example: collective
buffer:
type: object
description: A list of rules that set buffer time around events for all participants.
properties:
after:
type: integer
description: 'The amount of buffer time to add after meetings. For example, if
an account has a meeting scheduled from 10:00–11:00a.m., and you
set an after buffer of 15 minutes, Nylas treats 10:00–11:15a.m. as
busy.'
example: 15
before:
type: integer
description: 'The amount of buffer time to add before meetings. For example, if
an account has a meeting scheduled from 10:00–11:00a.m., and you
set a before buffer of 30 minutes, Nylas treats 9:30–11:00a.m. as
busy.'
example: 5
duration_minutes:
type: integer
description: The total duration of the event, in minutes.
example: 30
interval_minutes:
type: integer
description: The interval between meetings, in minutes.
example: 15
round_to:
type: integer
description: 'Nylas rounds each time slot to the nearest `round_to` value. For example,
if a time slot starts at 9:05a.m. and `round_to` is set to 15, Nylas rounds
it to 9:15a.m.'
example: 5
event_booking:
type: object
description: An object containing details about the booking.
properties:
booking_type:
type: string
description: The booking type.
example: booking
disable_emails:
type:
- boolean
- 'null'
# --- truncated at 32 KB (128 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nylas/refs/heads/main/openapi/nylas-configurations-api-openapi.yml