Reclaim.ai focus-planner-actions API

The focus-planner-actions API from Reclaim.ai — 4 operation(s) for focus-planner-actions.

Operations 4

POST /api/focus/planner/{calendarId}/{eventId}/lock #
POST /api/focus/planner/{calendarId}/{eventId}/move #
POST /api/focus/planner/{calendarId}/{eventId}/reschedule #
POST /api/focus/planner/{calendarId}/{eventId}/unlock #

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-focus-planner-actions-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-focus-planner-actions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reclaim account-time-schemes Focus Planner Actions 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: focus-planner-actions
paths:
  /api/focus/planner/{calendarId}/{eventId}/lock:
    post:
      tags:
      - focus-planner-actions
      operationId: lockFocusInstance
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: lockFocusInstance 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FocusPlannerActionResult'
      security:
      - Authorization: []
  /api/focus/planner/{calendarId}/{eventId}/move:
    post:
      tags:
      - focus-planner-actions
      operationId: moveFocusInstance
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - 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: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: moveFocusInstance 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FocusPlannerActionResult'
      security:
      - Authorization: []
  /api/focus/planner/{calendarId}/{eventId}/reschedule:
    post:
      tags:
      - focus-planner-actions
      operationId: rescheduleFocusInstance
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: snoozeOption
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/SnoozeOption'
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: rescheduleFocusInstance 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FocusPlannerActionResult'
      security:
      - Authorization: []
  /api/focus/planner/{calendarId}/{eventId}/unlock:
    post:
      tags:
      - focus-planner-actions
      operationId: unlockFocusInstance
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: string
      - name: notificationKey
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: unlockFocusInstance 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FocusPlannerActionResult'
      security:
      - Authorization: []
components:
  schemas:
    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
    UserFocusSettingsView:
      required:
      - autoDecline
      - description
      - enabled
      - focusType
      - id
      - status
      - timeSchemeId
      - title
      - visibility
      type: object
      properties:
        id:
          type: integer
          format: int64
        title:
          type: string
        description:
          type: string
        focusType:
          $ref: '#/components/schemas/FocusType'
        focusTimeSettings:
          allOf:
          - $ref: '#/components/schemas/FocusTimeSettingsView'
        enabled:
          type: boolean
        timeSchemeId:
          type: string
        status:
          $ref: '#/components/schemas/UserFocusSettingsStatus'
        autoDecline:
          type: boolean
        autoDeclineText:
          type:
          - string
          - 'null'
        calendarId:
          type:
          - integer
          - 'null'
          format: int64
        visibility:
          $ref: '#/components/schemas/FocusVisibility'
    EventResponseStatus:
      type: string
      enum:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
      x-enum-varnames:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
    EventColor:
      type: string
      enum:
      - NONE
      - LAVENDER
      - SAGE
      - GRAPE
      - FLAMINGO
      - BANANA
      - TANGERINE
      - PEACOCK
      - GRAPHITE
      - BLUEBERRY
      - BASIL
      - TOMATO
    CircuitBreakerView:
      required:
      - availableChunksInDayThreshold
      - availableChunksInWeekThreshold
      - type
      type: object
      properties:
        availableChunksInWeekThreshold:
          type: integer
          format: int32
        availableChunksInDayThreshold:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/FocusTimeCircuitBreakerType'
        minDurationChunks:
          type:
          - integer
          - 'null'
          format: int32
    Colorized:
      type: object
      properties:
        color:
          $ref: '#/components/schemas/EventColor'
    MergeDetails.EventType:
      type: string
      enum:
      - ORGANIZER_EVENT
      - ATTENDEE_EVENT
      - SYNC_EVENT
    PriorityLevel:
      type: string
      enum:
      - P1
      - P2
      - P3
      - P4
      - PRIORITIZE
      - DEFAULT
      x-deprecated:
      - PRIORITIZE
      - DEFAULT
    MeetingType:
      type: string
      enum:
      - DIRECT_11
      - PEER_11
      - SKIP_11
      - XFUNC_11
      - OTHER_11
      - TEAM
      - XFUNC_TEAM
      - EXEC
      - SKIP_TEAM
      - ALL_HANDS
      - ONBOARDING_TRAINING
      - COMPANY_EVENT
      - BOARD_MEETING
      - OTHER_STAFF
      - DEAL_REVIEW
      - EXECUTION_REVIEW
      - DEMO
      - PLANNING_MEETING
      - RETRO
      - EMERGENCY
      - PEOPLE_REVIEW
      - OTHER_OP
      - ROADMAP
      - CUST_MEETING
      - CUST_RESEARCH
      - CUST_URGENT
      - RECRUIT_SCREEN
      - OTHER_EXTERNAL
      - DESIGN_BRAIN
      - TECH_REVIEW
      - KICKOFF
      - REQ_BRAIN
      - OTHER_IDEATION
      - UNKNOWN
    FocusTimeSchedulingType:
      type: string
      deprecated: true
      enum:
      - BALLOON_FILL
      - BALLOON_FILL_MAXIMIZE_DURATIONS
      - CIRCUIT_BREAKER_WEEK_LEVEL
      - CIRCUIT_BREAKER_DAY_LEVEL
      - CIRCUIT_BREAKER_WEEK_AND_DAY_LEVEL
    UserFocusSettingsStatus:
      type: string
      enum:
      - ACTIVE
      - DISABLED
      - CALENDAR_NOT_FOUND
      - CALENDAR_NOT_VALID
      - CALENDAR_NOT_CONNECTED
      - CALENDAR_NOT_WRITABLE
      - INACTIVE_MULTI_CONNECTED_CALENDAR
    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.
    EventCategory:
      $ref: '#/components/schemas/Colorized'
    EventType:
      type: string
      enum:
      - MEETING
      - WORK
      - LOGISTICS
      - PERSONAL
    PrioritySource:
      type: string
      enum:
      - MANUAL
      - AI
      - RULES
    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'
    FocusVisibility:
      type: string
      enum:
      - DEFAULT
      - PRIVATE
      - PUBLIC
    FocusTimeCircuitBreakerType:
      type: string
      enum:
      - WEEK
      - DAY
      - WEEK_AND_DAY
    EventStatus:
      type: string
      enum:
      - PUBLISHED
      - CANCELLED
    EventKey:
      required:
      - calendarId
      - eventId
      type: object
      properties:
        eventId:
          type: string
        calendarId:
          type: integer
          format: int64
    Event:
      required:
      - allocatedTimeChunks
      - assist
      - calendarId
      - categoryOverride
      - description
      - etag
      - eventEnd
      - eventId
      - eventStart
      - key
      - location
      - meetingType
      - organizer
      - priority
      - recurrence
      - recurrenceMax
      - recurringEventId
      - requiresTravel
      - rsvpStatus
      - sourceDetails
      - status
      - subType
      - timeChunks
      - title
      - titleSeenByOthers
      - type
      - updated
      type: object
      properties:
        googleMetadata:
          description: Returns Google Calendar-specific metadata that doesn't fit into a common event model, but that services and UI might be interested in introspecting. If the event isn't a Google Calendar event, this method will return an empty value.
          allOf:
          - $ref: '#/components/schemas/GoogleCalendarEventMetadata'
        schedulingLinkId:
          type:
          - string
          - 'null'
        schedulingLinkMeetingId:
          type:
          - string
          - 'null'
        underAssistControl:
          type: boolean
        assist:
          $ref: '#/components/schemas/AssistDetails'
        reclaimEventType:
          $ref: '#/components/schemas/ReclaimEventType'
        personalSync:
          type: boolean
        reclaimManaged:
          type: boolean
          description: Reclaim likely created and manages this event but important to note that this event might not be organized by this user so very important to check also [isReclaimManagedAndSelfOrganized](#isReclaimManagedAndSelfOrganized) if the calling class would do something different for a Reclaim managed event if the person attached to this event is an attendee, rather than the organizer.
        reclaimManagedAndSelfOrganized:
          type: boolean
          description: Important to note that there are Reclaim "managed" events like smart meetings and scheduling link events where the user associated with the event is *not* the organizer, and as a result, we may need to do things like color coding or scoring.
        eventId:
          type: string
        calendarId:
          type: integer
          format: int64
        key:
          $ref: '#/components/schemas/EventKey'
        priority:
          $ref: '#/components/schemas/PriorityLevel'
        prioritySource:
          allOf:
          - $ref: '#/components/schemas/PrioritySource'
        title:
          type: string
        titleSeenByOthers:
          type: string
        location:
          type: string
        onlineMeetingUrlRaw:
          type: string
        onlineMeetingUrl:
          type: string
        description:
          type: string
        descriptionOmitted:
          type: boolean
        titleTruncated:
          type: boolean
        sourceDetails:
          $ref: '#/components/schemas/EventSourceDetails'
        mergeDetails:
          $ref: '#/components/schemas/MergeDetails'
        status:
          $ref: '#/components/schemas/EventStatus'
        published:
          type: boolean
        type:
          $ref: '#/components/schemas/EventType'
        subType:
          $ref: '#/components/schemas/EventSubType'
        meetingType:
          $ref: '#/components/schemas/MeetingType'
        categoryOverride:
          $ref: '#/components/schemas/EventCategory'
        eventStart:
          type: string
          format: date-time
        eventEnd:
          type: string
          format: date-time
        timeChunks:
          type: integer
          format: int32
        allocatedTimeChunks:
          type: integer
          format: int32
        recurringEventId:
          type: string
        updated:
          type: string
          format: date-time
        recurringException:
          type: boolean
        recurrence:
          type: string
        recurrenceMax:
          type: string
          format: date-time
        recurring:
          type: boolean
        recurringInstance:
          type: boolean
        private:
          type: boolean
        public:
          type: boolean
        color:
          $ref: '#/components/schemas/EventColor'
        organizer:
          type: string
        numAttendees:
          type: integer
          format: int32
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/EventAttendee'
        free:
          type: boolean
        category:
          $ref: '#/components/schemas/EventCategory'
        rsvpStatus:
          $ref: '#/components/schemas/EventResponseStatus'
        requiresTravel:
          type: boolean
        conferenceCall:
          type: boolean
        etag:
          type:
          - string
          - 'null'
        smartSeriesId:
          type:
          - integer
          - 'null'
          format: int64
        sourceEventType:
          $ref: '#/components/schemas/PlatformEventType'
        version:
          type: string
        manuallyStarted:
          type: boolean
        inheritedExternalId:
          type:
          - string
          - 'null'
          description: 'Retrieves the inherited external ID for the event. The inherited external ID is used in scenarios where a non-pipeline user is invited to an event created by Reclaim on a pipeline user''s Microsoft calendar.


            In such cases, the inherited external ID represents the "external-id" of the organizer''s event,

            which is crucial for supporting event ID parsing. This mechanism ensures compatibility with Reclaim''s

            existing logic for detecting and parsing event information, even when the event ID cannot be directly

            relied upon (e.g., in Microsoft calendars).'
    AssistStatus:
      type: string
      enum:
      - CONTROLLED
      - RELEASED
      - ARCHIVED
    ResponseStatus:
      type: string
      enum:
      - DECLINED
      - NEEDS_ACTION
      - TENTATIVE
      - ACCEPTED
      - UNKNOWN
    FocusType:
      type: string
      enum:
      - FOCUS_TIME
    GoogleCalendarEventMetadata:
      required:
      - guestsCanInviteOthers
      - guestsCanModify
      - guestsCanSeeOtherGuests
      type: object
      properties:
        guestsCanModify:
          type: boolean
        guestsCanInviteOthers:
          type: boolean
        guestsCanSeeOtherGuests:
          type: boolean
    BalloonFillView:
      required:
      - targetChunksPerWeek
      - type
      type: object
      properties:
        targetChunksPerWeek:
          type: integer
          format: int32
        idealChunksPerDay:
          type:
          - integer
          - 'null'
          format: int32
        maxChunksPerDay:
          type:
          - integer
          - 'null'
          format: int32
        minDurationChunks:
          type:
          - integer
          - 'null'
          format: int32
        maxDurationChunks:
          type:
          - integer
          - 'null'
          format: int32
        type:
          $ref: '#/components/schemas/FocusTimeBalloonFillType'
    MergeDetails:
      required:
      - key
      - sourceCalendarId
      - sourceReclaimCalendarId
      - type
      type: object
      properties:
        key:
          type: string
        type:
          $ref: '#/components/schemas/MergeDetails.EventType'
        sourceCalendarId:
          type:
          - string
          - 'null'
        sourceReclaimCalendarId:
          type:
          - integer
          - 'null'
          format: int64
    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
    RecurringAssignmentType:
      type: string
      enum:
      - ONE_ON_ONE
      - DAILY_HABIT
      - TASK
    EventSourceDetails:
      required:
      - base64Id
      - calendarId
      - description
      - etag
      - eventId
      - eventKey
      - title
      - url
      - writable
      type: object
      properties:
        writable:
          type: boolean
        calendarId:
          type: integer
          format: int64
        eventId:
          type: string
        etag:
          type: string
        eventKey:
          $ref: '#/components/schemas/EventKey'
        base64Id:
          type: string
        url:
          type: string
        title:
          type: string
        description:
          type: string
    FocusTimeSchedulingTypeV2:
      type: string
      enum:
      - BALLOON_FILL
      - CIRCUIT_BREAKER
    FocusPlannerActionResult:
      required:
      - events
      - focusSettings
      - userInfoMessage
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        focusSettings:
          $ref: '#/components/schemas/UserFocusSettingsView'
        userInfoMessage:
          type: string
    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
    LockState:
      type: string
      enum:
      - MANUALLY_LOCKED
      - ADJUSTED
      - UPCOMING_WINDOW
      - MANUALLY_UNLOCKED
      - DELETED
      - DECLINED
      - IN_THE_PAST
    AssistType:
      type: string
      enum:
      - TASK
      - CUSTOM_DAILY
      - CATCHUP_AM
      - CATCHUP_PM
      - LUNCH
      - FOCUS
      - TRAVEL_PRE
      - TRAVEL_POST
      - CONBUF
      - SMART_HABIT
      - SMART_MEETING
      - RECLAIM_FOCUS
    FocusTimeBalloonFillType:
      type: string
      enum:
      - BALLOON_FILL_NORMAL
      - BALLOON_FILL_MAXIMIZE_DURATIONS
    PlatformEventType:
      type: string
      enum:
      - DEFAULT
      - OUT_OF_OFFICE
      - FROM_MAIL
      - WORKING_LOCATION
      - FOCUS_TIME
      - BIRTHDAY
    FocusTimeSettingsView:
      required:
      - schedulingType
      - schedulingTypeV2
      type: object
      properties:
        schedulingType:
          $ref: '#/components/schemas/FocusTimeSchedulingType'
        schedulingTypeV2:
          $ref: '#/components/schemas/FocusTimeSchedulingTypeV2'
        balloonFill:
          allOf:
          - $ref: '#/components/schemas/BalloonFillView'
        circuitBreaker:
          allOf:
          - $ref: '#/components/schemas/CircuitBreakerView'
    SnoozeOption:
      type: string
      enum:
      - FROM_NOW_15M
      - FROM_NOW_30M
      - FROM_NOW_1H
      - FROM_NOW_2H
      - FROM_NOW_4H
      - TOMORROW
      - IN_TWO_DAYS
      - NEXT_WEEK
  securitySchemes:
    Authorization:
      type: oauth2