Reclaim.ai moment API

The moment API from Reclaim.ai — 2 operation(s) for moment.

OpenAPI Specification

reclaim-ai-moment-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Reclaim account-time-schemes moment 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'
tags:
- name: moment
paths:
  /api/moment:
    get:
      tags:
      - moment
      operationId: get_3
      responses:
        '200':
          description: get_3 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Moment'
      security:
      - Authorization: []
  /api/moment/next:
    get:
      tags:
      - moment
      operationId: next
      responses:
        '200':
          description: next 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Moment'
      security:
      - Authorization: []
components:
  schemas:
    AssistStatus:
      type: string
      enum:
      - CONTROLLED
      - RELEASED
      - ARCHIVED
    EventAttendee:
      required:
      - email
      type: object
      properties:
        email:
          type: string
        self:
          type: boolean
          nullable: true
        displayName:
          type: string
          nullable: true
        responseStatus:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ResponseStatus'
        comment:
          type: string
          nullable: true
        optional:
          type: boolean
          nullable: true
        additionalGuests:
          type: integer
          format: int32
          nullable: true
        organizer:
          type: boolean
          nullable: true
        resource:
          type: boolean
          nullable: true
    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
    Moment:
      required:
      - additionalEvents
      - now
      type: object
      properties:
        event:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Event'
        additionalEvents:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        now:
          type: string
          format: date-time
      description: 'Reflects what the current moment of time is for a user. Payload includes the "primary" active event (or none, if nothing is active) as well as any additional events that might also be in flight but are deemed by Reclaim as secondary/less important. Additionally, if the active event is a Reclaim-managed assignment (ex: task, habit, smart 1:1), it is also included in the payload. When there are multiple active events, the logic for what is considered "primary" vs "secondary" is an internal implementation, but generally speaking it should match the same logic that the Slack integration uses for determining which status to display when there are overlaps.'
    GoogleCalendarEventMetadata:
      required:
      - guestsCanInviteOthers
      - guestsCanModify
      - guestsCanSeeOtherGuests
      type: object
      properties:
        guestsCanModify:
          type: boolean
        guestsCanInviteOthers:
          type: boolean
        guestsCanSeeOtherGuests:
          type: boolean
    EventKey:
      required:
      - calendarId
      - eventId
      type: object
      properties:
        eventId:
          type: string
        calendarId:
          type: integer
          format: int64
    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
    MergeDetails:
      required:
      - key
      - sourceCalendarId
      - sourceReclaimCalendarId
      - type
      type: object
      properties:
        key:
          type: string
        type:
          $ref: '#/components/schemas/MergeDetails.EventType'
        sourceCalendarId:
          type: string
          nullable: true
        sourceReclaimCalendarId:
          type: integer
          format: int64
          nullable: true
    EventResponseStatus:
      type: string
      enum:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
      x-enum-varnames:
      - None
      - Organizer
      - Accepted
      - Declined
      - TentativelyAccepted
      - NotResponded
    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.
          nullable: true
          allOf:
          - $ref: '#/components/schemas/GoogleCalendarEventMetadata'
        schedulingLinkId:
          type: string
          nullable: true
        schedulingLinkMeetingId:
          type: string
          nullable: true
        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:
          nullable: true
          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
          nullable: true
        smartSeriesId:
          type: integer
          format: int64
          nullable: true
        sourceEventType:
          $ref: '#/components/schemas/PlatformEventType'
        version:
          type: string
        manuallyStarted:
          type: boolean
        inheritedExternalId:
          type: string
          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).'
          nullable: true
    EventColor:
      type: string
      enum:
      - NONE
      - LAVENDER
      - SAGE
      - GRAPE
      - FLAMINGO
      - BANANA
      - TANGERINE
      - PEACOCK
      - GRAPHITE
      - BLUEBERRY
      - BASIL
      - TOMATO
    PrioritySource:
      type: string
      enum:
      - MANUAL
      - AI
      - RULES
    Colorized:
      type: object
      properties:
        color:
          $ref: '#/components/schemas/EventColor'
    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
          description: The source event id for a travel assist event.
          nullable: true
        conferenceEventId:
          type: string
          description: The source event id for a conference (decompression time) event.
          nullable: true
        lastControlledUpdate:
          type: string
          format: date-time
        lastControlledHash:
          type: integer
          format: int32
        defended:
          type: boolean
        pinned:
          type: boolean
        lockState:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/LockState'
        dailyHabitId:
          type: integer
          format: int64
          nullable: true
        seriesLineageId:
          type: integer
          format: int64
          nullable: true
        seriesId:
          type: integer
          format: int64
          nullable: true
        taskId:
          type: integer
          format: int64
          nullable: true
        taskIndex:
          type: integer
          format: int32
          nullable: true
        policyOverride:
          nullable: true
          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
          format: int64
          nullable: true
        assistReferenceValid:
          type: boolean
      description: This entity maps to the assist_events table.
    EventCategory:
      $ref: '#/components/schemas/Colorized'
    EventStatus:
      type: string
      enum:
      - PUBLISHED
      - CANCELLED
    EventType:
      type: string
      enum:
      - MEETING
      - WORK
      - LOGISTICS
      - PERSONAL
    RecurringAssignmentType:
      type: string
      enum:
      - ONE_ON_ONE
      - DAILY_HABIT
      - TASK
    LockState:
      type: string
      enum:
      - MANUALLY_LOCKED
      - ADJUSTED
      - UPCOMING_WINDOW
      - MANUALLY_UNLOCKED
      - DELETED
      - DECLINED
      - IN_THE_PAST
    ResponseStatus:
      type: string
      enum:
      - DECLINED
      - NEEDS_ACTION
      - TENTATIVE
      - ACCEPTED
      - UNKNOWN
    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
    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
    MergeDetails.EventType:
      type: string
      enum:
      - ORGANIZER_EVENT
      - ATTENDEE_EVENT
      - SYNC_EVENT
    PlatformEventType:
      type: string
      enum:
      - DEFAULT
      - OUT_OF_OFFICE
      - FROM_MAIL
      - WORKING_LOCATION
      - FOCUS_TIME
      - BIRTHDAY
    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
    AssistType:
      type: string
      enum:
      - TASK
      - CUSTOM_DAILY
      - CATCHUP_AM
      - CATCHUP_PM
      - LUNCH
      - FOCUS
      - TRAVEL_PRE
      - TRAVEL_POST
      - CONBUF
      - SMART_HABIT
      - SMART_MEETING
      - RECLAIM_FOCUS
    PriorityLevel:
      type: string
      enum:
      - P1
      - P2
      - P3
      - P4
      - PRIORITIZE
      - DEFAULT
      x-deprecated:
      - PRIORITIZE
      - DEFAULT
  securitySchemes:
    Authorization:
      type: oauth2