Skip to main content
PUT
/
calendars
/
{calendarId}
Update Calendar
curl --request PUT \
  --url https://services.leadconnectorhq.com/calendars/{calendarId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Version: <version>' \
  --data '
{
  "notifications": [
    {
      "shouldSendToContact": true,
      "shouldSendToGuest": true,
      "shouldSendToUser": true,
      "shouldSendToSelectedUsers": true,
      "selectedUsers": "user1@testemail.com,user2@testemail.com",
      "type": "email"
    }
  ],
  "groupId": "BqTwX8QFwXzpegMve9EQ",
  "teamMembers": [
    {
      "userId": "ocQHyuzHvysMo5N5VsXc",
      "priority": 0.5,
      "isPrimary": true,
      "locationConfigurations": [
        {
          "kind": "custom",
          "location": "+14455550132"
        }
      ]
    }
  ],
  "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": "+14455550132"
    }
  ],
  "slotDuration": 30,
  "slotDurationUnit": "mins",
  "preBufferUnit": "mins",
  "slotInterval": 30,
  "slotIntervalUnit": "mins",
  "slotBuffer": 123,
  "preBuffer": 123,
  "appoinmentPerSlot": 123,
  "appoinmentPerDay": 123,
  "allowBookingAfter": 123,
  "allowBookingAfterUnit": "days",
  "allowBookingFor": 123,
  "allowBookingForUnit": "days",
  "openHours": [
    {
      "daysOfTheWeek": [
        3
      ],
      "hours": [
        {
          "openHour": 11.5,
          "openMinute": 30,
          "closeHour": 11.5,
          "closeMinute": 30
        }
      ]
    }
  ],
  "enableRecurring": false,
  "recurring": {
    "freq": "DAILY",
    "count": 23,
    "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": [
        {
          "openHour": 11.5,
          "openMinute": 30,
          "closeHour": 11.5,
          "closeMinute": 30
        }
      ],
      "deleted": false,
      "id": "<string>"
    }
  ],
  "guestType": "count_only",
  "consentLabel": "<string>",
  "calendarCoverImage": "<string>",
  "lookBusyConfig": {
    "enabled": true,
    "LookBusyPercentage": 123
  },
  "isActive": true
}
'
{
  "calendar": {
    "locationId": "ocQHyuzHvysMo5N5VsXc",
    "name": "test calendar",
    "id": "0TkCdp9PfvLeWKYRRvIz",
    "isActive": true,
    "notifications": [
      {
        "shouldSendToContact": true,
        "shouldSendToGuest": true,
        "shouldSendToUser": true,
        "shouldSendToSelectedUsers": true,
        "selectedUsers": "user1@testemail.com,user2@testemail.com",
        "type": "email"
      }
    ],
    "groupId": "BqTwX8QFwXzpegMve9EQ",
    "teamMembers": [
      {
        "userId": "ocQHyuzHvysMo5N5VsXc",
        "priority": 0.5,
        "meetingLocationType": "custom",
        "meetingLocation": "<string>",
        "isPrimary": true,
        "locationConfigurations": [
          {
            "kind": "custom",
            "location": "+14455550132",
            "meetingId": "my_conference_id"
          }
        ]
      }
    ],
    "eventType": "RoundRobin_OptimizeForAvailability",
    "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": "+14455550132",
        "meetingId": "my_conference_id"
      }
    ],
    "slotDuration": 30,
    "slotDurationUnit": "mins",
    "slotInterval": 30,
    "slotIntervalUnit": "mins",
    "slotBuffer": 123,
    "slotBufferUnit": "mins",
    "preBuffer": 123,
    "preBufferUnit": "mins",
    "appoinmentPerSlot": 1,
    "appoinmentPerDay": 123,
    "allowBookingAfter": 123,
    "allowBookingAfterUnit": "days",
    "allowBookingFor": 123,
    "allowBookingForUnit": "days",
    "openHours": [
      {
        "daysOfTheWeek": [
          3
        ],
        "hours": [
          {
            "openHour": 11.5,
            "openMinute": 30,
            "closeHour": 11.5,
            "closeMinute": 30
          }
        ]
      }
    ],
    "enableRecurring": false,
    "recurring": {
      "freq": "DAILY",
      "count": 23,
      "bookingOption": "skip",
      "bookingOverlapDefaultStatus": "confirmed"
    },
    "formId": "<string>",
    "stickyContact": true,
    "isLivePaymentMode": true,
    "autoConfirm": true,
    "shouldSendAlertEmailsToAssignedMember": true,
    "alertEmail": "<string>",
    "googleInvitationEmails": false,
    "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": [
          {
            "openHour": 11.5,
            "openMinute": 30,
            "closeHour": 11.5,
            "closeMinute": 30
          }
        ],
        "deleted": false
      }
    ],
    "guestType": "count_only",
    "consentLabel": "<string>",
    "calendarCoverImage": "https://path-to-image.com",
    "lookBusyConfig": {
      "enabled": true,
      "LookBusyPercentage": 123
    }
  }
}

Authorizations

Authorization
string
header
required

Use the Access Token generated with user type as Sub-Account (OR) Private Integration Token of Sub-Account.

Headers

Version
enum<string>
required

API Version

Available options:
2021-04-15

Path Parameters

calendarId
string
required

Calendar Id

Example:

"ocQHyuzHvysMo5N5VsXc"

Body

application/json
notifications
object[]
deprecated

🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.

groupId
string

Group Id

Example:

"BqTwX8QFwXzpegMve9EQ"

teamMembers
object[]

Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member.

eventType
enum<string>
Available options:
RoundRobin_OptimizeForAvailability,
RoundRobin_OptimizeForEqualDistribution
name
string
Example:

"test calendar"

description
string
Example:

"this is used for testing"

slug
string
Example:

"test1"

widgetSlug
string
Example:

"test1"

widgetType
enum<string>
default:classic

Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout.

Available options:
default,
classic
Example:

"classic"

eventTitle
string
eventColor
string
default:#039be5
locationConfigurations
object[]

Meeting location configuration for event calendar

slotDuration
number
default:30

This controls the duration of the meeting

slotDurationUnit
enum<string>

Unit for slot duration.

Available options:
mins,
hours
preBufferUnit
enum<string>

Unit for pre-buffer.

Available options:
mins,
hours
slotInterval
number
default:30

Slot interval reflects the amount of time the between booking slots that will be shown in the calendar.

slotIntervalUnit
enum<string>

Unit for slot interval.

Available options:
mins,
hours
slotBuffer
number

Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up

preBuffer
number

Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready

appoinmentPerSlot
number
appoinmentPerDay
number

Number of appointments that can be booked for a given day

allowBookingAfter
number

Minimum scheduling notice for events

allowBookingAfterUnit
enum<string>

Unit for minimum scheduling notice

Available options:
hours,
days,
weeks,
months
Example:

"days"

allowBookingFor
number

Minimum number of days/weeks/months for which to allow booking events

allowBookingForUnit
enum<string>

Unit for controlling the duration for which booking would be allowed for

Available options:
days,
weeks,
months
Example:

"days"

openHours
object[]
enableRecurring
boolean
default:false

Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this

recurring
object
formId
string
stickyContact
boolean
isLivePaymentMode
boolean
autoConfirm
boolean
shouldSendAlertEmailsToAssignedMember
boolean
alertEmail
string
googleInvitationEmails
boolean
allowReschedule
boolean
allowCancellation
boolean
shouldAssignContactToTeamMember
boolean
shouldSkipAssigningContactForExisting
boolean
notes
string
pixelId
string
formSubmitType
enum<string>
default:ThankYouMessage
Available options:
RedirectURL,
ThankYouMessage
formSubmitRedirectURL
string
formSubmitThanksMessage
string
availabilityType
enum<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.
Available options:
0,
1
availabilities
object[]

This is only to set the custom availability. For standard availability, use the openHours property

guestType
enum<string>
Available options:
count_only,
collect_detail
calendarCoverImage
string
lookBusyConfig
object
isActive
boolean

Response

Successful response

calendar
object
required
Last modified on March 4, 2026