Reclaim.ai interactions API

The interactions API from Reclaim.ai — 25 operation(s) for interactions.

Operations 26

GET /api/interactions #
POST /api/interactions #
POST /api/interactions/apply #
POST /api/interactions/chat #
GET /api/interactions/chat/suggestions #
GET /api/interactions/chat/suggestions/catalog #
POST /api/interactions/close #
POST /api/interactions/current #
GET /api/interactions/daily-digest/current #
GET /api/interactions/daily-digest/current/promote #
GET /api/interactions/onboarding/checklist #
POST /api/interactions/onboarding/complete-step #
POST /api/interactions/onboarding/dismiss #
GET /api/interactions/onboarding/quick-status #
POST /api/interactions/onboarding/reset #
POST /api/interactions/onboarding/skip-step #
GET /api/interactions/onboarding/status #
GET /api/interactions/proactive-gtd/current #
POST /api/interactions/proactive-gtd/generate #
POST /api/interactions/proactive-gtd/promote #
GET /api/interactions/proactive-gtd/tasks #
POST /api/interactions/recommendations/promote #
GET /api/interactions/records #
GET /api/interactions/task/{compoundKey} #
POST /api/interactions/update #
GET /api/interactions/{id} #

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-interactions-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-interactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reclaim account-time-schemes Interactions 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: interactions
paths:
  /api/interactions:
    get:
      tags:
      - interactions
      operationId: listSessions
      parameters:
      - name: expand
        in: query
        schema:
          type:
          - boolean
          - 'null'
      responses:
        '200':
          description: listSessions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InteractionSessionView'
      security:
      - Authorization: []
    post:
      tags:
      - interactions
      operationId: interact
      parameters:
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                request:
                  $ref: '#/components/schemas/SessionInteractionRequest'
        required: true
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/apply:
    post:
      tags:
      - interactions
      operationId: apply
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionApplyRequest'
        required: true
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/chat:
    post:
      tags:
      - interactions
      operationId: chat
      parameters:
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                request:
                  $ref: '#/components/schemas/SessionInteractionRequest'
        required: true
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/chat/suggestions:
    get:
      tags:
      - interactions
      operationId: chatSuggestions
      parameters:
      - name: count
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int32
      responses:
        '200':
          description: chatSuggestions 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserChatMessage'
      security:
      - Authorization: []
  /api/interactions/chat/suggestions/catalog:
    get:
      tags:
      - interactions
      operationId: chatSuggestionsCatalog
      responses:
        '200':
          description: chatSuggestionsCatalog 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChatLearnMoreCategory'
      security:
      - Authorization: []
  /api/interactions/close:
    post:
      tags:
      - interactions
      operationId: close
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionCloseRequest'
        required: true
      responses:
        '200':
          description: close 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InteractionSessionView'
      security:
      - Authorization: []
  /api/interactions/current:
    post:
      tags:
      - interactions
      operationId: currentEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CurrentEventsRequest'
        required: true
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/daily-digest/current:
    get:
      tags:
      - interactions
      operationId: dailyDigestCurrent
      parameters:
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      deprecated: true
      security:
      - Authorization: []
  /api/interactions/daily-digest/current/promote:
    get:
      tags:
      - interactions
      operationId: promoteDailyDigest
      responses:
        '200':
          description: promoteDailyDigest 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /api/interactions/onboarding/checklist:
    get:
      tags:
      - interactions
      operationId: getOnboardingChecklist
      responses:
        '200':
          description: getOnboardingChecklist 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingChecklist'
      security:
      - Authorization: []
  /api/interactions/onboarding/complete-step:
    post:
      tags:
      - interactions
      operationId: completeOnboardingStep
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompleteOnboardingStepRequest'
        required: true
      responses:
        '200':
          description: completeOnboardingStep 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/onboarding/dismiss:
    post:
      tags:
      - interactions
      operationId: dismissOnboarding
      responses:
        '200':
          description: dismissOnboarding 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/onboarding/quick-status:
    get:
      tags:
      - interactions
      operationId: getOnboardingQuickStatus
      responses:
        '200':
          description: getOnboardingQuickStatus 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/onboarding/reset:
    post:
      tags:
      - interactions
      operationId: resetOnboarding
      responses:
        '200':
          description: resetOnboarding 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/onboarding/skip-step:
    post:
      tags:
      - interactions
      operationId: skipOnboardingStep
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompleteOnboardingStepRequest'
        required: true
      responses:
        '200':
          description: skipOnboardingStep 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/onboarding/status:
    get:
      tags:
      - interactions
      operationId: getOnboardingStatus
      responses:
        '200':
          description: getOnboardingStatus 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingStatus'
      security:
      - Authorization: []
  /api/interactions/proactive-gtd/current:
    get:
      tags:
      - interactions
      operationId: proactiveGtdCurrent
      parameters:
      - name: type
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/ProactiveGtdScope.Type'
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/proactive-gtd/generate:
    post:
      tags:
      - interactions
      operationId: generateProactiveGtd
      parameters:
      - name: type
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/ProactiveGtdScope.Type'
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/proactive-gtd/promote:
    post:
      tags:
      - interactions
      operationId: promoteProactiveGtd
      parameters:
      - name: type
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/ProactiveGtdScope.Type'
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/proactive-gtd/tasks:
    get:
      tags:
      - interactions
      operationId: proactiveGtdTasks
      parameters:
      - name: type
        in: query
        schema:
          allOf:
          - $ref: '#/components/schemas/ProactiveGtdScope.Type'
      responses:
        '200':
          description: proactiveGtdTasks 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProactiveGtdTasks'
      security:
      - Authorization: []
  /api/interactions/recommendations/promote:
    post:
      tags:
      - interactions
      operationId: promoteRecommendations
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/records:
    get:
      tags:
      - interactions
      operationId: listRecords
      parameters:
      - name: start
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: end
        in: query
        required: true
        schema:
          type: string
          format: date-time
      - name: expand
        in: query
        schema:
          type:
          - boolean
          - 'null'
      responses:
        '200':
          description: listRecords 200 response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InteractionRecordView'
      security:
      - Authorization: []
  /api/interactions/task/{compoundKey}:
    get:
      tags:
      - interactions
      operationId: getGtdTask
      parameters:
      - name: compoundKey
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: getGtdTask 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GtdTask'
      security:
      - Authorization: []
  /api/interactions/update:
    post:
      tags:
      - interactions
      operationId: update_1
      parameters:
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                request:
                  $ref: '#/components/schemas/SessionInteractionRequest'
        required: true
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSessionInteractionResponse'
      security:
      - Authorization: []
  /api/interactions/{id}:
    get:
      tags:
      - interactions
      operationId: findSessionById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: expand
        in: query
        schema:
          type:
          - boolean
          - 'null'
      responses:
        '200':
          description: findSessionById 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InteractionSessionView'
      security:
      - Authorization: []
components:
  schemas:
    TravelBufferId:
      required:
      - id
      type: object
      properties:
        id:
          type: string
        type:
          type: string
    AddBufferEventAction:
      required:
      - bufferEventType
      - bufferedEventKey
      - end
      - eventKey
      - policyId
      - start
      - title
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        bufferedEventKey:
          $ref: '#/components/schemas/EventKey'
        eventKey:
          $ref: '#/components/schemas/EventKey'
        title:
          type: string
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        bufferEventType:
          $ref: '#/components/schemas/BufferEventType'
        bufferEventPriority:
          allOf:
          - $ref: '#/components/schemas/PriorityLevel'
        eventDescription:
          type:
          - string
          - 'null'
        eventVisibility:
          allOf:
          - $ref: '#/components/schemas/Visibility'
        eventTransparency:
          allOf:
          - $ref: '#/components/schemas/Transparency'
        eventReminders:
          allOf:
          - $ref: '#/components/schemas/Reminders'
        bufferEventCategory:
          allOf:
          - $ref: '#/components/schemas/EventCategory'
        eventColor:
          allOf:
          - $ref: '#/components/schemas/EntryColor'
        type:
          type: string
    LlmTaskListOutput:
      required:
      - tasks
      type: object
      properties:
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/GtdTask'
        type:
          type: string
    AttendeeAvailabilityWarningPatchRequestFields:
      type: object
      properties:
        commonData:
          $ref: '#/components/schemas/SchedulePolicyCommonDataPatchRequestFields'
        timePolicy:
          allOf:
          - $ref: '#/components/schemas/SchedulePolicyTimePolicy'
        type:
          type: string
    AutoDeclineMode:
      type: string
      enum:
      - DECLINE_NONE
      - DECLINE_ALL_CONFLICTING_INVITATIONS
      - DECLINE_ONLY_NEW_CONFLICTING_INVITATIONS
      x-type: String
    DailyHabitId:
      required:
      - id
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
    ExistingTimeScheme:
      required:
      - timeSchemeId
      type: object
      properties:
        timeSchemeId:
          type: string
          description: ID of an existing time scheme (e.g. the user's working hours).
        type:
          type: string
    PolicyAssociation:
      required:
      - association
      - policyId
      - policyType
      type: object
      properties:
        policyId:
          type: string
          format: uuid
        association:
          $ref: '#/components/schemas/EventPolicyAssociation'
        policyType:
          $ref: '#/components/schemas/SchedulePolicyType'
    LlmContext:
      type: string
      enum:
      - INTRO_PROMPT
      - STYLE_GUIDE_PROMPT
      - GLOSSARY
      - SECURITY
      - TIMEZONE
      - LOCALE
      - SCHEDULING_WINDOW
      - SCHEDULING_HOURS
      - MODE
      - ACTIVITY_WELCOME
      - ACTIVITY_RESOLVE_PROBLEMS
      - MEETING_BLUEPRINT
      - ACTIVITY_FIND_A_TIME
      - ACTIVITY_ANALYSIS
      - ACTIVITY_BASIC_CALENDARING
      - ACTIVITY_RECURRENCES
      - ACTIVITY_GET_THINGS_DONE
      - ACTIVITY_PRODUCT_HELP
      - ACTIVITY_SUGGEST_TASKS
      - ONBOARDING_WALKTHROUGH
      - ONBOARDING_PROGRESS
      - EVENT_CONFLICT_GUIDANCE
      - RSVP_GUIDANCE
      - ATTENDEE_CONFLICT_GUIDANCE
      - SPLIT_COVERAGE_GUIDANCE
      - COMPOUND_OPERATION_GUIDANCE
      - KEY_MOMENTS_GUIDANCE
      - DAILY_DIGEST_HERO_GUIDANCE
      - USER_SETTINGS
      - CONNECTED_TASK_SOURCES
      - CONNECTED_CALENDARS
      - PREVIEW_MODE_STATE
      - MCP_TOOL_GUIDANCE
      - MCP_ADDENDUM
      - MCP_TOOL_CALLING_GUIDANCE
      - USER_MESSAGE
      - GENERATED_CHAT_MESSAGE
      - SCHEDULE_CHANGE
      - LLM_RESPONSE
      - LLM_FUNCTION_CALL
      - SCHEDULE_ACTION_TAKEN
      - SCHEDULE_ACTION_REMOVED
      - EVENT_FOCUSED
      - GTD_TASK_EVENT
      - PREVIEW_MODE_CHANGE
      - MCP_APPROVAL_REQUESTED
      - MCP_APPROVAL_RESULT
      - UNDO_ACTION
      - USER_CURRENT_TIME
      - USER_MEMORY
      - CALENDAR_SNAPSHOT
      - CUSTOM_PROMPT
      - RECOMMENDED_POLICIES
      x-deprecated:
      - ACTIVITY_WELCOME
      - ACTIVITY_RESOLVE_PROBLEMS
      - ACTIVITY_FIND_A_TIME
      - ACTIVITY_ANALYSIS
      - ACTIVITY_BASIC_CALENDARING
      - ACTIVITY_GET_THINGS_DONE
      - ACTIVITY_PRODUCT_HELP
      - ACTIVITY_SUGGEST_TASKS
      - DAILY_DIGEST_HERO_GUIDANCE
    ShieldsUpEventData:
      required:
      - policyId
      type: object
      properties:
        policyId:
          type: string
          format: uuid
    GtdTodoistTask:
      required:
      - completed
      - id
      - priority
      - title
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        priority:
          $ref: '#/components/schemas/PriorityLevel'
        status:
          type:
          - string
          - 'null'
        link:
          allOf:
          - $ref: '#/components/schemas/GtdTaskLink'
        due:
          type:
          - string
          - 'null'
          format: date-time
        start:
          type:
          - string
          - 'null'
          format: date-time
        completed:
          type: boolean
        estimateMinutes:
          type:
          - integer
          - 'null'
          format: int32
        labels:
          type:
          - array
          - 'null'
          items:
            type: string
        projectId:
          type:
          - string
          - 'null'
        url:
          type:
          - string
          - 'null'
        type:
          type: string
    EventFocused:
      required:
      - eventKey
      - focusType
      type: object
      properties:
        eventKey:
          $ref: '#/components/schemas/EventKey'
        focusType:
          $ref: '#/components/schemas/InteractionFocusType'
        type:
          type: string
    LlmCalendarEvent.Conference:
      required:
      - type
      type: object
      properties:
        type:
          type: string
        url:
          type:
          - string
          - 'null'
        zoomMeetingId:
          type:
          - string
          - 'null'
    ScoringReason:
      type: string
      enum:
      - CALENDAR_NOT_AVAILABLE
      - CONFLICT_UNAVAILABLE
      - CONFLICT_UNKNOWN
      - CONFLICT_HARD
      - CONFLICT_WARN
      - AVAILABILITY_OUTSIDE_MEETING_HOURS
      - AVAILABILITY_UNKNOWN
      - AVAILABLE
      - AVAILABLE_AUTOMATED
    AttendeeDeclined:
      required:
      - declinedAttendeeEmails
      - event
      - policyId
      - policyType
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        policyType:
          $ref: '#/components/schemas/SchedulePolicyType'
        event:
          $ref: '#/components/schemas/EventKey'
        recurringEventId:
          type:
          - string
          - 'null'
        declinedAttendeeEmails:
          type: array
          items:
            type: string
        relatedFields:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CalendarEventField'
        type:
          type: string
    FindANewTimeAction:
      required:
      - eventKey
      - policyId
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        eventKey:
          $ref: '#/components/schemas/EventKey'
        type:
          type: string
    RsvpEventAction:
      required:
      - eventKey
      - policyId
      - responseStatus
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        eventKey:
          $ref: '#/components/schemas/EventKey'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
        attendeeRsvpNote:
          type:
          - string
          - 'null'
        recurrenceEditType:
          allOf:
          - $ref: '#/components/schemas/RecurrenceEditType'
        type:
          type: string
    BufferEventSettingsView:
      required:
      - idealDuration
      - minDuration
      type: object
      properties:
        idealDuration:
          type: integer
          format: int32
        minDuration:
          type: integer
          format: int32
    BasicEventWarningPolicy:
      required:
      - commonData
      - primaryCalendarOnly
      - warningCondition
      - warningMessage
      type: object
      properties:
        commonData:
          $ref: '#/components/schemas/SchedulePolicyCommonData'
        warningCondition:
          $ref: '#/components/schemas/EventMatcher'
        warningConditionTags:
          allOf:
          - $ref: '#/components/schemas/EventMatcherTags'
        warningMessage:
          type: string
        adherenceMetric:
          allOf:
          - $ref: '#/components/schemas/PolicyAdherenceMetricDescriptor'
        primaryCalendarOnly:
          type: boolean
        type:
          type: string
    AttendeeStringMatcher:
      required:
      - field
      - operator
      - value
      type: object
      properties:
        field:
          $ref: '#/components/schemas/AttendeeStringMatcher.StringField'
        operator:
          $ref: '#/components/schemas/AttendeeStringMatcher.StringOperator'
        value:
          type: string
        type:
          type: string
      description: Matches an attendee's string field using an operator
    AttendeeBooleanMatcher.BooleanField:
      type: string
      enum:
      - SELF
      - OPTIONAL
      - ORGANIZER
      - RESOURCE
    EventDateRange:
      type: object
      discriminator:
        propertyName: type
        mapping:
          FixedDateTimeRange: '#/components/schemas/FixedDateTimeRange'
          AllDayDateRange: '#/components/schemas/AllDayDateRange'
      oneOf:
      - $ref: '#/components/schemas/FixedDateTimeRange'
      - $ref: '#/components/schemas/AllDayDateRange'
    SessionInteractionUpdateDataType:
      type: object
      discriminator:
        propertyName: type
        mapping:
          SchedulePoliciesUpdate: '#/components/schemas/SessionInteractionUpdate.SchedulePolicies'
          BackgroundActionsTakenUpdate: '#/components/schemas/SessionInteractionUpdate.BackgroundActionsTaken'
          CalendarEventsUpdate: '#/components/schemas/SessionInteractionUpdate.CalendarEvents'
          ActionsTakenUpdate: '#/components/schemas/SessionInteractionUpdate.ActionsTaken'
          SessionUpdate: '#/components/schemas/SessionInteractionUpdate.Session'
          GroupedProblemsUpdate: '#/components/schemas/SessionInteractionUpdate.GroupedProblems'
          ScheduleProblemsUpdate: '#/components/schemas/SessionInteractionUpdate.ScheduleProblems'
      oneOf:
      - $ref: '#/components/schemas/SessionInteractionUpdate.Session'
      - $ref: '#/components/schemas/SessionInteractionUpdate.CalendarEvents'
      - $ref: '#/components/schemas/SessionInteractionUpdate.SchedulePolicies'
      - $ref: '#/components/schemas/SessionInteractionUpdate.ScheduleProblems'
      - $ref: '#/components/schemas/SessionInteractionUpdate.GroupedProblems'
      - $ref: '#/components/schemas/SessionInteractionUpdate.ActionsTaken'
      - $ref: '#/components/schemas/SessionInteractionUpdate.BackgroundActionsTaken'
    EventCategoryEventMatcher:
      required:
      - operator
      - predicateValue
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/EventMatcherOperator'
        predicateValue:
          $ref: '#/components/schemas/EventCategory'
        type:
          type: string
      description: Matches by event category
    GtdLinearTask:
      required:
      - completed
      - id
      - priority
      - title
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        priority:
          $ref: '#/components/schemas/PriorityLevel'
        status:
          type:
          - string
          - 'null'
        link:
          allOf:
          - $ref: '#/components/schemas/GtdTaskLink'
        due:
          type:
          - string
          - 'null'
          format: date-time
        start:
          type:
          - string
          - 'null'
          format: date-time
        completed:
          type: boolean
        estimateMinutes:
          type:
          - integer
          - 'null'
          format: int32
        labels:
          type:
          - array
          - 'null'
          items:
            type: string
        team:
          type:
          - string
          - 'null'
        projectName:
          type:
          - string
          - 'null'
        cycleNumber:
          type:
          - integer
          - 'null'
          format: int32
        cycleStart:
          type:
          - string
          - 'null'
        cycleEnd:
          type:
          - string
          - 'null'
        state:
          type:
          - string
          - 'null'
        creator:
          type:
          - string
          - 'null'
        assignee:
          type:
          - string
          - 'null'
        possibleStatuses:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/LinearState'
        type:
          type: string
    AddFocusEventAction:
      required:
      - end
      - eventKey
      - policyId
      - start
      - title
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        eventKey:
          $ref: '#/components/schemas/EventKey'
        title:
          type: string
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        description:
          type:
          - string
          - 'null'
        visibility:
          allOf:
          - $ref: '#/components/schemas/Visibility'
        transparency:
          allOf:
          - $ref: '#/components/schemas/Transparency'
        reminders:
          allOf:
          - $ref: '#/components/schemas/Reminders'
        autoDeclineMode:
          allOf:
          - $ref: '#/components/schemas/AutoDeclineModeView'
        autoDeclineMessage:
          type:
          - string
          - 'null'
        eventCategory:
          allOf:
          - $ref: '#/components/schemas/EventCategory'
        eventColor:
          allOf:
          - $ref: '#/components/schemas/EntryColor'
        type:
          type: string
    SessionInteractionUpdate.ScheduleProblems:
      required:
      - llmProblemCount
      - problems
      type: object
      properties:
        problems:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleProblemWithActions'
        llmProblemCount:
          type: integer
          format: int32
        type:
          type: string
    NotionTaskGroup:
      type: string
      enum:
      - To-do
      - In progress
      - Complete
    GtdGoogleTasksTaskForCreate:
      required:
      - sourceType
      - title
      type: object
      properties:
        sourceType:
          $ref: '#/components/schemas/GtdTaskId.TaskSourceType'
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        due:
          type:
          - string
          - 'null'
          format: date-time
        start:
          type:
          - string
          - 'null'
          format: date-time
        priority:
          allOf:
          - $ref: '#/components/schemas/PriorityLevel'
        estimateMinutes:
          type:
          - integer
          - 'null'
          format: int32
        listId:
          type:
          - string
          - 'null'
        parentTaskId:
          type:
          - string
          - 'null'
        type:
          type: string
    ShieldsUpThresholdType:
      type: string
      enum:
      - WEEK
      - DAY
      - WEEK_AND_DAY
    JiraStatusCategory:
      type: string
      enum:
      - NEW
      - INDETERMINATE
      - DONE
      x-type: String
    TimeOfDayEventMatcher.TimeField:
      type: string
      enum:
      - START
      - END
    DayHours:
      required:
      - intervals
      type: object
      properties:
        intervals:
          type: array
          items:
            $ref: '#/components/schemas/LocalTimeInterval'
        startOfDay:
          type:
          - string
          - 'null'
          format: partial-time
        endOfDay:
          type:
          - string
          - 'null'
          format: partial-time
    GtdJiraTaskForCreate:
      required:
      - sourceType
      - title
      type: object
      properties:
        sourceType:
          $ref: '#/components/schemas/GtdTaskId.TaskSourceType'
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        due:
          type:
          - string
          - 'null'
          format: date-time
        start:
          type:
          - string
          - 'null'
          format: date-time
        priority:
          allOf:
          - $ref: '#/components/schemas/PriorityLevel'
        estimateMinutes:
          type:
          - integer
          - 'null'
          format: int32
        projectKey:
          type:
          - string
          - 'null'
        issueTypeId:
          type:
          - string
          - 'null'
        labels:
          type:
          - array
          - 'null'
          items:
            type: string
        assigneeId:
          type:
          - string
          - 'null'
        parentKey:
          type:
          - string
       

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