> ## Documentation Index
> Fetch the complete documentation index at: https://developers.leadwaycrm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Calendar

> Update calendar by ID.

Update calendar by ID.

```http theme={null}
PUT https://services.leadconnectorhq.com/calendars/{calendarId}
```

## Autorización

<ParamField header="Authorization" type="string" required>
  Bearer token generado desde el portal Leadway. Ver [Autenticación](/authentication).
</ParamField>

<ParamField header="Version" type="string" required default="2021-07-28">
  Versión de la API.
</ParamField>

## Path parameters

<ParamField path="calendarId" type="string" required default="ocQHyuzHvysMo5N5VsXc">
  Calendar Id
</ParamField>

## Body

<ParamField body="notifications" type="object[]">
  🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.

  <Expandable title="cada item">
    <ParamField body="type" type="string" default="email">
      Calendar Notification Posibles valores: 'email'
    </ParamField>

    <ParamField body="shouldSendToContact" type="boolean" required />

    <ParamField body="shouldSendToGuest" type="boolean" required />

    <ParamField body="shouldSendToUser" type="boolean" required />

    <ParamField body="shouldSendToSelectedUsers" type="boolean" required />

    <ParamField body="selectedUsers" type="string" required default="user1@testemail.com,user2@testemail.com">
      Comma separated emails
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="groupId" type="string" default="BqTwX8QFwXzpegMve9EQ">
  Group Id
</ParamField>

<ParamField body="teamMembers" type="object[]">
  Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member.

  <Expandable title="cada item">
    <ParamField body="userId" type="string" required default="ocQHyuzHvysMo5N5VsXc" />

    <ParamField body="priority" type="number">
      Posibles valores: 0, 0.5, 1
    </ParamField>

    <ParamField body="meetingLocationType" type="string" default="custom">
      🚨 Deprecated! Use `locationConfigurations.kind` instead. Posibles valores: 'custom', 'zoom', 'gmeet', 'phone', 'address', 'teams', 'booker'
    </ParamField>

    <ParamField body="meetingLocation" type="string">
      🚨 Deprecated! Use `locationConfigurations.account` instead.
    </ParamField>

    <ParamField body="isPrimary" type="boolean">
      Marks a user as primary. This property is required in case of collective booking calendars. Only one user can be primary.
    </ParamField>

    <ParamField body="locationConfigurations" type="object[]">
      Meeting account configuration for event calendar.

      * *Multiple accounts are allowed only when one team member is selected.*
      * *For **Class booking** and **Collective** calendars, only one account configuration is allowed for each team member.*

      <Expandable title="cada item">
        <ParamField body="kind" type="string" required default="custom">
          Type of meeting account. zoom\_conference/google\_conference/ms\_teams\_conference is not supported in event calendar type Posibles valores: 'custom', 'zoom\_conference', 'google\_conference', 'inbound\_call', 'outbound\_call', 'physical', 'booker', 'ms\_teams\_conference'
        </ParamField>

        <ParamField body="location" type="string">
          Address for meeting account. Not applicable on "zoom\_conference", "google\_conference" and "ms\_teams\_conference" kind
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="eventType" type="string">
  Posibles valores: 'RoundRobin\_OptimizeForAvailability', 'RoundRobin\_OptimizeForEqualDistribution'
</ParamField>

<ParamField body="name" type="string" default="test calendar" />

<ParamField body="description" type="string" default="this is used for testing" />

<ParamField body="slug" type="string" default="test1" />

<ParamField body="widgetSlug" type="string" default="test1" />

<ParamField body="widgetType" type="string" default="classic">
  Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout. Posibles valores: 'default', 'classic'
</ParamField>

<ParamField body="eventTitle" type="string" />

<ParamField body="eventColor" type="string" />

<ParamField body="locationConfigurations" type="object[]">
  Meeting account configuration for event calendar

  <Expandable title="cada item">
    <ParamField body="kind" type="string" required default="custom">
      Type of meeting account. zoom\_conference/google\_conference/ms\_teams\_conference is not supported in event calendar type Posibles valores: 'custom', 'zoom\_conference', 'google\_conference', 'inbound\_call', 'outbound\_call', 'physical', 'booker', 'ms\_teams\_conference'
    </ParamField>

    <ParamField body="location" type="string">
      Address for meeting account. Not applicable on "zoom\_conference", "google\_conference" and "ms\_teams\_conference" kind
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="meetingLocation" type="string">
  🚨 Deprecated! Use `locationConfigurations.account` or `teamMembers[].locationConfigurations.account` instead.
</ParamField>

<ParamField body="slotDuration" type="number">
  This controls the duration of the meeting
</ParamField>

<ParamField body="slotDurationUnit" type="string">
  Unit for slot duration. Posibles valores: 'mins', 'hours'
</ParamField>

<ParamField body="preBufferUnit" type="string">
  Unit for pre-buffer. Posibles valores: 'mins', 'hours'
</ParamField>

<ParamField body="slotInterval" type="number">
  Slot interval reflects the amount of time the between booking slots that will be shown in the calendar.
</ParamField>

<ParamField body="slotIntervalUnit" type="string">
  Unit for slot interval. Posibles valores: 'mins', 'hours'
</ParamField>

<ParamField body="slotBuffer" type="number">
  Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up
</ParamField>

<ParamField body="preBuffer" type="number">
  Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready
</ParamField>

<ParamField body="appoinmentPerSlot" type="number" />

<ParamField body="appoinmentPerDay" type="number">
  Number of appointments that can be booked for a given day
</ParamField>

<ParamField body="allowBookingAfter" type="number">
  Minimum scheduling notice for events
</ParamField>

<ParamField body="allowBookingAfterUnit" type="string" default="days">
  Unit for minimum scheduling notice Posibles valores: 'hours', 'days', 'weeks', 'months'
</ParamField>

<ParamField body="allowBookingFor" type="number">
  Minimum number of days/weeks/months for which to allow booking events
</ParamField>

<ParamField body="allowBookingForUnit" type="string" default="days">
  Unit for controlling the duration for which booking would be allowed for Posibles valores: 'days', 'weeks', 'months'
</ParamField>

<ParamField body="openHours" type="object[]">
  <Expandable title="cada item">
    <ParamField body="daysOfTheWeek" type="number[]" required />

    <ParamField body="hours" type="object[]" required>
      <Expandable title="cada item">
        <ParamField body="openHour" type="number" required />

        <ParamField body="openMinute" type="number" required />

        <ParamField body="closeHour" type="number" required />

        <ParamField body="closeMinute" type="number" required />
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="enableRecurring" type="boolean">
  Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this
</ParamField>

<ParamField body="recurring" type="object">
  <Expandable title="propiedades">
    <ParamField body="freq" type="string">
      Posibles valores: 'DAILY', 'WEEKLY', 'MONTHLY'
    </ParamField>

    <ParamField body="count" type="number">
      Number of recurrences
    </ParamField>

    <ParamField body="bookingOption" type="string">
      This setting contols what to do incase a recurring slot is unavailable Posibles valores: 'skip', 'continue', 'book\_next'
    </ParamField>

    <ParamField body="bookingOverlapDefaultStatus" type="string">
      This setting contols what to do incase a recurring slot is unavailable Posibles valores: 'confirmed', 'new'
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="formId" type="string" />

<ParamField body="stickyContact" type="boolean" />

<ParamField body="isLivePaymentMode" type="boolean" />

<ParamField body="autoConfirm" type="boolean" />

<ParamField body="shouldSendAlertEmailsToAssignedMember" type="boolean" />

<ParamField body="alertEmail" type="string" />

<ParamField body="googleInvitationEmails" type="boolean" />

<ParamField body="allowReschedule" type="boolean" />

<ParamField body="allowCancellation" type="boolean" />

<ParamField body="shouldAssignContactToTeamMember" type="boolean" />

<ParamField body="shouldSkipAssigningContactForExisting" type="boolean" />

<ParamField body="notes" type="string" />

<ParamField body="pixelId" type="string" />

<ParamField body="formSubmitType" type="string">
  Posibles valores: 'RedirectURL', 'ThankYouMessage'
</ParamField>

<ParamField body="formSubmitRedirectURL" type="string" />

<ParamField body="formSubmitThanksMessage" type="string" />

<ParamField body="availabilityType" type="number">
  Determines which availability type to consider:

  * **1**: Only custom availabilities will be used.
  * **0**: Only open hours will be used.
  * **null**: Both the custom availabilities and open hours will be considered. Posibles valores: 0, 1
</ParamField>

<ParamField body="availabilities" type="object[]">
  This is only to set the custom availability. For standard availability, use the openHours property

  <Expandable title="cada item">
    <ParamField body="date" type="string" required default="2023-09-24T00:00:00.000Z">
      Formulate the date string in the format of `&lt;YYYY-MM-DD in local timezone&gt;T00:00:00.000Z`.
    </ParamField>

    <ParamField body="hours" type="object[]" required>
      <Expandable title="cada item">
        <ParamField body="openHour" type="number" required />

        <ParamField body="openMinute" type="number" required />

        <ParamField body="closeHour" type="number" required />

        <ParamField body="closeMinute" type="number" required />
      </Expandable>
    </ParamField>

    <ParamField body="deleted" type="boolean" />

    <ParamField body="id" type="string">
      The ID of the custom availability object. It is required while updating or deleting the existing custom date availability
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="guestType" type="string">
  Posibles valores: 'count\_only', 'collect\_detail'
</ParamField>

<ParamField body="consentLabel" type="string" />

<ParamField body="calendarCoverImage" type="string" />

<ParamField body="lookBusyConfig" type="object">
  Look Busy Configuration
</ParamField>

<ParamField body="isActive" type="boolean" />

## Respuestas

<Accordion title="200 - Successful response">
  <ResponseField name="calendar" type="object" required>
    <Expandable title="propiedades">
      <ResponseField name="isActive" type="boolean">
        Should the created calendar be active or draft
      </ResponseField>

      <ResponseField name="notifications" type="object[]">
        🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.

        <Expandable title="cada item">
          <ResponseField name="type" type="string" default="email">
            Calendar Notification Posibles valores: 'email'
          </ResponseField>

          <ResponseField name="shouldSendToContact" type="boolean" required />

          <ResponseField name="shouldSendToGuest" type="boolean" required />

          <ResponseField name="shouldSendToUser" type="boolean" required />

          <ResponseField name="shouldSendToSelectedUsers" type="boolean" required />

          <ResponseField name="selectedUsers" type="string" required default="user1@testemail.com,user2@testemail.com">
            Comma separated emails
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="locationId" type="string" required default="ocQHyuzHvysMo5N5VsXc" />

      <ResponseField name="groupId" type="string" default="BqTwX8QFwXzpegMve9EQ">
        Group Id
      </ResponseField>

      <ResponseField name="teamMembers" type="object[]">
        Team members are for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member.

        <Expandable title="cada item">
          <ResponseField name="userId" type="string" required default="ocQHyuzHvysMo5N5VsXc" />

          <ResponseField name="priority" type="number">
            Posibles valores: 0, 0.5, 1
          </ResponseField>

          <ResponseField name="meetingLocationType" type="string" default="custom">
            🚨 Deprecated! Use `locationConfigurations.kind` instead. Posibles valores: 'custom', 'zoom', 'gmeet', 'phone', 'address', 'teams', 'booker'
          </ResponseField>

          <ResponseField name="meetingLocation" type="string">
            🚨 Deprecated! Use `locationConfigurations.account` instead.
          </ResponseField>

          <ResponseField name="isPrimary" type="boolean">
            Marks a user as primary. This property is required in case of collective booking calendars. Only one user can be primary.
          </ResponseField>

          <ResponseField name="locationConfigurations" type="object[]">
            Meeting account configurations

            <Expandable title="cada item">
              <ResponseField name="kind" type="string" required default="custom">
                Type of meeting account. zoom\_conference/google\_conference/ms\_teams\_conference is not supported in event calendar type Posibles valores: 'custom', 'zoom\_conference', 'google\_conference', 'inbound\_call', 'outbound\_call', 'physical', 'booker', 'ms\_teams\_conference'
              </ResponseField>

              <ResponseField name="location" type="string">
                Address for meeting account. Not applicable on "zoom\_conference", "google\_conference" and "ms\_teams\_conference" kind
              </ResponseField>

              <ResponseField name="meetingId" type="string" default="my_conference_id">
                Unique ID used to select a specific meeting account
              </ResponseField>
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="eventType" type="string">
        Posibles valores: 'RoundRobin\_OptimizeForAvailability', 'RoundRobin\_OptimizeForEqualDistribution'
      </ResponseField>

      <ResponseField name="name" type="string" required default="test calendar" />

      <ResponseField name="description" type="string" default="this is used for testing" />

      <ResponseField name="slug" type="string" default="test1" />

      <ResponseField name="widgetSlug" type="string" default="test1" />

      <ResponseField name="calendarType" type="string">
        Posibles valores: 'round\_robin', 'event', 'class\_booking', 'collective', 'service\_booking', 'personal'
      </ResponseField>

      <ResponseField name="widgetType" type="string" default="classic">
        Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout. Posibles valores: 'default', 'classic'
      </ResponseField>

      <ResponseField name="eventTitle" type="string" />

      <ResponseField name="eventColor" type="string" />

      <ResponseField name="meetingLocation" type="string">
        🚨 Deprecated! Use `locationConfigurations.account` or `teamMembers[].locationConfigurations.account` instead.
      </ResponseField>

      <ResponseField name="locationConfigurations" type="object[]">
        Meeting account configuration for event calendar

        <Expandable title="cada item">
          <ResponseField name="kind" type="string" required default="custom">
            Type of meeting account. zoom\_conference/google\_conference/ms\_teams\_conference is not supported in event calendar type Posibles valores: 'custom', 'zoom\_conference', 'google\_conference', 'inbound\_call', 'outbound\_call', 'physical', 'booker', 'ms\_teams\_conference'
          </ResponseField>

          <ResponseField name="location" type="string">
            Address for meeting account. Not applicable on "zoom\_conference", "google\_conference" and "ms\_teams\_conference" kind
          </ResponseField>

          <ResponseField name="meetingId" type="string" default="my_conference_id">
            Unique ID used to select a specific meeting account
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="slotDuration" type="number">
        This controls the duration of the meeting
      </ResponseField>

      <ResponseField name="slotDurationUnit" type="string">
        Unit for slot duration. Posibles valores: 'mins', 'hours'
      </ResponseField>

      <ResponseField name="slotInterval" type="number">
        Slot interval reflects the amount of time the between booking slots that will be shown in the calendar.
      </ResponseField>

      <ResponseField name="slotIntervalUnit" type="string">
        Unit for slot interval. Posibles valores: 'mins', 'hours'
      </ResponseField>

      <ResponseField name="slotBuffer" type="number">
        Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up
      </ResponseField>

      <ResponseField name="slotBufferUnit" type="string">
        Unit for slot buffer. Posibles valores: 'mins', 'hours'
      </ResponseField>

      <ResponseField name="preBuffer" type="number">
        Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready
      </ResponseField>

      <ResponseField name="preBufferUnit" type="string">
        Unit for pre-buffer. Posibles valores: 'mins', 'hours'
      </ResponseField>

      <ResponseField name="appoinmentPerSlot" type="number">
        Maximum bookings per slot (per user). Maximum seats per slot in case of Class Booking Calendar.
      </ResponseField>

      <ResponseField name="appoinmentPerDay" type="number">
        Number of appointments that can be booked for a given day
      </ResponseField>

      <ResponseField name="allowBookingAfter" type="number">
        Minimum scheduling notice for events
      </ResponseField>

      <ResponseField name="allowBookingAfterUnit" type="string" default="days">
        Unit for minimum scheduling notice Posibles valores: 'hours', 'days', 'weeks', 'months'
      </ResponseField>

      <ResponseField name="allowBookingFor" type="number">
        Minimum number of days/weeks/months for which to allow booking events
      </ResponseField>

      <ResponseField name="allowBookingForUnit" type="string" default="days">
        Unit for controlling the duration for which booking would be allowed for Posibles valores: 'days', 'weeks', 'months'
      </ResponseField>

      <ResponseField name="openHours" type="object[]">
        This is only to set the standard availability. For custom availability, use the availabilities property

        <Expandable title="cada item">
          <ResponseField name="daysOfTheWeek" type="number[]" required />

          <ResponseField name="hours" type="object[]" required>
            <Expandable title="cada item">
              <ResponseField name="openHour" type="number" required />

              <ResponseField name="openMinute" type="number" required />

              <ResponseField name="closeHour" type="number" required />

              <ResponseField name="closeMinute" type="number" required />
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="enableRecurring" type="boolean">
        Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this
      </ResponseField>

      <ResponseField name="recurring" type="object">
        <Expandable title="propiedades">
          <ResponseField name="freq" type="string">
            Posibles valores: 'DAILY', 'WEEKLY', 'MONTHLY'
          </ResponseField>

          <ResponseField name="count" type="number">
            Number of recurrences
          </ResponseField>

          <ResponseField name="bookingOption" type="string">
            This setting contols what to do incase a recurring slot is unavailable Posibles valores: 'skip', 'continue', 'book\_next'
          </ResponseField>

          <ResponseField name="bookingOverlapDefaultStatus" type="string">
            This setting contols what to do incase a recurring slot is unavailable Posibles valores: 'confirmed', 'new'
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="formId" type="string" />

      <ResponseField name="stickyContact" type="boolean" />

      <ResponseField name="isLivePaymentMode" type="boolean" />

      <ResponseField name="autoConfirm" type="boolean" />

      <ResponseField name="shouldSendAlertEmailsToAssignedMember" type="boolean" />

      <ResponseField name="alertEmail" type="string" />

      <ResponseField name="googleInvitationEmails" type="boolean" />

      <ResponseField name="allowReschedule" type="boolean" />

      <ResponseField name="allowCancellation" type="boolean" />

      <ResponseField name="shouldAssignContactToTeamMember" type="boolean" />

      <ResponseField name="shouldSkipAssigningContactForExisting" type="boolean" />

      <ResponseField name="notes" type="string" />

      <ResponseField name="pixelId" type="string" />

      <ResponseField name="formSubmitType" type="string">
        Posibles valores: 'RedirectURL', 'ThankYouMessage'
      </ResponseField>

      <ResponseField name="formSubmitRedirectURL" type="string" />

      <ResponseField name="formSubmitThanksMessage" type="string" />

      <ResponseField name="availabilityType" type="number">
        Determines which availability type to consider:

        * **1**: Only custom availabilities will be used.
        * **0**: Only open hours will be used.
        * **null**: Both custom availabilities and open hours will be considered. Posibles valores: 0, 1
      </ResponseField>

      <ResponseField name="availabilities" type="object[]">
        This is only to set the custom availability. For standard availability, use the openHours property

        <Expandable title="cada item">
          <ResponseField name="date" type="string" required default="2023-09-24T00:00:00.000Z">
            Formulate the date string in the format of `&lt;YYYY-MM-DD in local timezone&gt;T00:00:00.000Z`.
          </ResponseField>

          <ResponseField name="hours" type="object[]" required>
            <Expandable title="cada item">
              <ResponseField name="openHour" type="number" required />

              <ResponseField name="openMinute" type="number" required />

              <ResponseField name="closeHour" type="number" required />

              <ResponseField name="closeMinute" type="number" required />
            </Expandable>
          </ResponseField>

          <ResponseField name="deleted" type="boolean" />
        </Expandable>
      </ResponseField>

      <ResponseField name="guestType" type="string">
        Posibles valores: 'count\_only', 'collect\_detail'
      </ResponseField>

      <ResponseField name="consentLabel" type="string" />

      <ResponseField name="calendarCoverImage" type="string" default="https://path-to-image.com" />

      <ResponseField name="lookBusyConfig" type="object">
        Look Busy Configuration
      </ResponseField>

      <ResponseField name="id" type="string" required default="0TkCdp9PfvLeWKYRRvIz" />
    </Expandable>
  </ResponseField>

  ```json theme={null}
  {
    "calendar": {
      "isActive": true,
      "notifications": [
        {
          "type": "email",
          "shouldSendToContact": true,
          "shouldSendToGuest": true,
          "shouldSendToUser": true,
          "shouldSendToSelectedUsers": true,
          "selectedUsers": "user1@testemail.com,user2@testemail.com"
        }
      ],
      "locationId": "ocQHyuzHvysMo5N5VsXc",
      "groupId": "BqTwX8QFwXzpegMve9EQ",
      "teamMembers": [
        {
          "userId": "ocQHyuzHvysMo5N5VsXc",
          "priority": 0.5,
          "meetingLocationType": "custom",
          "meetingLocation": "string",
          "isPrimary": true,
          "locationConfigurations": []
        }
      ],
      "eventType": "RoundRobin_OptimizeForAvailability",
      "name": "test calendar",
      "description": "this is used for testing",
      "slug": "test1",
      "widgetSlug": "test1",
      "calendarType": "round_robin",
      "widgetType": "classic",
      "eventTitle": "{{contact.name}}",
      "eventColor": "#039be5",
      "meetingLocation": "string",
      "locationConfigurations": [
        {
          "kind": "custom",
          "location": "string",
    // truncado: 60 lineas mas
  }
  ```
</Accordion>

<Accordion title="400 - Bad Request">
  ```json theme={null}
  {}
  ```
</Accordion>

<Accordion title="401 - Unauthorized">
  ```json theme={null}
  {}
  ```
</Accordion>

## Ejemplo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PUT 'https://services.leadconnectorhq.com/calendars/YOUR_calendarId' \
    -H 'Authorization: Bearer YOUR_TOKEN' \
    -H 'Version: 2021-07-28' \
    -H 'Content-Type: application/json' \
    -d '{
    "notifications": [
      {
        "type": "email",
        "shouldSendToContact": true,
        "shouldSendToGuest": true,
        "shouldSendToUser": true,
        "shouldSendToSelectedUsers": true,
        "selectedUsers": "user1@testemail.com,user2@testemail.com"
      }
    ],
    "groupId": "BqTwX8QFwXzpegMve9EQ",
    "teamMembers": [
      {
        "userId": "ocQHyuzHvysMo5N5VsXc",
        "priority": 0.5,
        "meetingLocationType": "custom",
        "meetingLocation": "string",
        "isPrimary": true,
        "locationConfigurations": [
          {}
        ]
      }
    ],
    "eventType": "RoundRobin_OptimizeForAvailability",
    "name": "test calendar",
    "description": "this is used for testing",
    "slug": "test1",
    "widgetSlug": "test1",
    "widgetType": "classic",
    "eventTitle": "string",
    "eventColor": "#039be5",
    "locationConfigurations": [
      {
        "kind": "custom",
        "location": "string"
      }
    ],
    "meetingLocation": "string",
    "slotDuration": 30,
    "slotDurationUnit": "mins",
    "preBufferUnit": "mins",
    "slotInterval": 30,
    "slotIntervalUnit": "mins",
    "slotBuffer": 0,
    "preBuffer": 0,
    "appoinmentPerSlot": 0,
    "appoinmentPerDay": 0,
    "allowBookingAfter": 0,
    "allowBookingAfterUnit": "days",
    "allowBookingFor": 0,
    "allowBookingForUnit": "days",
    "openHours": [
      {
        "daysOfTheWeek": [
          0
        ],
        "hours": [
          {}
        ]
      }
    ],
    "enableRecurring": false,
    "recurring": {
      "freq": "DAILY",
      "count": 0,
      "bookingOption": "skip",
      "bookingOverlapDefaultStatus": "confirmed"
    },
    "formId": "string",
    "stickyContact": true,
    "isLivePaymentMode": true,
    "autoConfirm": true,
    "shouldSendAlertEmailsToAssignedMember": true,
    "alertEmail": "string",
    "googleInvitationEmails": true,
    "allowReschedule": true,
    "allowCancellation": true,
    "shouldAssignContactToTeamMember": true,
    "shouldSkipAssigningContactForExisting": true,
    "notes": "string",
    "pixelId": "string",
    "formSubmitType": "ThankYouMessage",
    "formSubmitRedirectURL": "string",
    "formSubmitThanksMessage": "string",
    "availabilityType": 0,
    "availabilities": [
      {
        "date": "2023-09-24T00:00:00.000Z",
        "hours": [
          {}
        ],
        "deleted": false,
        "id": "string"
      }
    ],
    "guestType": "count_only",
    "consentLabel": "string",
    "calendarCoverImage": "string",
    "isActive": true
  }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://services.leadconnectorhq.com/calendars/YOUR_calendarId', {
    method: 'PUT',
    headers: {
      Authorization: `Bearer ${process.env.LEADWAY_TOKEN}`,
      Version: '2021-07-28',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({"notifications": [{"type": "email", "shouldSendToContact": true, "shouldSendToGuest": true, "shouldSendToUser": true, "shouldSendToSelectedUsers": true, "selectedUsers": "user1@testemail.com,user2@testemail.com"}], "groupId": "BqTwX8QFwXzpegMve9EQ", "teamMembers": [{"userId": "ocQHyuzHvysMo5N5VsXc", "priority": 0.5, "meetingLocationType": "custom", "meetingLocation": "string", "isPrimary": true, "locationConfigurations": [{}]}], "eventType": "RoundRobin_OptimizeForAvailability", "name": "test calendar", "description": "this is used for testing", "slug": "test1", "widgetSlug": "test1", "widgetType": "classic", "eventTitle": "string", "eventColor": "#039be5", "locationConfigurations": [{"kind": "custom", "location": "string"}], "meetingLocation": "string", "slotDuration": 30, "slotDurationUnit": "mins", "preBufferUnit": "mins", "slotInterval": 30, "slotIntervalUnit": "mins", "slotBuffer": 0, "preBuffer": 0, "appoinmentPerSlot": 0, "appoinmentPerDay": 0, "allowBookingAfter": 0, "allowBookingAfterUnit": "days", "allowBookingFor": 0, "allowBookingForUnit": "days", "openHours": [{"daysOfTheWeek": [0], "hours": [{}]}], "enableRecurring": false, "recurring": {"freq": "DAILY", "count": 0, "bookingOption": "skip", "bookingOverlapDefaultStatus": "confirmed"}, "formId": "string", "stickyContact": true, "isLivePaymentMode": true, "autoConfirm": true, "shouldSendAlertEmailsToAssignedMember": true, "alertEmail": "string", "googleInvitationEmails": true, "allowReschedule": true, "allowCancellation": true, "shouldAssignContactToTeamMember": true, "shouldSkipAssigningContactForExisting": true, "notes": "string", "pixelId": "string", "formSubmitType": "ThankYouMessage", "formSubmitRedirectURL": "string", "formSubmitThanksMessage": "string", "availabilityType": 0, "availabilities": [{"date": "2023-09-24T00:00:00.000Z", "hours": [{}], "deleted": false, "id": "string"}], "guestType": "count_only", "consentLabel": "string", "calendarCoverImage": "string", "isActive": true}),
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import os, requests
  response = requests.request(
      'PUT',
      'https://services.leadconnectorhq.com/calendars/YOUR_calendarId',
      headers={
          'Authorization': f"Bearer {os.environ['LEADWAY_TOKEN']}",
          'Version': '2021-07-28',
          'Content-Type': 'application/json',
      },
      json={"notifications": [{"type": "email", "shouldSendToContact": true, "shouldSendToGuest": true, "shouldSendToUser": true, "shouldSendToSelectedUsers": true, "selectedUsers": "user1@testemail.com,user2@testemail.com"}], "groupId": "BqTwX8QFwXzpegMve9EQ", "teamMembers": [{"userId": "ocQHyuzHvysMo5N5VsXc", "priority": 0.5, "meetingLocationType": "custom", "meetingLocation": "string", "isPrimary": true, "locationConfigurations": [{}]}], "eventType": "RoundRobin_OptimizeForAvailability", "name": "test calendar", "description": "this is used for testing", "slug": "test1", "widgetSlug": "test1", "widgetType": "classic", "eventTitle": "string", "eventColor": "#039be5", "locationConfigurations": [{"kind": "custom", "location": "string"}], "meetingLocation": "string", "slotDuration": 30, "slotDurationUnit": "mins", "preBufferUnit": "mins", "slotInterval": 30, "slotIntervalUnit": "mins", "slotBuffer": 0, "preBuffer": 0, "appoinmentPerSlot": 0, "appoinmentPerDay": 0, "allowBookingAfter": 0, "allowBookingAfterUnit": "days", "allowBookingFor": 0, "allowBookingForUnit": "days", "openHours": [{"daysOfTheWeek": [0], "hours": [{}]}], "enableRecurring": false, "recurring": {"freq": "DAILY", "count": 0, "bookingOption": "skip", "bookingOverlapDefaultStatus": "confirmed"}, "formId": "string", "stickyContact": true, "isLivePaymentMode": true, "autoConfirm": true, "shouldSendAlertEmailsToAssignedMember": true, "alertEmail": "string", "googleInvitationEmails": true, "allowReschedule": true, "allowCancellation": true, "shouldAssignContactToTeamMember": true, "shouldSkipAssigningContactForExisting": true, "notes": "string", "pixelId": "string", "formSubmitType": "ThankYouMessage", "formSubmitRedirectURL": "string", "formSubmitThanksMessage": "string", "availabilityType": 0, "availabilities": [{"date": "2023-09-24T00:00:00.000Z", "hours": [{}], "deleted": false, "id": "string"}], "guestType": "count_only", "consentLabel": "string", "calendarCoverImage": "string", "isActive": true},
  )
  data = response.json()
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://services.leadconnectorhq.com/calendars/YOUR_calendarId');
  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => 'PUT',
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer ' . getenv('LEADWAY_TOKEN'),
          'Version: 2021-07-28',
          'Content-Type: application/json',
      ],
      CURLOPT_POSTFIELDS => json_encode({'notifications': [{'type': 'email', 'shouldSendToContact': true, 'shouldSendToGuest': true, 'shouldSendToUser': true, 'shouldSendToSelectedUsers': true, 'selectedUsers': 'user1@testemail.com,user2@testemail.com'}], 'groupId': 'BqTwX8QFwXzpegMve9EQ', 'teamMembers': [{'userId': 'ocQHyuzHvysMo5N5VsXc', 'priority': 0.5, 'meetingLocationType': 'custom', 'meetingLocation': 'string', 'isPrimary': true, 'locationConfigurations': [{}]}], 'eventType': 'RoundRobin_OptimizeForAvailability', 'name': 'test calendar', 'description': 'this is used for testing', 'slug': 'test1', 'widgetSlug': 'test1', 'widgetType': 'classic', 'eventTitle': 'string', 'eventColor': '#039be5', 'locationConfigurations': [{'kind': 'custom', 'location': 'string'}], 'meetingLocation': 'string', 'slotDuration': 30, 'slotDurationUnit': 'mins', 'preBufferUnit': 'mins', 'slotInterval': 30, 'slotIntervalUnit': 'mins', 'slotBuffer': 0, 'preBuffer': 0, 'appoinmentPerSlot': 0, 'appoinmentPerDay': 0, 'allowBookingAfter': 0, 'allowBookingAfterUnit': 'days', 'allowBookingFor': 0, 'allowBookingForUnit': 'days', 'openHours': [{'daysOfTheWeek': [0], 'hours': [{}]}], 'enableRecurring': false, 'recurring': {'freq': 'DAILY', 'count': 0, 'bookingOption': 'skip', 'bookingOverlapDefaultStatus': 'confirmed'}, 'formId': 'string', 'stickyContact': true, 'isLivePaymentMode': true, 'autoConfirm': true, 'shouldSendAlertEmailsToAssignedMember': true, 'alertEmail': 'string', 'googleInvitationEmails': true, 'allowReschedule': true, 'allowCancellation': true, 'shouldAssignContactToTeamMember': true, 'shouldSkipAssigningContactForExisting': true, 'notes': 'string', 'pixelId': 'string', 'formSubmitType': 'ThankYouMessage', 'formSubmitRedirectURL': 'string', 'formSubmitThanksMessage': 'string', 'availabilityType': 0, 'availabilities': [{'date': '2023-09-24T00:00:00.000Z', 'hours': [{}], 'deleted': false, 'id': 'string'}], 'guestType': 'count_only', 'consentLabel': 'string', 'calendarCoverImage': 'string', 'isActive': true}),
  ]);
  $data = json_decode(curl_exec($ch), true);
  ```
</CodeGroup>
