For the complete documentation index, see llms.txt. This page is also available as Markdown.

Calendar API

Note:

  1. Calendar API includes read only date fields (such as localStartDateTime or localEndDateTime) with the timezone applied. Such fields use ISO-8601 datetime format.

If API caller is a user (not API CLIENT), that user timezone will be applied. If caller is an API CLIENT, that timezone of event user host id will be applied.

For UTC time you should use field without local prefix (such as startDateTime and endDateTime)

Read Work Hours

get
  1. HTTP Method: GET

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/work-hours

URL examples:

  1. https://api.live.welkincloud.io/gh/sb-demo/calendar/work-hours ?psm-ids=301b2895-cbf0-4cac-b4cf-1d082faee95c &from=2020-01-01T00:00:00.000Z &to=2020-01-31T23:59:59.000Z

  2. https://api.live.welkincloud.io/gh/sb-demo/calendar/work-hours ?psm-ids=301b2895-cbf0-4cac-b4cf-1d082faee95c,18f393a8-62b3-4b4b-aa42-da769ce4489a &from=2020-01-01T00:00:00.000Z &to=2020-01-31T23:59:59.000Z

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
psmIdsstring[]Optional

List of id and values

Example: ["28f393a8-62b3-4b4b-aa42-da769ce4489a","18f393a8-62b3-4b4b-aa42-da769ce4489a"]
fromstringOptional

Date_time in ISO-8601 format

Example: 2020-01-01T00:00:00.000Z
tostringOptional

Date_time in ISO-8601 format

Example: 2020-01-31T23:59:59.000Z
viewerTimezonestringOptional

If provided, return localtime fields (localStartDateTime, localEndDateTime) with provided timezone, otherwise use timezone for psmId user. String timezone (IANA format).

Responses
200

List of work hours (requires psmIds and a from/to date range)

application/json
psmIdstring · uuidOptional
get/{tenantName}/{instanceName}/calendar/work-hours
GET /{tenantName}/{instanceName}/calendar/work-hours HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "psmId": "123e4567-e89b-12d3-a456-426614174000",
    "details": [
      {
        "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
        "createdBy": "123e4567-e89b-12d3-a456-426614174000",
        "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
        "name": "text",
        "type": "WORKING_HOURS",
        "ruleType": "DEFAULT",
        "startDateTime": "2026-01-01T00:00:00.000Z",
        "endDateTime": "2026-01-01T00:00:00.000Z",
        "localStartDateTime": "2026-01-01T00:00:00.000Z",
        "localEndDateTime": "2026-01-01T00:00:00.000Z",
        "daysInfo": [
          {
            "daysInfoId": "123e4567-e89b-12d3-a456-426614174000",
            "day": 1,
            "startTime": "09:00:00",
            "endTime": "17:00:00"
          }
        ],
        "encounters": [
          "text"
        ]
      }
    ]
  }
]

Create Work Hours

post
  1. HTTP Method: POST

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/work-hours

Work Hours required fields

  • psmId

  • type - WORKING_HOURS, if creating working hours for a user or AVAILABILITY, if creating availability for an encounter

  • startDateTime

  • endDateTime

  • daysInfo

  • daysInfo.startTime

  • daysInfo.endTime

  • daysInfo.day

If an availability is created, it is necessary to specify an encounters block in the body, inside of which you should list all encounters that will have this availability. Example:

"encounters": [

"etmp-a1"

]

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Body
psmIdstring · uuidRequired
workHoursIdstring · uuid · nullableOptional
namestring · nullableOptional
startDateTimestring · date-timeRequired
endDateTimestring · date-time · nullableOptional
typestring · enumOptionalDefault: WORKING_HOURSPossible values:
ruleTypestring · enumRequiredPossible values:
encountersstring[]Optional

Required when type is AVAILABILITY.

Responses
201

Work hours created

application/json
psmIdstring · uuidOptional
post/{tenantName}/{instanceName}/calendar/work-hours
POST /{tenantName}/{instanceName}/calendar/work-hours HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 332

{
  "psmId": "123e4567-e89b-12d3-a456-426614174000",
  "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "type": "WORKING_HOURS",
  "ruleType": "DEFAULT",
  "daysInfo": [
    {
      "day": 1,
      "startTime": "09:00:00",
      "endTime": "17:00:00"
    }
  ],
  "encounters": [
    "text"
  ]
}
{
  "psmId": "123e4567-e89b-12d3-a456-426614174000",
  "details": [
    {
      "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
      "createdBy": "123e4567-e89b-12d3-a456-426614174000",
      "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "type": "WORKING_HOURS",
      "ruleType": "DEFAULT",
      "startDateTime": "2026-01-01T00:00:00.000Z",
      "endDateTime": "2026-01-01T00:00:00.000Z",
      "localStartDateTime": "2026-01-01T00:00:00.000Z",
      "localEndDateTime": "2026-01-01T00:00:00.000Z",
      "daysInfo": [
        {
          "daysInfoId": "123e4567-e89b-12d3-a456-426614174000",
          "day": 1,
          "startTime": "09:00:00",
          "endTime": "17:00:00"
        }
      ],
      "encounters": [
        "text"
      ]
    }
  ]
}

Update Work Hours

put

Updating work hours or avability by ID.

type - WORKING_HOURS, if updating working hours or AVAILABILITY, if updating availability for an encounter

If an availability is updating, it is necessary to specify an encounters block in the body, inside of which you should list all encounters that will have this availability. Example:

"encounters": [

"etmp-a1"

]

  1. HTTP Method: PUT

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/work-hours/c7a4251f-d70e-4ccb-8c96-1038c76fd737

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
workHoursIdstring · uuidRequired

UUID of the work hours record

Body
psmIdstring · uuidRequired
workHoursIdstring · uuid · nullableOptional
namestring · nullableOptional
startDateTimestring · date-timeRequired
endDateTimestring · date-time · nullableOptional
typestring · enumOptionalDefault: WORKING_HOURSPossible values:
ruleTypestring · enumRequiredPossible values:
encountersstring[]Optional

Required when type is AVAILABILITY.

Responses
200

Updated work hours

application/json
psmIdstring · uuidOptional
put/{tenantName}/{instanceName}/calendar/work-hours/{workHoursId}
PUT /{tenantName}/{instanceName}/calendar/work-hours/{workHoursId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 332

{
  "psmId": "123e4567-e89b-12d3-a456-426614174000",
  "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "type": "WORKING_HOURS",
  "ruleType": "DEFAULT",
  "daysInfo": [
    {
      "day": 1,
      "startTime": "09:00:00",
      "endTime": "17:00:00"
    }
  ],
  "encounters": [
    "text"
  ]
}
{
  "psmId": "123e4567-e89b-12d3-a456-426614174000",
  "details": [
    {
      "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
      "createdBy": "123e4567-e89b-12d3-a456-426614174000",
      "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "type": "WORKING_HOURS",
      "ruleType": "DEFAULT",
      "startDateTime": "2026-01-01T00:00:00.000Z",
      "endDateTime": "2026-01-01T00:00:00.000Z",
      "localStartDateTime": "2026-01-01T00:00:00.000Z",
      "localEndDateTime": "2026-01-01T00:00:00.000Z",
      "daysInfo": [
        {
          "daysInfoId": "123e4567-e89b-12d3-a456-426614174000",
          "day": 1,
          "startTime": "09:00:00",
          "endTime": "17:00:00"
        }
      ],
      "encounters": [
        "text"
      ]
    }
  ]
}

Find Events

get
  1. HTTP Method: GET

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/

Example URLs:

  1. https://api.live.welkincloud.io/gh/sb-demo/calendar/events?from=2020-01-15T14:00:00.000Z&participantIds=301b2895-cbf0-4cac-b4cf-1d082faee95c&sort=createdAt,asc&to=2020-02-11T00:00:00.000Z&eventType=APPOINTMENT

  2. https://api.live.welkincloud.io/gh/sb-demo/calendar/events?from=2020-01-15T14:00:00.000Z&to=2020-02-11T00:00:00.000Z&eventType=ENCOUNTER&includeEncounterInfo=true

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
tostringOptional

Date_time in ISO-8601 format , required

Example: 2022-02-11T00:00:00.000Z
participantIdsstring[]Optional

List of id and values, either users or

Example: ["301b2895-cbf0-4cac-b4cf-1d082faee95c"]
eventTypestringOptional

Enum of allowed values ("APPOINTMENT", "LEAVE", "ENCOUNTER")

Example: APPOINTMENT
includeCancelledbooleanOptional

Should or not API return cancelled events (default: false)

Example: true
includeEncounterInfobooleanOptional

Should or not API include encounterInfo field into dto (the field is exists for events with ENCOUNTER event type) (default: false)

Example: true
fromstringOptional

Date_time in ISO-8601 format, required

Example: 2021-09-04T14:00:00.000Z
excludeAssignedToEncounterEventsbooleanOptional

If true, only events that are not assigned to encounter will returns (default: false)

Example: true
sortstringOptional

Allows one to specify the sort order of the returned patients collection

Example: createdAt,asc
viewerTimezonestringOptional
Responses
200

Paginated list of calendar events

application/json

Standard paginated response wrapper.

totalElementsintegerOptional

Total number of matching records

totalPagesintegerOptional

Total number of pages

lastbooleanOptional
firstbooleanOptional
numberintegerOptional

Current page number (zero-based)

sizeintegerOptional

Page size

numberOfElementsintegerOptional

Number of elements on the current page

emptybooleanOptional
get/{tenantName}/{instanceName}/calendar/events
GET /{tenantName}/{instanceName}/calendar/events HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "content": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "createdBy": "123e4567-e89b-12d3-a456-426614174000",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
      "updatedAt": "2026-01-01T00:00:00.000Z",
      "externalId": "text",
      "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
      "eventTitle": "text",
      "eventDescription": "text",
      "startDateTime": "2026-01-01T00:00:00.000Z",
      "localStartDateTime": "2026-01-01T00:00:00.000Z",
      "endDateTime": "2026-01-01T00:00:00.000Z",
      "localEndDateTime": "2026-01-01T00:00:00.000Z",
      "allDayEvent": true,
      "duration": 1,
      "eventType": "text",
      "eventStatus": "text",
      "eventMode": "text",
      "eventColor": "text",
      "hostId": "123e4567-e89b-12d3-a456-426614174000",
      "timezone": "text",
      "additionalInfo": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "acuityAppointmentId": 1,
      "externalCalendarEventId": "text",
      "encounterInfo": {
        "encounterId": "123e4567-e89b-12d3-a456-426614174000",
        "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
        "templateName": "text",
        "templateTitle": "text",
        "patientId": "123e4567-e89b-12d3-a456-426614174000",
        "title": "text",
        "description": "text",
        "notes": "text",
        "type": "text",
        "status": "DRAFT",
        "serviceCost": 1,
        "preVisitCost": 1,
        "visitServices": [
          {
            "name": "text",
            "quantity": 1,
            "serviceCost": 1,
            "cancellationFee": 1,
            "preVisitCost": 1,
            "modifiers": [
              "text"
            ]
          }
        ],
        "location": "text"
      },
      "participants": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "participantId": "123e4567-e89b-12d3-a456-426614174000",
          "participantRole": "patient",
          "participationStatus": "UNKNOWN",
          "attended": true,
          "timezone": "text",
          "firstName": "text",
          "lastName": "text",
          "deleted": true,
          "hasAccess": true,
          "hiddenPhi": true,
          "email": "name@gmail.com",
          "phone": "text",
          "gender": "MALE",
          "birthDate": "2026-01-01T00:00:00.000Z",
          "enabled": true
        }
      ],
      "externalEventMetadata": {
        "participants": [
          {
            "email": "name@gmail.com",
            "status": "UNKNOWN",
            "owner": true
          }
        ],
        "calendarProvider": "GOOGLE"
      }
    }
  ],
  "pageable": {
    "sort": {
      "sorted": true,
      "unsorted": true,
      "empty": true
    },
    "pageSize": 1,
    "pageNumber": 1,
    "offset": 1,
    "unpaged": true,
    "paged": true
  },
  "totalElements": 1,
  "totalPages": 1,
  "last": true,
  "first": true,
  "number": 1,
  "size": 1,
  "numberOfElements": 1,
  "empty": true,
  "sort": {
    "sorted": true,
    "unsorted": true,
    "empty": true
  }
}

Create Event

post

Request to create an event in Calendar.

NOTE: It's required to fill "eventColor", otherwise it will be white and not visible on Welkin UI.

For Appointments it should be "eventColor": "green" and for Leave event "eventColor": "grey".

Event required fields

  • startDateTime

  • endDateTime

  • hostId

  • participants

  • participants.participantId

  • participants.participantRole

  1. HTTP Method: POST

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
viewerTimezonestringOptionalExample: Europe/Minsk
Body
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
Responses
201

Created calendar event

application/json
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
post/{tenantName}/{instanceName}/calendar/events
POST /{tenantName}/{instanceName}/calendar/events HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1447

{
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "createdBy": "123e4567-e89b-12d3-a456-426614174000",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "localStartDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "localEndDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "duration": 1,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}

Get Event By External ID

get
  1. HTTP Method: GET

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/externalId?type=EXTERNAL_ID

Parameters
Format
Description

viewerTimezone

String timezone (IANA format)

If provided, return localtime fields (localStartDateTime, localEndDateTime) with provided timezone, otherwise use timezone for psmId user

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
eventIdstring · uuidRequired

UUID of the calendar event

Query parameters
typestringOptionalExample: EXTERNAL_ID
includeEncounterInfobooleanOptional

If true, include encounter details when the event is linked to an encounter.

Example: true
Responses
200

Calendar event (disambiguate by the type query param: ID, EXTERNAL_ID, EXTERNAL_CALENDAR_EVENT_ID)

application/json
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
get/{tenantName}/{instanceName}/calendar/events/{eventId}
GET /{tenantName}/{instanceName}/calendar/events/{eventId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "createdBy": "123e4567-e89b-12d3-a456-426614174000",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "localStartDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "localEndDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "duration": 1,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}

Update Calendar Event by ID

put
  1. HTTP Method: PUT

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/2dfbd113-5282-4f70-b456-d8cf7ecb5573

Event required fields:

  • startDateTime

  • endDateTime

  • hostId

  • participants

  • participants.participantId

  • participants.participantRole

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
eventIdstring · uuidRequired

UUID of the calendar event

Body
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
Responses
200

Updated calendar event

application/json
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
put/{tenantName}/{instanceName}/calendar/events/{eventId}
PUT /{tenantName}/{instanceName}/calendar/events/{eventId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1447

{
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "createdBy": "123e4567-e89b-12d3-a456-426614174000",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "localStartDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "localEndDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "duration": 1,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}

Delete Calendar Event by ID

delete

Note: Only future events can be deleted

EndFragmentStartFragment

  1. HTTP Method: DELETE

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/2dfbd113-5282-4f70-b456-d8cf7ecb5573

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
eventIdstring · uuidRequired

UUID of the calendar event

Responses
200

Calendar event cancelled

No content

delete/{tenantName}/{instanceName}/calendar/events/{eventId}
DELETE /{tenantName}/{instanceName}/calendar/events/{eventId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Patch update Event by ID

patch
  1. HTTP Method: PATCH

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/2dfbd113-5282-4f70-b456-d8cf7ecb5573

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
eventIdstring · uuidRequired

UUID of the calendar event

Body

Partial update — all fields optional.

externalIdstring · nullableOptional
eventTitlestringOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeOptional
endDateTimestring · date-timeOptional
allDayEventbooleanOptional
eventTypestringOptional
eventStatusstringOptional
eventModestringOptional
eventColorstring · nullableOptional
hostIdstring · uuidOptional
timezonestringOptional
externalCalendarEventIdstring · nullableOptional
Responses
200

Updated calendar event

application/json
idstring · uuidRead-onlyOptional
createdBystring · uuidRead-onlyOptional
createdAtstring · date-timeRead-onlyOptional
updatedBystring · uuidRead-onlyOptional
updatedAtstring · date-timeRead-onlyOptional
externalIdstring · nullableOptional
externalIdUpdatedAtstring · date-time · nullableOptional
eventTitlestring · nullableOptional
eventDescriptionstring · nullableOptional
startDateTimestring · date-timeRequired
localStartDateTimestring · date-timeRead-onlyOptional
endDateTimestring · date-timeRequired
localEndDateTimestring · date-timeRead-onlyOptional
allDayEventbooleanOptional
durationinteger · nullableRead-onlyOptional
eventTypestringOptional

Free text — commonly one of CalendarEventType's values.

eventStatusstringOptional

Free text — commonly one of CalendarEventStatus's values.

eventModestringOptional

Free text — commonly one of DeliveryMethod's values.

eventColorstring · nullableOptional
hostIdstring · uuidRequired
timezonestring · nullableOptional
acuityAppointmentIdinteger · nullableOptional
externalCalendarEventIdstring · nullableOptional
patch/{tenantName}/{instanceName}/calendar/events/{eventId}
PATCH /{tenantName}/{instanceName}/calendar/events/{eventId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 898

{
  "externalId": "text",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "participants": [
    {
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalCalendarEventId": "text",
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "createdBy": "123e4567-e89b-12d3-a456-426614174000",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "externalId": "text",
  "externalIdUpdatedAt": "2026-01-01T00:00:00.000Z",
  "eventTitle": "text",
  "eventDescription": "text",
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "localStartDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "localEndDateTime": "2026-01-01T00:00:00.000Z",
  "allDayEvent": true,
  "duration": 1,
  "eventType": "text",
  "eventStatus": "text",
  "eventMode": "text",
  "eventColor": "text",
  "hostId": "123e4567-e89b-12d3-a456-426614174000",
  "timezone": "text",
  "additionalInfo": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "acuityAppointmentId": 1,
  "externalCalendarEventId": "text",
  "encounterInfo": {
    "encounterId": "123e4567-e89b-12d3-a456-426614174000",
    "dispositionId": "123e4567-e89b-12d3-a456-426614174000",
    "templateName": "text",
    "templateTitle": "text",
    "patientId": "123e4567-e89b-12d3-a456-426614174000",
    "title": "text",
    "description": "text",
    "notes": "text",
    "type": "text",
    "status": "DRAFT",
    "serviceCost": 1,
    "preVisitCost": 1,
    "visitServices": [
      {
        "name": "text",
        "quantity": 1,
        "serviceCost": 1,
        "cancellationFee": 1,
        "preVisitCost": 1,
        "modifiers": [
          "text"
        ]
      }
    ],
    "location": "text"
  },
  "participants": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "participantId": "123e4567-e89b-12d3-a456-426614174000",
      "participantRole": "patient",
      "participationStatus": "UNKNOWN",
      "attended": true,
      "timezone": "text",
      "firstName": "text",
      "lastName": "text",
      "deleted": true,
      "hasAccess": true,
      "hiddenPhi": true,
      "email": "name@gmail.com",
      "phone": "text",
      "gender": "MALE",
      "birthDate": "2026-01-01T00:00:00.000Z",
      "enabled": true
    }
  ],
  "externalEventMetadata": {
    "participants": [
      {
        "email": "name@gmail.com",
        "status": "UNKNOWN",
        "owner": true
      }
    ],
    "calendarProvider": "GOOGLE"
  }
}

Get Summary for the User

get
  1. HTTP Method: GET

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/psm-event-summary?from=2020-01-15T14:00:00.000Z&to=2020-02-11T00:00:00.000Z&psmIds=301b2895-cbf0-4cac-b4cf-1d082faee95c

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
fromstringOptional

Date_time in ISO-8601 format

Example: 2020-01-15T14:00:00.000Z
tostringOptional

Date_time in ISO-8601 format

Example: 2020-02-11T00:00:00.000Z
psmIdsstring[]Optional

User id

Example: ["28f393a8-62b3-4b4b-aa42-da769ce4489a"]
Responses
200

Event/working-hours summary per PSM

application/json
startDateTimestring · date-timeOptional
endDateTimestring · date-timeOptional
get/{tenantName}/{instanceName}/calendar/psm-event-summary
GET /{tenantName}/{instanceName}/calendar/psm-event-summary HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "startDateTime": "2026-01-01T00:00:00.000Z",
  "endDateTime": "2026-01-01T00:00:00.000Z",
  "summary": [
    {
      "psmId": "123e4567-e89b-12d3-a456-426614174000",
      "totalCreatedEvents": 1,
      "totalOccurredEvents": 1,
      "totalFutureEvents": 1,
      "eventStatusCount": {
        "SCHEDULED": 3,
        "CANCELLED": 1
      },
      "totalWorkingHours": "text",
      "totalEventHours": "text",
      "occupancy": "text"
    }
  ]
}

Get Schedules

get

The request returns information about the schedule of users for the specified period: working hours, availability for encounters, all events in the calendar

Example:

https://api.live.welkincloud.io/gh/sb-demo/calendar/psm-schedules ?psmIds=28f393a8-62b3-4b4b-aa42-da769ce4489a,18f393a8-62b3-4b4b-aa42-da769ce4489a &from=2020-01-01T00:00:00.000Z &to=2020-01-31T23:59:59.000Z

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
psmIdsstring[]Optional

List of id and values

Example: ["28f393a8-62b3-4b4b-aa42-da769ce4489a","18f393a8-62b3-4b4b-aa42-da769ce4489a"]
fromstringOptional

Date_time in ISO-8601 format

Example: 2020-01-15T14:00:00.000Z
tostringOptional

Date_time in ISO-8601 format

Example: 2020-02-11T00:00:00.000Z
workHoursTypestringOptional

WORKING_HOURS or AVAILABILITY

Responses
200

List of PSM schedules (work hours + events)

application/json
psmIdstring · uuidOptional
get/{tenantName}/{instanceName}/calendar/psm-schedules
GET /{tenantName}/{instanceName}/calendar/psm-schedules HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "psmId": "123e4567-e89b-12d3-a456-426614174000",
    "workHours": [
      {
        "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
        "createdBy": "123e4567-e89b-12d3-a456-426614174000",
        "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
        "name": "text",
        "type": "WORKING_HOURS",
        "ruleType": "DEFAULT",
        "startDateTime": "2026-01-01T00:00:00.000Z",
        "endDateTime": "2026-01-01T00:00:00.000Z",
        "localStartDateTime": "2026-01-01T00:00:00.000Z",
        "localEndDateTime": "2026-01-01T00:00:00.000Z",
        "daysInfo": [
          {
            "daysInfoId": "123e4567-e89b-12d3-a456-426614174000",
            "day": 1,
            "startTime": "09:00:00",
            "endTime": "17:00:00"
          }
        ],
        "encounters": [
          "text"
        ]
      }
    ],
    "events": [
      {
        "eventId": "123e4567-e89b-12d3-a456-426614174000",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "eventTitle": "text",
        "eventType": "text",
        "eventColor": "text",
        "allDayEvent": true,
        "startDateTime": "2026-01-01T00:00:00.000Z",
        "localStartDateTime": "2026-01-01T00:00:00.000Z",
        "endDateTime": "2026-01-01T00:00:00.000Z",
        "localEndDateTime": "2026-01-01T00:00:00.000Z"
      }
    ]
  }
]

Get Available Schedules

get

The request checks the availability of users for the specified period and returns information about working hours, availabilities for encounters and all events in the calendar. In order for the information to be displayed for a user, the user must have working hours set for the specified period. If the user does not have working hours in the specified period, he is considered unavailable and the information will not be displayed for him

Example:

https://api.live.welkincloud.io/gh/sb-demo/calendar/psm-schedules ?psmIds=28f393a8-62b3-4b4b-aa42-da769ce4489a,18f393a8-62b3-4b4b-aa42-da769ce4489a &from=2020-01-01T00:00:00.000Z &to=2020-01-31T23:59:59.000Z

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
Query parameters
psmIdsstring[]Optional

List of id and values

Example: ["28f393a8-62b3-4b4b-aa42-da769ce4489a","18f393a8-62b3-4b4b-aa42-da769ce4489a"]
fromstringOptional

Date_time in ISO-8601 format

Example: 2020-01-15T14:00:00.000Z
tostringOptional

Date_time in ISO-8601 format

Example: 2020-02-11T00:00:00.000Z
workHoursTypestringOptional

WORKING_HOURS or AVAILABILITY

Responses
200

List of available PSM schedules

application/json
psmIdstring · uuidOptional
get/{tenantName}/{instanceName}/calendar/available-psm-schedules
GET /{tenantName}/{instanceName}/calendar/available-psm-schedules HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "psmId": "123e4567-e89b-12d3-a456-426614174000",
    "workHours": [
      {
        "workHoursId": "123e4567-e89b-12d3-a456-426614174000",
        "createdBy": "123e4567-e89b-12d3-a456-426614174000",
        "updatedBy": "123e4567-e89b-12d3-a456-426614174000",
        "name": "text",
        "type": "WORKING_HOURS",
        "ruleType": "DEFAULT",
        "startDateTime": "2026-01-01T00:00:00.000Z",
        "endDateTime": "2026-01-01T00:00:00.000Z",
        "localStartDateTime": "2026-01-01T00:00:00.000Z",
        "localEndDateTime": "2026-01-01T00:00:00.000Z",
        "daysInfo": [
          {
            "daysInfoId": "123e4567-e89b-12d3-a456-426614174000",
            "day": 1,
            "startTime": "09:00:00",
            "endTime": "17:00:00"
          }
        ],
        "encounters": [
          "text"
        ]
      }
    ],
    "events": [
      {
        "eventId": "123e4567-e89b-12d3-a456-426614174000",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "eventTitle": "text",
        "eventType": "text",
        "eventColor": "text",
        "allDayEvent": true,
        "startDateTime": "2026-01-01T00:00:00.000Z",
        "localStartDateTime": "2026-01-01T00:00:00.000Z",
        "endDateTime": "2026-01-01T00:00:00.000Z",
        "localEndDateTime": "2026-01-01T00:00:00.000Z"
      }
    ]
  }
]

Update Event invitation response by ID

put
  1. HTTP Method: PUT

  2. HTTP URL: https://api.live.welkincloud.io/gh/sb-demo/calendar/events/2dfbd113-5282-4f70-b456-d8cf7ecb5573/invitation-response

Note: all fields are required

Authorizations
AuthorizationstringRequired

Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.

Path parameters
tenantNamestringRequired

Your organization (tenant) name, e.g. acme-health

Example: acme-health
instanceNamestringRequired

Your environment name: live, sandbox, or a custom name

Example: live
eventIdstring · uuidRequired

UUID of the calendar event

Body
participantIdstring · uuidRequired
participationStatusstringRequired

e.g. Yes, No, Maybe

Responses
200

Invitation response recorded

No content

put/{tenantName}/{instanceName}/calendar/events/{eventId}/invitation-response
PUT /{tenantName}/{instanceName}/calendar/events/{eventId}/invitation-response HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 85

{
  "participantId": "123e4567-e89b-12d3-a456-426614174000",
  "participationStatus": "text"
}

No content

Last updated

Was this helpful?