Reclaim.ai schedule-availability API

The schedule-availability API from Reclaim.ai — 4 operation(s) for schedule-availability.

OpenAPI Specification

reclaim-ai-schedule-availability-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Reclaim account-time-schemes schedule-availability 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: schedule-availability
paths:
  /api/availability/enable-redis-cache:
    post:
      tags:
      - schedule-availability
      operationId: enableRedisCache
      parameters:
      - name: value
        in: query
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: enableRedisCache 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /api/availability/ideal-time-availability:
    post:
      tags:
      - schedule-availability
      operationId: idealTimeAvailability
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionAwareIdealTimeAvailabilityRequest'
        required: true
      responses:
        '200':
          description: idealTimeAvailability 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdealTimeAvailabilityView'
      security:
      - Authorization: []
  /api/availability/suggested-times:
    post:
      tags:
      - schedule-availability
      operationId: suggestedTimes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestedTimesRequest'
        required: true
      responses:
        '200':
          description: suggestedTimes 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestedTimesView'
      security:
      - Authorization: []
  /api/availability/warm-cache:
    post:
      tags:
      - schedule-availability
      operationId: warmCache
      responses:
        '200':
          description: warmCache 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
components:
  schemas:
    SessionAwareIdealTimeAvailabilityRequest:
      required:
      - attendees
      - scheduleWindow
      type: object
      properties:
        attendees:
          type: array
          items:
            type: string
        scheduleWindow:
          $ref: '#/components/schemas/ScheduleWindowWithTimeRequest'
        calendarId:
          type: integer
          format: int64
          nullable: true
        eventReference:
          type: string
          nullable: true
        sessionScope:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/InteractionSessionScopeRequest'
    ScoringReason:
      type: string
      enum:
      - CALENDAR_NOT_AVAILABLE
      - CONFLICT_UNAVAILABLE
      - CONFLICT_UNKNOWN
      - CONFLICT_HARD
      - CONFLICT_WARN
      - AVAILABILITY_OUTSIDE_MEETING_HOURS
      - AVAILABILITY_UNKNOWN
      - AVAILABLE
      - AVAILABLE_AUTOMATED
    SingleInteractionScopeRequest:
      type: object
    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
    PlannerSandboxScopeRequest:
      required:
      - userId
      type: object
      properties:
        userId:
          type: string
        type:
          type: string
    IdealTimeSlotDetailsView:
      type: object
      properties:
        title:
          type: string
          nullable: true
        start:
          type: string
          format: date-time
          nullable: true
        end:
          type: string
          format: date-time
          nullable: true
        eventSubType:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/EventSubType'
        reclaimEventType:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ReclaimEventType'
    PlannerViewScopeRequest:
      required:
      - userId
      - viewId
      type: object
      properties:
        userId:
          type: string
        viewId:
          type: string
        type:
          type: string
    SuggestedTimeView:
      required:
      - availabilityInfo
      - end
      - start
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        availabilityInfo:
          $ref: '#/components/schemas/SlotAvailability'
    IdealTimeNextAvailabilityView:
      required:
      - end
      - movabilityScore
      - start
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        movabilityScore:
          type: integer
          format: int32
    AttendeeCalendarVisibility:
      type: string
      enum:
      - NONE
      - FREE_BUSY
      - DETAILS
      - FULL
      - RECLAIM
    ScheduleWindowWithTimeRequest:
      required:
      - end
      - start
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
    AttendeeAvailabilityView:
      required:
      - externalCalendarId
      - freeBusy
      - movabilityScore
      - reason
      - timezone
      - visibility
      type: object
      properties:
        externalCalendarId:
          type: string
        visibility:
          $ref: '#/components/schemas/AttendeeCalendarVisibility'
        timezone:
          type: string
        freeBusy:
          $ref: '#/components/schemas/FreeBusy'
        movabilityScore:
          type: integer
          format: int32
        reason:
          $ref: '#/components/schemas/ScoringReason'
        title:
          type: string
          nullable: true
        eventType:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/EventSubType'
        reclaimEventType:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ReclaimEventType'
        isOrganizer:
          type: boolean
          nullable: true
        isRecurring:
          type: boolean
          nullable: true
        hasVip:
          type: boolean
          nullable: true
        participantCount:
          type: integer
          format: int32
          nullable: true
        priority:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/PriorityLevel'
    IdealTimeAvailabilityDetailsView:
      required:
      - externalCalendarId
      - freeBusy
      - movabilityScore
      - scoringReason
      - timezone
      - visibility
      type: object
      properties:
        externalCalendarId:
          type: string
        visibility:
          $ref: '#/components/schemas/AttendeeCalendarVisibility'
        timezone:
          type: string
        freeBusy:
          $ref: '#/components/schemas/FreeBusy'
        movabilityScore:
          type: integer
          format: int32
        scoringReason:
          $ref: '#/components/schemas/ScoringReason'
        nextAvailability:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/IdealTimeNextAvailabilityView'
        slotDetails:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/IdealTimeSlotDetailsView'
    FreeBusy:
      type: string
      enum:
      - FREE
      - BUSY
    InteractionSessionScopeRequest:
      type: object
      discriminator:
        propertyName: type
        mapping:
          PlannerSandboxScopeRequest: '#/components/schemas/PlannerSandboxScopeRequest'
          SingleInteractionScopeRequest: '#/components/schemas/SingleInteractionScopeRequest'
          PlannerViewScopeRequest: '#/components/schemas/PlannerViewScopeRequest'
          ChatScopeRequest: '#/components/schemas/ChatScopeRequest'
      oneOf:
      - $ref: '#/components/schemas/PlannerSandboxScopeRequest'
      - $ref: '#/components/schemas/PlannerViewScopeRequest'
      - $ref: '#/components/schemas/SingleInteractionScopeRequest'
      - $ref: '#/components/schemas/ChatScopeRequest'
    ChatScopeRequest:
      required:
      - chatId
      - sandboxIncluded
      type: object
      properties:
        chatId:
          type: string
        sandboxIncluded:
          type: boolean
        type:
          type: string
    ScheduleWindow:
      required:
      - end
      - start
      type: object
      properties:
        start:
          type: string
          format: date
        end:
          type: string
          format: date
    SuggestedTimesView:
      required:
      - suggestedTimes
      type: object
      properties:
        suggestedTimes:
          type: array
          items:
            $ref: '#/components/schemas/SuggestedTimeView'
    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
    AvailabilitySortType:
      type: string
      enum:
      - HIGHEST_SCORE
      - EARLIEST
      - HIGHEST_SCORE_THEN_EARLIEST
      - IDEAL_SLOT
    SlotAvailability:
      required:
      - attendees
      - movabilityScore
      type: object
      properties:
        movabilityScore:
          type: integer
          format: int32
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/AttendeeAvailabilityView'
    IdealTimeAvailabilityView:
      required:
      - attendees
      type: object
      properties:
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/IdealTimeAvailabilityDetailsView'
    PriorityLevel:
      type: string
      enum:
      - P1
      - P2
      - P3
      - P4
      - PRIORITIZE
      - DEFAULT
      x-deprecated:
      - PRIORITIZE
      - DEFAULT
    SuggestedTimesRequest:
      required:
      - attendees
      - durationMinutes
      type: object
      properties:
        attendees:
          type: array
          items:
            type: string
        durationMinutes:
          type: integer
          format: int32
        idealTime:
          type: string
          format: date-time
          nullable: true
        limit:
          type: integer
          format: int32
          nullable: true
        sorting:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/AvailabilitySortType'
        scheduleWindow:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ScheduleWindow'
        calendarId:
          type: integer
          format: int64
          nullable: true
  securitySchemes:
    Authorization:
      type: oauth2