Reclaim.ai websocket API

The websocket API from Reclaim.ai — 7 operation(s) for websocket.

Operations 7

POST /ws-relay #
POST /ws/bogus This is a bogus endpoint that gives us swagger generated objects for our websocket specific classes. #
POST /ws/connect #
POST /ws/default #
POST /ws/disconnect #
POST /ws/subscribe #
POST /ws/unsubscribe #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/reclaim-ai-websocket-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

reclaim-ai-websocket-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reclaim account-time-schemes Websocket API
  description: Reclaim's awesome API
  contact:
    name: Reclaim.ai Inc.
    url: http://reclaim.ai
    email: info@reclaim.ai
  license:
    name: Reclaim 9.9
    url: http://reclaim.ai
  version: '0.1'
servers:
- url: https://api.app.reclaim.ai
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: websocket
paths:
  /ws-relay:
    post:
      tags:
      - websocket
      operationId: relay
      parameters:
      - name: connectionId
        in: query
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                format: byte
        required: true
      responses:
        '200':
          description: relay 200 response
          content:
            application/json:
              schema:
                type: object
  /ws/bogus:
    post:
      tags:
      - websocket
      summary: This is a bogus endpoint that gives us swagger generated objects for our websocket specific classes.
      description: This is a bogus endpoint that gives us swagger generated objects for our websocket specific classes.
      operationId: swaggerHelper
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BogusRequest'
              - properties:
                  user:
                    $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: swaggerHelper 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /ws/connect:
    post:
      tags:
      - websocket
      operationId: connect_1
      parameters:
      - name: connectionId
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user:
                  $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: connect_1 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /ws/default:
    post:
      tags:
      - websocket
      operationId: defaultHandler
      responses:
        '200':
          description: defaultHandler 200 response
          content:
            application/json:
              schema:
                type: object
  /ws/disconnect:
    post:
      tags:
      - websocket
      operationId: disconnect
      parameters:
      - name: connectionId
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: disconnect 200 response
          content:
            application/json:
              schema:
                type: object
  /ws/subscribe:
    post:
      tags:
      - websocket
      operationId: subscribe
      parameters:
      - name: connectionId
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscribeAction'
        required: true
      responses:
        '200':
          description: subscribe 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebSocketResponseEnvelope'
  /ws/unsubscribe:
    post:
      tags:
      - websocket
      operationId: unsubscribe_2
      parameters:
      - name: connectionId
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnsubscribeAction'
        required: true
      responses:
        '200':
          description: unsubscribe_2 200 response
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    EventDisplayPreferences:
      required:
      - attribution
      - busyEmoji
      - description
      - doneEmoji
      - freeEmoji
      - lockEmoji
      - prefix
      - progressEmoji
      - warningEmoji
      type: object
      properties:
        progressEmoji:
          type: boolean
        lockEmoji:
          type: boolean
        freeEmoji:
          type: boolean
        busyEmoji:
          type: boolean
        doneEmoji:
          type: boolean
        warningEmoji:
          type: boolean
        description:
          type: boolean
        attribution:
          type: boolean
        prefix:
          type: boolean
    DetailedEntitlements:
      type: object
      properties:
        unlimitedHabitsEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        unlimitedSyncEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        unlimitedConnectedCalendarsEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customSyncTransparencyEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        smart11CreationEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customSlackSyncStatusEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        customConferenceBufferTitleEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        linearEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        jiraEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        todoistEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        asanaEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        clickupEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        trelloEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
        mondayEnabled:
          $ref: '#/components/schemas/EntitlementDetails'
    UnsubscribeAction:
      type: object
      allOf:
      - $ref: '#/components/schemas/WebSocketRequestAction'
      - properties:
          subscriptionId:
            type: string
    EntitlementValue_Object_:
      required:
      - nextEdition
      - nextValue
      - value
      type: object
      properties:
        value: {}
        nextValue: {}
        nextEdition:
          allOf:
          - $ref: '#/components/schemas/ReclaimEdition'
    EventResponseStatus:
      type: string
      enum:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
      x-enum-varnames:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
    UserAccountLock.AccountLockType:
      type: string
      enum:
      - PIPELINE_MIGRATION
    ReclaimEdition:
      type: string
      enum:
      - NONE
      - TRIAL
      - ASSISTANT
      - PRO
      - TEAM
      - REWARD
      - LEGACY_PRO_TRIAL
      - LEGACY_TEAM_TRIAL
      - LITE
      - STARTER
      - BUSINESS
      - TRIAL_BUSINESS
      - TRIAL_BUSINESS_12W
      - TRIAL_BUSINESS_FOR_LEGACY_PLANS
      - ENTERPRISE
      - TEAM_REWARD
      - LITE_V2
      - LITE_V3
    CalendarPermissionSettings:
      type: object
      properties:
        enabled:
          type: boolean
    PrioritiesSettings:
      type: object
      properties:
        enabled:
          type: boolean
    OrgMetadata.OrgManager:
      required:
      - displayName
      - managerId
      - ref
      type: object
      properties:
        managerId:
          type: string
        displayName:
          type: string
        ref:
          type: string
    UserMetadata:
      type: object
      properties:
        jobTitle:
          type: string
        companyName:
          type: string
        companySize:
          $ref: '#/components/schemas/UserMetadataCompanySize'
        usecase:
          $ref: '#/components/schemas/UserMetadataUsecase'
        role:
          allOf:
          - $ref: '#/components/schemas/UserProfileRole'
        goals:
          type: array
          items:
            $ref: '#/components/schemas/UserProfileGoal'
        isWorkspace:
          type: boolean
        department:
          allOf:
          - $ref: '#/components/schemas/UserProfileDepartment'
        orgMetadata:
          $ref: '#/components/schemas/OrgMetadata'
    PrioritySource:
      type: string
      enum:
      - MANUAL
      - AI
      - RULES
    ScheduleAssistantSettings:
      type: object
      properties:
        enabled:
          type: boolean
        calendarUIEnabled:
          type: boolean
        scoringSettings:
          $ref: '#/components/schemas/ScheduleAssistantScoringSettings'
        experimentalFeaturesEnabled:
          type: boolean
        mcpDebug:
          type: boolean
        disableBackgroundAutomation:
          type: boolean
        orgRelationshipsEnabled:
          type: boolean
        enableExternalLlm:
          type: boolean
        selfServiceMigrationEnabled:
          type: boolean
        persistedToolApprovalsEnabled:
          type: boolean
    EventAttendee:
      required:
      - email
      type: object
      properties:
        email:
          type: string
        self:
          type:
          - boolean
          - 'null'
        displayName:
          type:
          - string
          - 'null'
        responseStatus:
          allOf:
          - $ref: '#/components/schemas/ResponseStatus'
        comment:
          type:
          - string
          - 'null'
        optional:
          type:
          - boolean
          - 'null'
        additionalGuests:
          type:
          - integer
          - 'null'
          format: int32
        organizer:
          type:
          - boolean
          - 'null'
        resource:
          type:
          - boolean
          - 'null'
    UserAdventures:
      type: object
      properties:
        adventures:
          properties:
            CORE_CONCEPTS:
              $ref: '#/components/schemas/AdventureSetting'
            CONNECT_PRIMARY_CALENDAR:
              $ref: '#/components/schemas/AdventureSetting'
            ADD_AGENT:
              $ref: '#/components/schemas/AdventureSetting'
            ADD_FOCUS_TIME:
              $ref: '#/components/schemas/AdventureSetting'
            ADD_BUFFERS:
              $ref: '#/components/schemas/AdventureSetting'
            ADD_HABIT:
              $ref: '#/components/schemas/AdventureSetting'
            HEAVY_MEETING_LOAD:
              $ref: '#/components/schemas/AdventureSetting'
            CONNECT_CALENDARS:
              $ref: '#/components/schemas/AdventureSetting'
            CALENDAR_SYNC:
              $ref: '#/components/schemas/AdventureSetting'
            SHARED_CALENDARS:
              $ref: '#/components/schemas/AdventureSetting'
            SCHEDULING_LINKS:
              $ref: '#/components/schemas/AdventureSetting'
            SCHEDULING_LINK_SETTINGS:
              $ref: '#/components/schemas/AdventureSetting'
            HOURS:
              $ref: '#/components/schemas/AdventureSetting'
            PROFILE:
              $ref: '#/components/schemas/AdventureSetting'
            PERMISSIONS:
              $ref: '#/components/schemas/AdventureSetting'
            SLACK:
              $ref: '#/components/schemas/AdventureSetting'
            INTEGRATIONS:
              $ref: '#/components/schemas/AdventureSetting'
            TASK_INTEGRATIONS:
              $ref: '#/components/schemas/AdventureSetting'
            CHAT:
              $ref: '#/components/schemas/AdventureSetting'
            LOG_WORK:
              $ref: '#/components/schemas/AdventureSetting'
            PREVIEW_MODE:
              $ref: '#/components/schemas/AdventureSetting'
    AdventureSetting:
      required:
      - complete
      type: object
      properties:
        complete:
          type: boolean
    SmartOneOnOneSettings:
      type: object
      properties:
        enabled:
          type: boolean
    GoogleCalendarEventMetadata:
      required:
      - guestsCanInviteOthers
      - guestsCanModify
      - guestsCanSeeOtherGuests
      type: object
      properties:
        guestsCanModify:
          type: boolean
        guestsCanInviteOthers:
          type: boolean
        guestsCanSeeOtherGuests:
          type: boolean
    SlackSettings.StatusSync:
      type: string
      enum:
      - 'OFF'
      - DEFAULT
      - BUSY
      - CUSTOM
      - TEAM
    SlackStatusSetting:
      type: object
      properties:
        emoji:
          type: string
        template:
          type: string
        dnd:
          type: boolean
        enabled:
          type: boolean
    TaskAutoWorkflowSettings:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/TaskAutoWorkflowType'
        durationToWaitInDays:
          type: integer
          format: int32
    UserAccountLock:
      required:
      - accountLockType
      - lockMessage
      type: object
      properties:
        accountLockType:
          $ref: '#/components/schemas/UserAccountLock.AccountLockType'
        lockMessage:
          type: string
    ObservedUser:
      type: object
      allOf:
      - $ref: '#/components/schemas/LogContext'
      - properties:
          id:
            type: string
          trackingCode:
            type: string
          edition:
            $ref: '#/components/schemas/ReclaimEdition'
    TimezoneSettings:
      required:
      - timeZonePreference
      type: object
      properties:
        zoneId:
          type:
          - string
          - 'null'
        timeZonePreference:
          $ref: '#/components/schemas/TimezonePreference'
        timezonePreference:
          $ref: '#/components/schemas/TimezonePreference'
    ConferenceBufferType:
      type: string
      enum:
      - ALL_MEETINGS
      - CONFERENCE_MEETINGS
    TaskCooldown:
      type: string
      enum:
      - NONE
      - LEGACY
      - HALF_HOUR
      - ONE_HOUR
      - TWO_HOURS
      - FOUR_HOURS
      - ONCE_A_DAY
    UserDateTimeFormatter:
      type: object
      properties:
        locale:
          type: string
    ColorsSettings:
      type: object
      properties:
        enabled:
          type: boolean
        categoriesEnabled:
          type: boolean
        lastModified:
          type: string
          format: date-time
        priorities:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EventColor'
        categories:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EventColor'
    EventColor:
      type: string
      enum:
      - NONE
      - LAVENDER
      - SAGE
      - GRAPE
      - FLAMINGO
      - BANANA
      - TANGERINE
      - PEACOCK
      - GRAPHITE
      - BLUEBERRY
      - BASIL
      - TOMATO
    Entitlements:
      type: object
      properties:
        unlimitedHabitsEnabled:
          type: boolean
        unlimitedConnectedCalendarsEnabled:
          type: boolean
        unlimitedSyncEnabled:
          type: boolean
        customSyncTransparencyEnabled:
          type: boolean
        smart11CreationEnabled:
          type: boolean
        customSlackSyncStatusEnabled:
          type: boolean
        customConferenceBufferTitleEnabled:
          type: boolean
        schedulingLinkSurveyEnabled:
          type: boolean
        maxDaysAheadForSchedulingLinks:
          type: integer
          format: int32
        linearEnabled:
          type: boolean
        jiraEnabled:
          type: boolean
        todoistEnabled:
          type: boolean
        asanaEnabled:
          type: boolean
        clickupEnabled:
          type: boolean
        trelloEnabled:
          type: boolean
        mondayEnabled:
          type: boolean
        dropboxEnabled:
          type: boolean
        SSOEnabled:
          type: boolean
    DefaultRsvpAvailability:
      type: object
      properties:
        treatNeedsActionRsvpAs:
          $ref: '#/components/schemas/AvailabilityType'
    AssistDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/AssistType'
        customHabit:
          type: boolean
        smartSeries:
          type: boolean
        focus:
          type: boolean
        habitOrTask:
          type: boolean
        task:
          type: boolean
        conferenceBuffer:
          type: boolean
        travelBuffer:
          type: boolean
        status:
          $ref: '#/components/schemas/AssistStatus'
        travelNewEventId:
          type:
          - string
          - 'null'
          description: The source event id for a travel assist event.
        conferenceEventId:
          type:
          - string
          - 'null'
          description: The source event id for a conference (decompression time) event.
        lastControlledUpdate:
          type: string
          format: date-time
        lastControlledHash:
          type: integer
          format: int32
        defended:
          type: boolean
        pinned:
          type: boolean
        lockState:
          allOf:
          - $ref: '#/components/schemas/LockState'
        dailyHabitId:
          type:
          - integer
          - 'null'
          format: int64
        seriesLineageId:
          type:
          - integer
          - 'null'
          format: int64
        seriesId:
          type:
          - integer
          - 'null'
          format: int64
        taskId:
          type:
          - integer
          - 'null'
          format: int64
        taskIndex:
          type:
          - integer
          - 'null'
          format: int32
        policyOverride:
          allOf:
          - $ref: '#/components/schemas/AssistPolicyOverride'
        lastManualAdjustment:
          type: string
          format: date-time
        recurringAssignmentType:
          $ref: '#/components/schemas/RecurringAssignmentType'
        eventType:
          $ref: '#/components/schemas/ReclaimEventType'
        manuallyStarted:
          type: boolean
        focusId:
          type:
          - integer
          - 'null'
          format: int64
        assistReferenceValid:
          type: boolean
      description: This entity maps to the assist_events table.
    EntitlementDetails:
      required:
      - minimumEdition
      - name
      type: object
      properties:
        minimumEdition:
          type: string
        name:
          type: string
        enabledForUser:
          type: boolean
    DropboxSettings:
      type: object
      properties:
        enabled:
          type: boolean
    SlackSettings:
      type: object
      properties:
        enabled:
          type: boolean
        newSlackExperienceEnabled:
          type: boolean
        customSlackStatusWaterMark:
          type:
          - string
          - 'null'
        previousStatusWaterMarks:
          type:
          - array
          - 'null'
          items:
            type: string
        oooMessageTemplate:
          type:
          - string
          - 'null'
        personalSyncNotifyNew:
          type: boolean
        personalSyncNotifyUpdated:
          type: boolean
        personalSyncNotifyDeleted:
          type: boolean
        personalSyncNotificationsIncludingSelf:
          type: boolean
        habitNotifyUpcoming:
          type: boolean
        taskNotifyUpcoming:
          type: boolean
        travelNotify:
          type: boolean
        outsideHoursMigrated:
          type: boolean
        statusSync:
          $ref: '#/components/schemas/SlackSettings.StatusSync'
        statusEnabled:
          type: boolean
        privateStatus:
          $ref: '#/components/schemas/SlackStatusSetting'
        statuses:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SlackStatusSetting'
        outSideHours:
          $ref: '#/components/schemas/SlackOutsideHoursSetting'
        stopNotifyingDisappearingAfterByType:
          type: object
          additionalProperties:
            type: string
            format: date
    BillingSettings:
      type: object
      properties:
        enabled:
          type: boolean
    EventType:
      type: string
      enum:
      - MEETING
      - WORK
      - LOGISTICS
      - PERSONAL
    WeeklyReport:
      type: object
      properties:
        enabled:
          type: boolean
        sendReport:
          type: boolean
    WebhookSettings:
      type: object
      properties:
        enabled:
          type: boolean
        all:
          $ref: '#/components/schemas/WebhookSettings'
    AssistNotificationSettings:
      required:
      - detectedDigest
      - instanceChanges
      - instanceWindowInDays
      - needsAttentionDigest
      type: object
      properties:
        instanceChanges:
          type: boolean
        instanceWindowInDays:
          type: integer
          format: int32
        needsAttentionDigest:
          type: boolean
        detectedDigest:
          type: boolean
    UserProvisioningDetails:
      required:
      - hasTeamProvisionedMetadata
      type: object
      properties:
        hasTeamProvisionedMetadata:
          type: boolean
    EventKey:
      required:
      - calendarId
      - eventId
      type: object
      properties:
        eventId:
          type: string
        calendarId:
          type: integer
          format: int64
    EventStatus:
      type: string
      enum:
      - PUBLISHED
      - CANCELLED
    Settings:
      type: object
      properties:
        autoAddHangouts:
          type: boolean
        defaultEventLength:
          type: integer
          format: int32
        weekStart:
          type: integer
          format: int32
        format24HourTime:
          type: boolean
        locale:
          type: string
        showDeclinedEvents:
          type: boolean
        timezone:
          type: string
        dateFieldOrder:
          $ref: '#/components/schemas/DateFieldOrder'
    AssistStatus:
      type: string
      enum:
      - CONTROLLED
      - RELEASED
      - ARCHIVED
    TaskDefaults:
      type: object
      properties:
        timeChunksRequired:
          type: integer
          format: int32
        commsTimeChunksRequired:
          type: integer
          format: int32
        delayedStartInMinutes:
          type: integer
          format: int32
        dueInDays:
          type:
          - integer
          - 'null'
          format: int32
        category:
          deprecated: true
          allOf:
          - $ref: '#/components/schemas/EventCategory'
        alwaysPrivate:
          type: boolean
        minChunkSize:
          type: integer
          format: int32
        maxChunkSize:
          type: integer
          format: int32
        timeSchemeId:
          type:
          - string
          - 'null'
        priority:
          type: string
        onDeck:
          type: boolean
        splitUp:
          type: boolean
        googleTaskIntegrationNoDueDateWhenMissing:
          type: boolean
    ReclaimEventType:
      type: string
      enum:
      - USER
      - SYNC
      - HABIT_ASSIGNMENT
      - SMART_HABIT
      - ONE_ON_ONE_ASSIGNMENT
      - SMART_MEETING
      - TASK_ASSIGNMENT
      - CONF_BUFFER
      - TRAVEL_BUFFER
      - SCHEDULING_LINK_MEETING
      - UNKNOWN
      - FOCUS
    AnalyticsSettings:
      type: object
      properties:
        teamAnalyticsV4ViewEnabled:
          type: boolean
        teamAnalyticsV4FiltersEnabled:
          type: boolean
    LockState:
      type: string
      enum:
      - MANUALLY_LOCKED
      - ADJUSTED
      - UPCOMING_WINDOW
      - MANUALLY_UNLOCKED
      - DELETED
      - DECLINED
      - IN_THE_PAST
    SubscriptionType:
      type: string
      enum:
      - Events
      - CalendarEvents
      - SyncStatus
      - DailyHabit
      - OneOnOne
      - Task
      - AssistCompleted
      - AssistPlanned
      - NewSubscription
      - Moment
      - Quest
      - ProductUsage
      - User
      - Team
      - SchedulingLink
      - Analytics
      - SmartMeeting
      - SmartHabit
      - Unsubscribe
      - AssistantInteraction
      - UserReset
      - PipelineMigration
      - ProactiveGtd
      - ActionItemCreation
      - AssistMigration
      x-enum-varnames:
      - Events
      - CalendarEvents
      - SyncStatus
      - DailyHabit
      - OneOnOne
      - Task
      - AssistCompleted
      - AssistPlanned
      - NewSubscription
      - Moment
      - Quest
      - ProductUsage
      - User
      - Team
      - SchedulingLink
      - Analytics
      - SmartMeeting
      - SmartHabit
      - Unsubscribe
      - AssistantInteraction
      - UserReset
      - PipelineMigration
      - ProactiveGtd
      - ActionItemCreation
      - AssistMigration
    AssistPolicyOverride:
      required:
      - durationMax
      - durationMin
      - forceDefend
      - idealTime
      - windowEnd
      - windowStart
      type: object
      properties:
        windowStart:
          type: string
          format: partial-time
        idealTime:
          type: string
          format: partial-time
        windowEnd:
          type: string
          format: partial-time
        durationMin:
          type: integer
          format: int32
        durationMax:
          type: integer
          format: int32
        forceDefend:
          type: boolean
    AssistSettings:
      type: object
      properties:
        travel:
          type: boolean
        otherTravelDuration:
          type: integer
          format: int32
        conferenceBuffer:
          type: boolean
        conferenceBufferDuration:
          type: integer
          format: int32
        assignmentPaddingDuration:
          type: integer
          format: int32
        conferenceBufferPrivate:
          type: boolean
        conferenceBufferType:
          $ref: '#/components/schemas/ConferenceBufferType'
        customConferenceBufferTitle:
          type: string
        focus:
          type: boolean
        allOneOnOnesBusy:
          type: boolean
        autoLockForMeetings:
          $ref: '#/components/schemas/AutoLock'
        autoLockForNonMeetings:
          $ref: '#/components/schemas/AutoLock'
        sendMeetingNotifications:
          type: boolean
        useFreeBusyEmojis:
          type: boolean
        useLockEmoji:
          type: boolean
        includeDescription:
          type: boolean
        includeAttribution:
          type: boolean
        smartSeries:
          type: boolean
        smartMeetingRecurrenceType:
          $ref: '#/components/schemas/SmartSeriesRecurrenceType'
        smartHabitRecurrenceType:
          $ref: '#/components/schemas/SmartSeriesRecurrenceType'
        showClassicHabits:
          type: boolean
        allowSmartSeriesOptIn:
          type: boolean
        smartSeriesMigrateComplete:
          type: boolean
        neverSeenClassicHabits:
          type: boolean
        notificationSettings:
          $ref: '#/components/schemas/AssistNotificationSettings'
        assistDays:
          type: integer
          format: int32
        bypassed:
          type: boolean
        dayZero:
          type: string
          format: date
        schedulerDisabled:
          type: boolean
        schedulerSuppressedUntil:
          type: string
          format: date-time
        schedulerSuppressed:
          type: boolean
        rescheduleUnstarted:
          type: boolean
        rescheduleUnstartedOkToSchedule:
          type: boolean
        dampSmartMeetings:
          type: boolean
        scheduleSmartMeetingsAtMostDaily:
          type: boolean
        scheduleSmartMeetingsOnce:
          type: boolean
        manualAssistRunsEnabled:
          type: boolean
        schedulerWindowWeeks:
          allOf:
          - $ref: '#/components/schemas/SchedulingWindowWeeksOverride'
        extendedSmartMeetingCooldown:
          type: boolean
        includeOrganizerInSmartSeries:
          type: boolean
          deprecated: true
        debugScheduler:
          type: boolean
        smartHabitGen2ToGen3MigrationDate:
          type: string
          format: date-time
        smartMeetingGen2ToGen3MigrationDate:
          type: string
          format: date-time
        gen1HabitsAndMeetingsToGen3AutoMigrate:
          type: boolean
        smartHabitsToGen3AutoMigrate:
          type: boolean
        smartMeetingsToGen3AutoMigrate:
          type: boolean
    FocusSettings:
      type: object
      properties:
        enabled:
          type: boolean
        debug:
          type: boolean
    PlatformEventType:
      type: string
      enum:
      - DEFAULT
      - OUT_OF_OFFICE
      - FROM_MAIL
      - WORKING_LOCATION
      - FOCUS_TIME
      - BIRTHDAY
    EventSubType:
      type: string
      enum:
      - ONE_ON_ONE
      - STAFF_MEETING
      - OP_REVIEW
      - EXTERNAL
      - IDEATION
      - FOCUS
      - PRODUCTIVITY
      - TRAVEL
      - FLIGHT
      - TRAIN
      - RECLAIM
      - VACATION
      - HEALTH
      - ERRAND
      - OTHER_PERSONAL
      - UNKNOWN
    GoogleAddOnSettings:
      type: object
      properties:
        enabled:
          type: boolean
    SchedulingLinkNameVisibility:
      type: string
      enum:
      - NEVER
      - USER_IS_LINK_OWNER
      - VISIBLE_TO_TEAM_MEMBERS
      - VISIBLE_ON_TEAM_MEMBERS_LINKS
      - ALWAYS
    ExperimentalSettings:
      type: object
      properties:
        treatOptionalSmartMeetingAttendeesAsFree:
          type: boolean
        lookAheadForSmartMeetingIdealDayOnWeeklyMeetings:
          type: boolean
    UserProfileRole:
      type: string
      enum:
      - EXEC
      - MANAGER
      - NON_MANAGER
      - CONSULTANT
      - STUDENT
    TodoistSettings:
      type: object
      properties:
        apiV1Enabled:
          type: boolean
    SlotScorerVersion:
      type: string
      enum:
      - V1
    MergeDetails.EventType:
      type: string
      enum:
      - ORGANIZER_EVENT
      - ATTENDEE_EVENT
      - SYNC_EVENT
    SyncFeatureSettings:
      type: object
      properties:
        enabled:
          type: boolean
        hasVipPrivileges:
          type: boolean
        daysBackwardOverride:
          type: integer
          format: int32
    AssistPlanned:
      required:
      - endTime
      - notificationKeys
      - startTime
      type: object
      properties:
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        notificationKeys:
          type: array
          items:
            type: string
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
    ThinCalendar:
      required:
      - calendarId
      - credentialEmail
      - credentialId
      - id
      - lastSynced
      - timezone
      type: object
      properties:
        id:
          type: integer
          format: int64
        timezone:
          type: string
        calendarId:
          type: string
        lastSynced:
          type: string
          format: date-time
        credentialId:
          type: integer
          format: int64
        credentialEmail:
          type: string
    UserPostOnboard:
      type: object
      properties:
        welcomed:
          $ref: '#/components/schemas/UserPostOnboardState'
        focus:
          $ref: '#/components/schemas/UserPostOnboardState'
        hours:
          $ref: '#/components/schemas/UserPostOnboardState'
        habits:
          $ref: '#/components/schemas/UserPostOnboardState'
        firstTask:
          $ref: '#/components/schemas/UserPostOnboardState'
        integration:
          $ref: '#/components/schemas/UserPostOnboardState'
        smartMeetings:
          $ref: '#/components/schemas/UserPostOnboardState'
        schedulingLinks:
          $ref: '#/components/schemas/UserPostOnboardState'
        slackStatusSync:
          $ref: '#/components/schemas/UserPostOnboardState'
        travelTime:
          $ref: '#/components/schemas/UserPostOnboardState'
        zoom:
          $ref: '#/components/schemas/UserPostOnboardState'
        connectCalendars:
          $ref: '#/components/schemas/UserPostOnb

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reclaim-ai/refs/heads/main/openapi/reclaim-ai-websocket-api-openapi.yml