Reclaim.ai calendars API

The calendars API from Reclaim.ai — 20 operation(s) for calendars.

Operations 23

POST /api/calendars/permissions/sync #
GET /api/calendars/personal #
GET /api/calendars/personal/candidates #
GET /api/calendars/personal/{id} #
DELETE /api/calendars/personal/{id} #
GET /api/calendars/primary #
POST /api/calendars/share #
GET /api/calendars/sync #
POST /api/calendars/sync #
GET /api/calendars/sync/candidates #
POST /api/calendars/sync/interest #
GET /api/calendars/sync/{credentialId}/candidates/sources #
GET /api/calendars/sync/{credentialId}/candidates/targets #
GET /api/calendars/sync/{id} #
DELETE /api/calendars/sync/{id} #
POST /api/calendars/watch #
POST /api/calendars/watchList Heads up! We have seen at least one case where Google can issue an excessive, unnatural amount of watch callbacks. #
POST /api/calendars/watchSettings #
POST /api/calendars/{calendarId}/audit-and-repair #
POST /api/calendars/{calendarId}/audit-and-repair-v2 #
POST /api/calendars/{credentialId}/{externalCalendarId}/clean #
DELETE /api/calendars/{credentialId}/{externalId}/colors #
POST /api/calendars/{targetCalendarId}/rescore #

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-calendars-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-calendars-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reclaim account-time-schemes Calendars 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: calendars
paths:
  /api/calendars/permissions/sync:
    post:
      tags:
      - calendars
      operationId: syncPermissions
      responses:
        '200':
          description: syncPermissions 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /api/calendars/personal:
    get:
      tags:
      - calendars
      operationId: getAllPersonal
      responses:
        '200':
          description: getAllPersonal 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/personal/candidates:
    get:
      tags:
      - calendars
      operationId: getPersonalCandidates
      parameters:
      - name: credentialId
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
      responses:
        '200':
          description: getPersonalCandidates 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/personal/{id}:
    get:
      tags:
      - calendars
      operationId: getPersonal
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: getPersonal 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
    delete:
      tags:
      - calendars
      operationId: deletePersonal
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema: {}
      deprecated: true
      security:
      - Authorization: []
  /api/calendars/primary:
    get:
      tags:
      - calendars
      operationId: getPrimary
      responses:
        '200':
          description: getPrimary 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/share:
    post:
      tags:
      - calendars
      operationId: share
      parameters:
      - name: credentialId
        in: query
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema: {}
      security:
      - Authorization: []
  /api/calendars/sync:
    get:
      tags:
      - calendars
      operationId: getAllSync
      responses:
        '200':
          description: getAllSync 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
    post:
      tags:
      - calendars
      operationId: createSync
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalendarRequest'
        required: true
      responses:
        '200':
          description: createSync 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/sync/candidates:
    get:
      tags:
      - calendars
      operationId: getSyncCandidates
      parameters:
      - name: credentialId
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
      responses:
        '200':
          description: getSyncCandidates 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/sync/interest:
    post:
      tags:
      - calendars
      operationId: interest
      parameters:
      - name: type
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema: {}
      security:
      - Authorization: []
  /api/calendars/sync/{credentialId}/candidates/sources:
    get:
      tags:
      - calendars
      operationId: getSourceCandidates
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: getSourceCandidates 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/sync/{credentialId}/candidates/targets:
    get:
      tags:
      - calendars
      operationId: getTargetCandidates
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: getTargetCandidates 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
  /api/calendars/sync/{id}:
    get:
      tags:
      - calendars
      operationId: getSync
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: getSync 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calendar'
      security:
      - Authorization: []
    delete:
      tags:
      - calendars
      operationId: deleteSync
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema: {}
      security:
      - Authorization: []
  /api/calendars/watch:
    post:
      tags:
      - calendars
      operationId: watch
      responses:
        '200':
          description: watch 200 response
          content:
            application/json:
              schema:
                type: string
  /api/calendars/watchList:
    post:
      tags:
      - calendars
      summary: Heads up! We have seen at least one case where Google can issue an excessive, unnatural amount of watch callbacks.
      description: Heads up! We have seen at least one case where Google can issue an excessive, unnatural amount of watch callbacks. for more information. Specifically, BE CAREFUL adding any blocking IO code, such as web service calls or database queries, upstream of that job.
      operationId: listWatch
      responses:
        '200':
          description: listWatch 200 response
          content:
            application/json:
              schema:
                type: string
  /api/calendars/watchSettings:
    post:
      tags:
      - calendars
      operationId: settingsWatch
      responses:
        '200':
          description: settingsWatch 200 response
          content:
            application/json:
              schema:
                type: string
  /api/calendars/{calendarId}/audit-and-repair:
    post:
      tags:
      - calendars
      operationId: repair
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: repair 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
      security:
      - Authorization: []
  /api/calendars/{calendarId}/audit-and-repair-v2:
    post:
      tags:
      - calendars
      operationId: auditAndRepairV2
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: resyncMode
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/CalendarConsistencyService.ResyncMode'
      responses:
        '200':
          description: auditAndRepairV2 200 response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
      security:
      - Authorization: []
  /api/calendars/{credentialId}/{externalCalendarId}/clean:
    post:
      tags:
      - calendars
      operationId: cleanCalendar
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: externalCalendarId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CleanRequest'
        required: true
      responses:
        '200':
          description: cleanCalendar 200 response
      security:
      - Authorization: []
  /api/calendars/{credentialId}/{externalId}/colors:
    delete:
      tags:
      - calendars
      operationId: clearColors
      parameters:
      - name: credentialId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: externalId
        in: path
        required: true
        schema:
          type: string
      - name: daysBack
        in: query
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                daysBack:
                  type:
                  - integer
                  - 'null'
                  format: int32
        required: true
      responses:
        '200':
          description: clearColors 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /api/calendars/{targetCalendarId}/rescore:
    post:
      tags:
      - calendars
      operationId: cleanSync
      parameters:
      - name: targetCalendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: cleanSync 200 response
      security:
      - Authorization: []
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'
    EntitlementValue_Object_:
      required:
      - nextEdition
      - nextValue
      - value
      type: object
      properties:
        value: {}
        nextValue: {}
        nextEdition:
          allOf:
          - $ref: '#/components/schemas/ReclaimEdition'
    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
    CredentialName:
      required:
      - email
      type: object
      properties:
        email:
          type: string
    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'
    Calendar:
      required:
      - syncSettings
      type: object
      properties:
        valid:
          type: boolean
        primaryCalendarForAccount:
          type: boolean
        id:
          type: integer
          format: int64
        name:
          type: string
        colorHex:
          type: string
        user:
          $ref: '#/components/schemas/User'
        userId:
          type: string
        calendarId:
          type: string
        externalCalendarId:
          $ref: '#/components/schemas/ExternalCalendarId'
        credentialEmail:
          $ref: '#/components/schemas/CredentialName'
        credentialProvider:
          $ref: '#/components/schemas/AuthProvider'
        credentialId:
          type: integer
          format: int64
        syncToken:
          type: string
        watchGuid:
          type: string
        watchResourceId:
          type: string
        data:
          type: object
          additionalProperties: true
        eventTypeSupport:
          $ref: '#/components/schemas/EventTypeSupport'
        accessDomainRead:
          type: boolean
        authorized:
          type: boolean
        created:
          type: string
          format: date-time
        deleted:
          type: string
          format: date-time
        type:
          $ref: '#/components/schemas/Calendar.Type'
        accessRole:
          $ref: '#/components/schemas/GCalConstants.AccessRole'
        systemCalendar:
          type: boolean
        nextRefresh:
          type: string
          format: date-time
        timezone:
          type: string
        primaryCalendarId:
          type: string
        priority:
          type: integer
          format: int32
        projectId:
          type: integer
          format: int64
        connected:
          type: boolean
        syncSettings:
          $ref: '#/components/schemas/SyncSettings'
        lastSynced:
          type: string
          format: date-time
        syncIdEncodingVersion:
          type: integer
          format: int32
        useType:
          $ref: '#/components/schemas/CalendarUseType'
        blockAvailability:
          type: boolean
        directlyConnected:
          type: boolean
        primary:
          type: boolean
        defaultReminders:
          type: array
          deprecated: true
          items:
            type: integer
            format: int32
        reminderDefaults:
          type: array
          items:
            $ref: '#/components/schemas/Reminder'
    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
    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
    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
    Calendar.Type:
      type: string
      enum:
      - PRIMARY
      - SHADOW
      - PERSONAL
      - PRIORITY
      - PROJECT
      - OOO
    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
    AuthProvider:
      type: string
      enum:
      - google
      - microsoft
      - dropbox
      - test
      - mock_provider
      x-enum-varnames:
      - google
      - microsoft
      - dropbox
      - test
      - mock_provider
    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'
    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
    Reminder:
      required:
      - minutes
      - reminderType
      type: object
      properties:
        reminderType:
          $ref: '#/components/schemas/ReminderType'
        minutes:
          type: integer
          format: int32
    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
    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'
    CalendarUseType:
      type: string
      enum:
      - UNKNOWN
      - MULTI_USE
      - WORK
      - PERSONAL
      - FAMILY
      - TEAM
      - VACATION
      - TRAVEL
      - TEAM_OOO_CALENDAR
    CleanRequest:
      required:
      - assistEvents
      - futureOnly
      type: object
      properties:
        futureOnly:
          type: boolean
        assistEvents:
          type: boolean
        sourceCalendarId:
          type:
          - integer
          - 'null'
          format: int64
        sourceCalendarExternalId:
          type:
          - string
          - 'null'
        syncEncodingVersion:
          type:
          - integer
          - 'null'
          format: int64
    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
    AnalyticsSettings:
      type: object
      properties:
        teamAnalyticsV4ViewEnabled:
          type: boolean
        teamAnalyticsV4FiltersEnabled:
          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
    

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