# Update Configuration

> **PUT** `https://api.us.nylas.com/v3/grants/{grant_id}/scheduling/configurations/{configuration_id}`

Source: https://developer.nylas.com/docs/reference/api/configurations/put-configurations-id/

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](/docs/reference/api/#updating-objects).

**Authentication:** NYLAS_API_KEY

## Parameters

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `grant_id` | string | Yes | 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. |
| `configuration_id` | string | Yes | The ID of the Configuration object to access. |

## Request body

Content-Type: application/json

- **Standard Configuration**
  - `appearance` (any) - An object that defines the appearance settings for the Scheduling Page. This field
may be `null` if no appearance customization has been set.
  - `availability` (object) **(required)** - The rules that determine the available time slots for the event.
    - `duration_minutes` (integer) **(required)** - The total number of minutes the event should last.
    - `interval_minutes` (integer) - The interval between meetings. Nylas checks from the nearest interval of the passed `start_time`. For example, you schedule 30-minute meetings (`duration_minutes`) with 15 minutes between them (`interval_minutes`). If you have a meeting starting at 9:59, the API returns times starting at 10:00 (10:00-10:30, 10:15-10:45).
    - `round_to` (integer) - 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. Must be a multiple of 5 minutes.
    - `availability_rules` (object) - Availability rules for the scheduling configuration. These rules define how Nylas calculates availability for all participants.
      - `availability_method` (string) - The method that Nylas uses to calculate availability for all participants. For one-on-one meetings, the `availability_method` is always `collective`.
      - `buffer` (object) - The amount of buffer time to add around existing meetings, in minutes. For example, if an account has a meeting scheduled from 10–11a.m., and you set a buffer of 30 minutes, Nylas treats 9:30–11:30a.m. as busy.
        - `before` (integer) - The amount of buffer time to add before meetings, in increments of five minutes. 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.

This value must be between 0 and 120, and must be divisible by 5.
        - `after` (integer) - The amount of buffer time to add after meetings, in increments of five minutes. 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.

This value must be between 0 and 120, and must be divisible by 5.
      - `default_open_hours` (array) - A default set of open hours to apply to participants that don't define participant-level `open_hours`. You can overwrite these open hours for individual participants by specifying `open_hours` on the participant object. In Scheduler configurations, set `event_booking.timezone` to control the timezone used when Scheduler evaluates default open hours.
        - `days` (array) - The days of the week that the open hour settings are applied to. Sunday corresponds to `0`, and Saturday corresponds to `6`.
        - `start` (string) - The start time in 24-hour time format. Single-digit hours doesn't have a leading zero. The earliest start time is `0:00`, and the latest start time is `23:49`.
        - `end` (string) - The end time in a 24-hour time format. Single-digit hours doesn't have a leading zero.
        - `timezone` (string) - The timezone for this open-hours block, as an [IANA-formatted](https://en.wikipedia.org/wiki/Tz_database) string.

For participant `open_hours`, this value applies only to the open-hours block where you define it and overrides the participant's `timezone`. If you omit it, Scheduler uses the participant's `timezone`, then `event_booking.timezone`.

For `default_open_hours` in Scheduler configurations, set `event_booking.timezone` to control the timezone that Scheduler uses when evaluating default open hours.
        - `exdates` (array) - A list of dates that are excluded from the open hours. Dates should be formatted as `YYYY-MM-DD`.
      - `default_specific_time_availability` (array) - Default specific date and time availability that applies to ALL participants in this configuration.
These are merged with participant-specific entries, with participant entries taking precedence
for the same date. Use this to define organization-wide special hours (e.g., holidays, events).
        - `date` (string) **(required)** - The date in YYYY-MM-DD format.
        - `start` (string) **(required)** - The start time in HH:MM format (24-hour clock).
Use "00:00" with end "00:00" to mark the date as closed/unavailable.
        - `end` (string) **(required)** - The end time in HH:MM format (24-hour clock).
        - `timezone` (string) - The timezone for this specific date entry (e.g., "America/New_York").
Required when using default_specific_time_availability to ensure proper timezone conversion
across participants. When specified, `event_booking.timezone` must also be set.
      - `only_specific_time_availability` (boolean) - When `true`, ALL participants will ONLY be available at times defined in `default_specific_time_availability`
and their individual `specific_time_availability` entries. Regular `open_hours` and `default_open_hours`
are completely ignored.

This is useful for:
- Temporary availability windows (e.g., hiring events, special booking periods)
- Disabling all availability by setting to `true` with no specific dates defined

**Note**: When set at the config level, individual participants cannot override this to `false`.
  - `event_booking` (object) **(required)**
    - `booking_type` (string) - The booking type. If set to `booking`, Scheduler follows the
[standard booking flow](/docs/v3/scheduler/customize-booking-flows/).

If set to `organizer-confirmation`, Scheduler creates an event marked "Pending" in the organizer's
calendar and sends a confirmation request email to the organizer. The confirmation request email
includes a link to a page where the organizer can confirm or cancel the booking.
    - `conferencing` (object) - An object that lets you automatically create a conference, or enter conferencing details manually.

You can't use `autocreate` and `details` in the same request. If you do, Nylas returns an error.

Nylas stores conference information in the event description. To remove conference details, set
`conferencing` to `{}` and remove the corresponding conference information from the description in
the same request.
      - **Auto-conferencing**
        - `provider` (string) - The conferencing provider that Nylas uses to create the conference.
        - `autocreate` (object) - When you include `autocreate` in your request, Nylas automatically creates conferencing
details for the event.

If you specify a conferencing provider that isn't available to your user's account, you need
to include the `conf_grant_id` that belongs to a provider with the supported conference type.
For example, if you specify the `provider` is `Google Meet` and the user authenticated with
a Microsoft account, you need to define the `conf_grant_id`. If the `provider` is
`Zoom Meeting`, you always need to specify a `conf_grant_id`.

When you specify a `conf_grant_id`, the user that belongs to the specified grant ID acts as
a conference host. They need to join the conference at the scheduled time and admit other
participants during the meeting.

If the `provider` is `Zoom Meeting`, your Zoom OAuth app must include the following
[granular scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-granular/)
for Nylas to manage meetings on behalf of the user:

- `meeting:write:meeting` — required to **create** Zoom meetings.
- `meeting:update:meeting` — required to **update** Zoom meetings (for example, when event time or title changes).
- `meeting:delete:meeting` — required to **delete** Zoom meetings (when events are removed).

If any of these scopes are missing, the Zoom API rejects the request. After adding scopes
to your Zoom app, affected users must re-authenticate their grant so their access tokens
include the new scopes.

If the `provider` is `Zoom Meeting`, you can include the `conf_settings` object in your
request. It contains a `settings` property where you can pass parameters from
[Zoom's Create a Meeting API](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/meetingCreate).
These settings make your Zoom integration more accessible, but potentially less secure. We
recommend you review your organization's security requirements.

You can include other provider settings in `autocreate.settings`, but Nylas does _not_
validate them.
      - **Google Meet**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Google Meet conferencing details.
          - `url` (string) **(required)** - The URL for the Google Meet conference.
          - `phone` (array) - The phone number associated with the Google Meet conference. This array accepts only
one phone number.
          - `pin` (string) - The PIN associated with the Google Meet conference, if applicable.
      - **Zoom Meeting**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Zoom conferencing details.
          - `url` (string) **(required)** - The URL for the Zoom conference.
          - `meeting_code` (string,null) - A unique ID associated with the Zoom conference.
          - `password` (string,null) - The password for the Zoom conference, if applicable.
      - **Microsoft Teams**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Microsoft Teams conferencing details.
          - `url` (string) **(required)** - The URL for the Microsoft Teams conference.
      - **Teams for Business**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Microsoft Teams for Enterprise conferencing details.
          - `url` (string) **(required)** - The URL for the Microsoft Teams for Enterprise conference.
      - **Skype for Consumer**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Skype for Consumer conferencing details.
          - `url` (string) **(required)** - The URL for the Skype for Consumer conference.
      - **Skype for Business**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains Skype for Business conferencing details.
          - `url` (string) **(required)** - The URL for the Skype for Business conference.
      - **WebEx**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains WebEx conferencing details.
          - `url` (string) **(required)** - The URL for the WebEx conference.
          - `password` (string) - The password for the WebEx conference, if applicable.
          - `pin` (string) - The PIN for the WebEx conference, if applicable.
          - `phone` (array) - The phone number associated with the WebEx conference.
      - **GoToMeeting**
        - `provider` (string) - The conferencing provider for the event.
        - `details` (object) - An object that contains GoToMeeting conferencing details.
          - `url` (string) **(required)** - The URL for the GoToMeeting conference.
          - `meeting_code` (string) - A unique ID associated with the GoToMeeting conference.
          - `password` (string) - The password for the GoToMeeting conference, if applicable.
          - `phone` (array) - The phone number associated with the GoToMeeting conference.
    - `description` (string) - The description of the event.
    - `disable_emails` (boolean,null) - When `true`, Nylas doesn't send email notifications when an event is booked, cancelled, or
rescheduled. When `null`, the default behavior applies (emails are sent).
    - `hide_participants` (boolean,null) - When `true`, Nylas creates the event with `hide_participants=true`, so the host can see who's on the event but the guests cannot. When `null`, the default behavior applies (participants are visible).
    - `location` (string) - The location of the event.
    - `notify_participants` (boolean,null) - When `true`, the calendar provider sends notifications to participants when the
event is created, updated, or deleted. Microsoft grants ignore this flag and
always notify participants. This field may be `null` if not explicitly set on
the configuration; treat `null` the same as `false` (the default behavior).
    - `reminders` (array)
      - `email_subject` (string) - (Email reminders only) The subject line of the email reminder.
      - `minutes_before_event` (integer) - The number of minutes before the event to send the reminder.
      - `recipient` (string) - (Email reminders only) Who should receive the reminder.
      - `type` (string) - The reminder type.
    - `timezone` (string) - The timezone Nylas uses to display times in confirmation messages and reminders. This must be
an [IANA-formatted string](https://en.wikipedia.org/wiki/Tz_database).
    - `title` (string) **(required)** - The title of the event.
  - `name` (string) - The name of the Scheduling Page. If not defined, Nylas defaults to the organizer's name.
  - `participants` (array) **(required)** - A list of participants to be included in the scheduled event. All participants' email addresses
must be associated with a valid Nylas grant.
    - `availability` (object) **(required)** - The availability data for the participant. If omitted, the participant is considered to be available at all times. At least one participant must have availability data.
      - `calendar_ids` (array) **(required)** - A list of calendar IDs associated with the participant's email address. These calendars are used to check the participant's availability.
      - `open_hours` (array) - An array of objects for the participant's open hours. Nylas searches for free time slots within these open hours.
        - `days` (array) - The days of the week that the open hour settings are applied to. Sunday corresponds to `0`, and Saturday corresponds to `6`.
        - `start` (string) - The start time in 24-hour time format. Single-digit hours doesn't have a leading zero. The earliest start time is `0:00`, and the latest start time is `23:49`.
        - `end` (string) - The end time in a 24-hour time format. Single-digit hours doesn't have a leading zero.
        - `timezone` (string) - The timezone for this open-hours block, as an [IANA-formatted](https://en.wikipedia.org/wiki/Tz_database) string.

For participant `open_hours`, this value applies only to the open-hours block where you define it and overrides the participant's `timezone`. If you omit it, Scheduler uses the participant's `timezone`, then `event_booking.timezone`.

For `default_open_hours` in Scheduler configurations, set `event_booking.timezone` to control the timezone that Scheduler uses when evaluating default open hours.
        - `exdates` (array) - A list of dates that are excluded from the open hours. Dates should be formatted as `YYYY-MM-DD`.
    - `booking` (object) **(required)** - The booking data for the participant. If omitted, the participant is not included in the booked event. At least one participant must have booking data.
      - `calendar_id` (string) **(required)** - The calendar ID that the event is created in.
    - `email` (string) **(required)** - The participant's email address. The email address must be associated with a valid Nylas grant.
    - `grant_id` (string) - The participant's grant ID.
    - `is_organizer` (boolean) - When `true`, indicates that the participant is the organizer of the event.

For non-round-robin meetings, one of the participants must be specified as the organizer. For
round-robin meetings, remove the `is_organizer` key/value pair or set `is_organizer` to `false`
for all participants.
    - `name` (string) - The participant's name.
    - `specific_time_availability` (array) - A specific date and time range when the participant is available.
Use "00:00" for both start and end to explicitly mark a date as unavailable.
      - `date` (string) **(required)** - The date in YYYY-MM-DD format.
      - `start` (string) **(required)** - The start time in HH:MM format (24-hour clock).
Use "00:00" with end "00:00" to explicitly mark this date as unavailable.
      - `end` (string) **(required)** - The end time in HH:MM format (24-hour clock).
      - `timezone` (string) - The timezone for this specific date (e.g., "America/New_York").
Optional for participant-level entries. Uses the participant's timezone if not specified.
    - `only_specific_time_availability` (boolean) - When `true`, this participant will ONLY be available at times defined in their
`specific_time_availability` entries. Their regular `open_hours` are ignored.

If the config-level `availability_rules.only_specific_time_availability` is `true`,
this participant-level setting cannot override it to `false`.

Setting to `true` with an empty `specific_time_availability` array results in
zero availability for this participant (useful for temporarily disabling someone).
    - `timezone` (string) - The timezone in which the participant is located, as an
[IANA-formatted](https://en.wikipedia.org/wiki/Tz_database) string. Nylas uses this when
calculating the participant's open hours, and in email notifications.

If a participant `open_hours` block includes its own `timezone`, the open-hours timezone
overrides this participant timezone for that block. If participant `open_hours` doesn't include
a `timezone`, Scheduler uses this participant timezone, then `event_booking.timezone`.
  - `requires_session_auth` (boolean,null) - When `true`, the scheduling [Availability](/docs/reference/api/availability/) and
[Bookings](/docs/reference/api/bookings/) endpoints require a valid session ID to
authenticate requests using the specified Configuration. This field may be `null`
if not explicitly set on the configuration; treat `null` the same as `false`
(the default behavior).
  - `scheduler` (object)
    - `additional_fields` (object)
    - `available_days_in_future` (integer) - The number of days in the future that Scheduler is available for scheduling events.
    - `min_booking_notice` (integer,null) - The minimum number of minutes in the future that a user can make a new booking. This field may be `null` if not explicitly set on the configuration; treat `null` the same as `60` (the default behavior).
    - `min_cancellation_notice` (integer) - The minimum number of minutes before a booking can be cancelled.
    - `cancellation_policy` (string) - A message about the cancellation policy to display to users when booking an event.
    - `rescheduling_url` (string) - The URL used to reschedule bookings. This URL is included in confirmation messages.
    - `cancellation_url` (string) - The URL used to cancel bookings. This URL is included in confirmation messages.
    - `organizer_confirmation_url` (string) - The URL used to confirm or cancel pending bookings. This URL is included in booking request
messages.
    - `confirmation_redirect_url` (string) - The URL that Nylas redirects the user to when the booking is confirmed.
    - `hide_rescheduling_options` (boolean) - If `true`, the option to reschedule an event is hidden in booking confirmations and email notifications.
    - `hide_cancellation_options` (boolean) - If `true`, the option to cancel an event is hidden in booking confirmations and email notifications.
    - `hide_additional_guests` (boolean) - Whether to hide the **Additional guests** field on the Scheduling Page. If `true`, guests cannot invite additional guests to the event.
    - `notetaker_settings` (object) - Settings for automatically adding a Notetaker bot to bookings created with this configuration.
When enabled, Notetaker joins the meeting to record, transcribe, and optionally generate
summaries and action items. Requires `event_booking.conferencing` to be configured.
      - `enabled` (boolean) - When `true`, automatically creates a Notetaker bot for bookings made with this configuration.
The bot joins the meeting at the scheduled time to record and transcribe.
      - `show_ui_consent_message` (boolean) - When `true`, displays a consent message in the Scheduler UI informing guests that the
meeting will be recorded.
      - `notetaker_name` (string) - The display name for the Notetaker bot that joins the meeting.
Maximum 255 characters.
      - `meeting_settings` (object) - A collection of settings for the Notetaker bot.
        - `action_items` (boolean) - When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is
`true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `action_items_settings` (object)
          - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the list of action items
it generates. `action_items` must be `true` to use this field.
        - `audio_recording` (boolean) - When `true`, Notetaker records the meeting's audio.
        - `leave_after_silence_seconds` (integer) - The number of seconds of silence after which the Notetaker bot automatically leaves
the meeting. This helps end recordings when meetings have concluded but participants
haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
        - `summary` (boolean) - When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`,
`video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `summary_settings` (object)
          - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates.
`summary` must be `true` to use this field.
        - `transcription` (boolean) - When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`,
`video_recording` and `audio_recording` must also be `true`.
        - `video_recording` (boolean) - When `true`, Notetaker records the meeting's video.
        - `transcription_settings` (object) - Optional settings that tune how Notetaker transcribes audio. `transcription` must be
`true` for these settings to take effect. Provide any combination of the fields below.

The fields fall into two independent groups:

- **Language hints** (`expected_languages`, `fallback_language`) constrain automatic
  language detection. This declares the languages you expect; it does not translate
  transcripts or force the recording into a specific language.
- **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward
  domain-specific terms such as names, acronyms, and product names.

Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar,
events inherit the value unless the event's own request overrides it. Send `null` or `{}`
to clear inherited settings and return to default transcription behavior.

See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for
supported language codes and validation rules.
          - `expected_languages` (array) - Language codes the audio is expected to contain. Optional. When provided, it must
contain at least one supported code and cannot be `null` or empty. When omitted,
transcription considers all supported languages.
          - `fallback_language` (string) - Language to use if Notetaker does not detect one of the `expected_languages`. Optional.
When `expected_languages` is set, the fallback must be one of those codes. When
`expected_languages` is omitted, transcription considers all supported languages and
the fallback may be any supported code. When `fallback_language` is omitted, the
transcriber auto-detects the language. The field is not stored, so responses do not
return it.
          - `keywords` (array) - Domain-specific terms that bias transcription toward recognizing them correctly, such
as names, acronyms, and product names. Optional. Up to 200 terms; each term must be
1 to 200 characters and cannot contain control characters. Cannot be `null`.
          - `use_speaker_names_as_keywords` (boolean) - When `true`, Notetaker adds known speaker names to the keyword set so they are
transcribed accurately. Optional. Cannot be `null`.
    - `email_template` (object) - Configurable settings for booking emails.
      - `booking_confirmed` (object) - Configurable settings specifically for booking confirmed emails.
        - `title` (string) - The title to replace the default 'Booking Confirmed' title. This doesn't change the email subject line. Only visible in emails sent to guests.
        - `body` (string) - The additional body to be appended after the default body. Only visible in emails sent to guests.
      - `logo` (string) - The URL of a custom logo that is displayed at the top of the booking email. Replaces the default
Nylas logo. The URL needs to be publicly accessible.
      - `show_nylas_branding` (boolean) - When `true`, displays Nylas branding in the booking email.
  - `slug` (string,null) - The slug for the Configuration object. This is an optional, unique identifier. You can use the
slug instead of the `configuration_id` when making requests to the Nylas Scheduling endpoints.
Slugs are unique to each Nylas application. This field may be `null` if no slug has been set.
- **Group Configuration**
  - `appearance` (object) - Appearance settings definitions for the Scheduling Page.
    - `your-key` (string) - A key-value pair. For pre-defined keys for hosted Scheduling Pages, see [Styling options for hosted Scheduling Pages](/docs/v3/scheduler/customize-scheduler/#styling-options-for-hosted-scheduling-pages).
  - `group_booking` (object) **(required)** - Settings for the group booking.
    - `booking_type` (string) - The booking type. Group Configurations support `booking` only, and follow the
[standard booking flow](/docs/v3/scheduler/customize-booking-flows/).
    - `calendar_id` (string) **(required)** - The ID of the calendar on which the group event is created. Nylas doesn't support read-only
calendars.
    - `disable_emails` (boolean,null) - When `true`, Nylas doesn't send email notifications when an event is booked, cancelled, or
rescheduled. When `null`, the default behavior applies (emails are sent).
    - `reminders` (array) - A list of reminders for the event.
      - `email_subject` (string) - (Email reminders only) The subject line for the email reminder.
      - `minutes_before_event` (integer) **(required)** - The number of minutes before the event to send the reminder.
      - `recipient` (string) - (Email reminders only) Who should receive the email reminder.
      - `type` (string) **(required)** - The reminder type.
  - `name` (string) **(required)** - The name of the Scheduling Page.
  - `requires_session_auth` (boolean,null) - When `true`, the [Availability](/docs/reference/api/availability/) and
[Bookings](/docs/reference/api/bookings/) endpoints require a valid session ID to
authenticate requests using the specified Configuration. This field may be `null`
if not explicitly set on the configuration; treat `null` the same as `false`
(the default behavior).
  - `scheduler` (object)
    - `additional_fields` (object)
    - `available_days_in_future` (integer) - The number of days in the future that Scheduler is available for scheduling events.
    - `min_booking_notice` (integer,null) - The minimum number of minutes in the future that a user can make a new booking. This field may be `null` if not explicitly set on the configuration; treat `null` the same as `60` (the default behavior).
    - `min_cancellation_notice` (integer) - The minimum number of minutes before a booking can be cancelled.
    - `cancellation_policy` (string) - A message about the cancellation policy to display to users when booking an event.
    - `rescheduling_url` (string) - The URL used to reschedule bookings. This URL is included in confirmation messages.
    - `cancellation_url` (string) - The URL used to cancel bookings. This URL is included in confirmation messages.
    - `organizer_confirmation_url` (string) - The URL used to confirm or cancel pending bookings. This URL is included in booking request
messages.
    - `confirmation_redirect_url` (string) - The URL that Nylas redirects the user to when the booking is confirmed.
    - `hide_rescheduling_options` (boolean) - If `true`, the option to reschedule an event is hidden in booking confirmations and email notifications.
    - `hide_cancellation_options` (boolean) - If `true`, the option to cancel an event is hidden in booking confirmations and email notifications.
    - `hide_additional_guests` (boolean) - Whether to hide the **Additional guests** field on the Scheduling Page. If `true`, guests cannot invite additional guests to the event.
    - `notetaker_settings` (object) - Settings for automatically adding a Notetaker bot to bookings created with this configuration.
When enabled, Notetaker joins the meeting to record, transcribe, and optionally generate
summaries and action items. Requires `event_booking.conferencing` to be configured.
      - `enabled` (boolean) - When `true`, automatically creates a Notetaker bot for bookings made with this configuration.
The bot joins the meeting at the scheduled time to record and transcribe.
      - `show_ui_consent_message` (boolean) - When `true`, displays a consent message in the Scheduler UI informing guests that the
meeting will be recorded.
      - `notetaker_name` (string) - The display name for the Notetaker bot that joins the meeting.
Maximum 255 characters.
      - `meeting_settings` (object) - A collection of settings for the Notetaker bot.
        - `action_items` (boolean) - When `true`, Notetaker generates a list of action items from the meeting. If `action_items` is
`true`, `video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `action_items_settings` (object)
          - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the list of action items
it generates. `action_items` must be `true` to use this field.
        - `audio_recording` (boolean) - When `true`, Notetaker records the meeting's audio.
        - `leave_after_silence_seconds` (integer) - The number of seconds of silence after which the Notetaker bot automatically leaves
the meeting. This helps end recordings when meetings have concluded but participants
haven't disconnected the call. Must be between 10 and 3600 seconds (1 hour).
        - `summary` (boolean) - When `true`, Notetaker generates a summary of the meeting. If `summary` is `true`,
`video_recording`, `audio_recording`, and `transcription` must also be `true`.
        - `summary_settings` (object)
          - `custom_instructions` (string) - A custom prompt to pass to Nylas' AI model and specify settings for the summary it generates.
`summary` must be `true` to use this field.
        - `transcription` (boolean) - When `true`, Notetaker transcribes the meeting's audio. If `transcription` is `true`,
`video_recording` and `audio_recording` must also be `true`.
        - `video_recording` (boolean) - When `true`, Notetaker records the meeting's video.
        - `transcription_settings` (object) - Optional settings that tune how Notetaker transcribes audio. `transcription` must be
`true` for these settings to take effect. Provide any combination of the fields below.

The fields fall into two independent groups:

- **Language hints** (`expected_languages`, `fallback_language`) constrain automatic
  language detection. This declares the languages you expect; it does not translate
  transcripts or force the recording into a specific language.
- **Keyword hints** (`keywords`, `use_speaker_names_as_keywords`) bias recognition toward
  domain-specific terms such as names, acronyms, and product names.

Set on individual Notetakers, on calendar sync, or on event sync. When set on a calendar,
events inherit the value unless the event's own request overrides it. Send `null` or `{}`
to clear inherited settings and return to default transcription behavior.

See [Set transcription languages](/docs/v3/notetaker/#set-transcription-languages) for
supported language codes and validation rules.
          - `expected_languages` (array) - Language codes the audio is expected to contain. Optional. When provided, it must
contain at least one supported code and cannot be `null` or empty. When omitted,
transcription considers all supported languages.
          - `fallback_language` (string) - Language to use if Notetaker does not detect one of the `expected_languages`. Optional.
When `expected_languages` is set, the fallback must be one of those codes. When
`expected_languages` is omitted, transcription considers all supported languages and
the fallback may be any supported code. When `fallback_language` is omitted, the
transcriber auto-detects the language. The field is not stored, so responses do not
return it.
          - `keywords` (array) - Domain-specific terms that bias transcription toward recognizing them correctly, such
as names, acronyms, and product names. Optional. Up to 200 terms; each term must be
1 to 200 characters and cannot contain control characters. Cannot be `null`.
          - `use_speaker_names_as_keywords` (boolean) - When `true`, Notetaker adds known speaker names to the keyword set so they are
transcribed accurately. Optional. Cannot be `null`.
    - `email_template` (object) - Configurable settings for booking emails.
      - `booking_confirmed` (object) - Configurable settings specifically for booking confirmed emails.
        - `title` (string) - The title to replace the default 'Booking Confirmed' title. This doesn't change the email subject line. Only visible in emails sent to guests.
        - `body` (string) - The additional body to be appended after the default body. Only visible in emails sent to guests.
      - `logo` (string) - The URL of a custom logo that is displayed at the top of the booking email. Replaces the default
Nylas logo. The URL needs to be publicly accessible.
      - `show_nylas_branding` (boolean) - When `true`, displays Nylas branding in the booking email.
  - `slug` (string,null) - The slug for the Configuration object. This is an optional, unique identifier. You can use the
slug instead of the `configuration_id` when making requests to the Nylas Scheduling endpoints.
Slugs are unique to each Nylas application. This field may be `null` if no slug has been set.
  - `type` (string) **(required)** - The type of event supported by the Configuration. When set to `group`, enables access to the
[Group Events endpoints](/docs/reference/api/group-events/) and functionality.
Defaults to empty (`""`) for all existing Configurations.

## Responses

### 200 - Configuration returned

- **object**
  - `request_id` (string) - The request ID.
  - `data` (object)
    - `appearance` (object,null)
    - `availability` (object) - The rules that determine available time slots for the event.
      - `availability_rules` (object) - A list of availability rules that apply to all participants.
        - `availability_method` (string) - The method Nylas uses to calculate availability for all participants.
        - `buffer` (object) - A list of rules that set buffer time around events for all participants.
          - `after` (integer) - 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.
          - `before` (integer) - 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.
      - `duration_minutes` (integer) - The total duration of the event, in minutes.
      - `interval_minutes` (integer) - The interval between meetings, in minutes.
      - `round_to` (integer) - 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.
    - `event_booking` (object) - An object containing details about the booking.
      - `booking_type` (string) - The booking type.
      - `disable_emails` (boolean,null) - When `true`, Nylas doesn't send email notifications when an event is booked,
cancelled, or rescheduled. When `null`, the default behavior applies (emails are sent).
      - `hide_participants` (boolean,null) - When `true`, Nylas creates the event with `hide_participants=true`, so the host can see who's on the event but the guests cannot. When `null`, the default behavior applies (participants are visible).
      - `location` (string) - The location of the event.
      - `notify_participants` (boolean,null) - When `true`, the calendar provider sends notifications to participants
when the event is created, updated, or deleted. Microsoft grants ignore
this flag and always notify participants. This field may be `null` if not
explicitly set on the configuration; treat `null` the same as `false`.
      - `reminders` (array) - A list of reminders for the event.
        - `minutes_before_event` (integer) - The number of minutes before the event to send the reminder.
        - `recipient` (string) - (Email reminders only) Who should receive the reminder.
        - `type` (string) - The reminder type.
      - `timezone` (string) - The event's timezone as an
[IANA-formatted](https://en.wikipedia.org/wiki/Tz_database) string.
      - `title` (string) - The event title.
    - `id` (string) - The Configuration ID.
    - `name` (string) - The name of the Scheduling Page.
    - `participants` (array) - A list of participants included in the scheduled event.
      - `availability` (object) - The availability settings for the participant.
        - `calendar_ids` (array) - A list of calendar IDs used to check the participant's availability.
        - `open_hours` (array) - An array of objects representing the participant's open hours. Nylas
searches for free time slots within these open hours.
          - `days` (array) - The days of the week that the open hour settings are applied
to. Sunday corresponds to `0`, and Saturday corresponds to `6`.
          - `end` (string) - The end time in 24-hour time format.
          - `exdates` (array) - A list of dates that are excluded from the participant's open
hours, in `YYYY-MM-DD` format.
          - `start` (string) - The start time in 24-hour time format.
          - `timezone` (string) - The participant's timezone as an
[IANA-formatted](https://en.wikipedia.org/wiki/Tz_database)
string. Nylas uses this when calculating the participant's open
hours and in email notifications.
      - `booking` (object) - The participant's booking data.
        - `calendar_id` (string) - The ID of the calendar the event was created on.
      - `email` (string) - The participant's email address.
      - `name` (string) - The participant's name.
      - `is_organizer` (boolean) - When `true`, shows that the participant is the organizer of the event.
    - `requires_session_auth` (boolean,null) - When `true`, the scheduling Availability and Bookings endpoints require a valid
session ID to authenticate requests using the Configuration. This field may be
`null` if not explicitly set; treat `null` the same as `false`.
    - `scheduler` (object)
      - `additional_fields` (object) - An object containing additional custom fields.
        - `example_field` (object)
          - `label` (string) - The text label to be displayed in the Scheduler UI.
          - `order` (integer) - The order in which the field is displayed in the Scheduler UI.
Fields with lower order values are displayed first.
          - `required` (boolean) - When `true`, marks the field as required.
          - `type` (string) - The field type.
      - `available_days_in_future` (integer) - The number of days in the future that Scheduler is available for scheduling
events.
      - `email_template` (object) - Template settings for email notifications.
        - `booking_confirmed` (object) - Template settings for confirmation notifications.
          - `body` (string) - The body text of the message.
          - `title` (string) - The title of the message.
        - `organizer_locale` (string) - The organizer's locale settings.
      - `min_booking_notice` (integer,null) - The minimum number of minutes in the future that a user can schedule a new
booking. This field may be `null` if not explicitly set; treat `null` the
same as `60`.
      - `min_cancellation_notice` (integer) - The minimum amount of time before a meeting that the booking can still be
cancelled, in minutes.
    - `slug` (string,null) - The Configuration slug. You can use this instead of the `configuration_id`
when making requests to other Scheduling endpoints. This field may be `null`
if no slug has been set.
- **object**
  - `request_id` (string) - The request ID.
  - `data` (object)
    - `appearance` (object,null)
    - `group_booking` (object) - An object containing details about the group booking.
      - `booking_type` (string) - The booking type.
      - `calendar_id` (string) - The ID of the calendar on which the group event is created.
      - `default_capacity` (integer) - The default capacity for the booking.
      - `disable_emails` (boolean,null) - When `true`, Nylas doesn't send email notifications when an event is booked,
cancelled, or rescheduled. When `null`, the default behavior applies (emails are sent).
      - `reminders` (array) - A list of reminders for the event.
        - `minutes_before_event` (integer) - The number of minutes before the event to send the reminder.
        - `recipient` (string) - (Email reminders only) Who should receive the reminder.
        - `type` (string) - The reminder type.
      - `title` (string) - The event title.
    - `id` (string) - The group Configuration ID.
    - `name` (string) - The name of the Scheduling Page.
    - `requires_session_auth` (boolean,null) - When `true`, the scheduling Availability and Bookings endpoints require a valid
session ID to authenticate requests using the Configuration. This field may be
`null` if not explicitly set; treat `null` the same as `false`.
    - `scheduler` (object)
      - `available_days_in_future` (integer) - The number of days in the future that Scheduler is available for scheduling
events.
      - `email_template` (object) - Template settings for email notifications.
        - `booking_confirmed` (object) - Template settings for confirmation notifications.
          - `body` (string) - The body text of the message.
          - `title` (string) - The title of the message.
      - `min_booking_notice` (integer,null) - The minimum number of minutes in the future that a user can schedule a new
booking. This field may be `null` if not explicitly set; treat `null` the
same as `60`.
      - `min_cancellation_notice` (integer) - The minimum amount of time before a meeting that the booking can still be
cancelled, in minutes.
    - `slug` (string,null) - The group Configuration slug. You can use this instead of the `configuration_id`
when making requests to other Scheduling endpoints. This field may be `null`
if no slug has been set.
    - `type` (string) - The booking type for the Scheduling Page. For group Configurations, this is
always `group`.

### 400 - Bad Request

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The error from the provider.

### 401 - Unauthorized

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The error from the provider.

### 404 - Not Found

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The raw error from the provider, if available
    - `code` (string)
    - `message` (string)

### 429 - Rate Limit

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.

### 504 - Provider Failure

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.

## Code samples

### cURL

```bash
curl --compressed --request PUT \
  --url "https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/scheduling/configurations/<SCHEDULER_CONFIGURATION_ID>" \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <NYLAS_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
     "event_booking": {
      "title": "Testing Scheduler",
      "hide_participants": false,
      "conferencing": {
        "provider": "Zoom Meeting",
        "autocreate": {
          "conf_grant_id": "<NYLAS_GRANT_ID>",
          "conf_settings": {
            "settings": {
              "join_before_host": true,
              "waiting_room": false,
              "mute_upon_entry": false,
              "auto_recording": "none"
            }
          }
        }
      }
    }
    "scheduler": {
      "rescheduling_url": "https://www.example.com/reschdule/:booking_ref",
      "cancellation_url": "https://www.example.com/cancel/:booking_ref" 
    }
  }'
```

### Node.js SDK

```javascript
import Nylas from "nylas";

const nylas = new Nylas({
  apiKey: "<NYLAS_API_KEY>",
  apiUri: "<NYLAS_API_URI>",
});

async function updateConfiguration() {
  try {
    const configuration = await nylas.scheduler.configurations.update({
      identifier: "<NYLAS_GRANT_ID>",
      configurationId: "<CONFIGURATION_ID>",
      requestBody: {
        availability: {
          durationMinutes: 45,
        },
      },
    });

    console.log("Updated configuration:", configuration);
  } catch (error) {
    console.error("Error updating configuration:", error);
  }
}

updateConfiguration();

```

### Ruby SDK

```ruby
# Load gems
require 'nylas'

# Initialize Nylas client
nylas = Nylas::Client.new(
  api_key: "<NYLAS_API_KEY>"
)

request_body = {
  "availability": {
    "duration_minutes": 60
  }
}

configuration, _request_ids = nylas.scheduler.configurations.update(identifier: "<NYLAS_GRANT_ID>", configuration_id: "<SCHEDULER_CONFIG_ID>", request_body: request_body)

puts configuration
```

### Java SDK

```java
import com.nylas.NylasClient;
import com.nylas.models.Configuration;
import com.nylas.models.ConfigurationAvailability;
import com.nylas.models.NylasApiError;
import com.nylas.models.NylasSdkTimeoutError;
import com.nylas.models.Response;
import com.nylas.models.UpdateConfigurationRequest;

public class UpdateConfiguration {
  public static void main(String[] args) throws NylasSdkTimeoutError, NylasApiError {
    NylasClient nylas = new NylasClient.Builder("<NYLAS_API_KEY>").build();

    ConfigurationAvailability availability = new ConfigurationAvailability.Builder()
        .durationMinutes(45)
        .build();

    UpdateConfigurationRequest requestBody = new UpdateConfigurationRequest.Builder()
        .availability(availability)
        .build();

    Response<Configuration> configuration = nylas.scheduler().configurations()
        .update("<NYLAS_GRANT_ID>", "<CONFIGURATION_ID>", requestBody);

    System.out.println("Updated configuration: " + configuration.getData());
  }
}

```

### Kotlin SDK

```kotlin
import com.nylas.NylasClient
import com.nylas.models.ConfigurationAvailability
import com.nylas.models.UpdateConfigurationRequest

fun main() {
  val nylas = NylasClient.Builder("<NYLAS_API_KEY>").build()

  val availability = ConfigurationAvailability.Builder()
      .durationMinutes(45)
      .build()

  val requestBody = UpdateConfigurationRequest.Builder()
      .availability(availability)
      .build()

  val configuration = nylas.scheduler().configurations()
      .update("<NYLAS_GRANT_ID>", "<CONFIGURATION_ID>", requestBody)

  println("Updated configuration: ${configuration.data}")
}

```
