Reclaim.ai clockwise API

The clockwise API from Reclaim.ai — 6 operation(s) for clockwise.

OpenAPI Specification

reclaim-ai-clockwise-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Reclaim account-time-schemes clockwise 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: clockwise
paths:
  /api/clockwise/cleanup-events:
    delete:
      tags:
      - clockwise
      operationId: cleanupClockwiseEvents
      responses:
        '200':
          description: cleanupClockwiseEvents 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClockwiseEventCleanupService.CleanupResult'
      security:
      - Authorization: []
  /api/clockwise/clear-suppression:
    post:
      tags:
      - clockwise
      operationId: clearSchedulerSuppression
      responses:
        '200':
          description: clearSchedulerSuppression 200 response
          content:
            application/json:
              schema:
                type: object
      security:
      - Authorization: []
  /api/clockwise/detect-events:
    get:
      tags:
      - clockwise
      operationId: detectClockwiseEvents
      responses:
        '200':
          description: detectClockwiseEvents 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClockwiseEventCleanupService.DetectionResult'
      security:
      - Authorization: []
  /api/clockwise/import:
    post:
      tags:
      - clockwise
      operationId: importClockwiseData
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        '200':
          description: importClockwiseData 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClockwiseImportDto'
      security:
      - Authorization: []
  /api/clockwise/import/{jobId}:
    get:
      tags:
      - clockwise
      operationId: getImportJobStatus
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: getImportJobStatus 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClockwiseImportDto'
      security:
      - Authorization: []
  /api/clockwise/import/{jobId}/retry:
    post:
      tags:
      - clockwise
      operationId: retryImport
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: retryImport 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClockwiseImportDto'
      security:
      - Authorization: []
components:
  schemas:
    ClockwiseImportRequest.SchedulingLinks:
      type: object
      properties:
        totalCount:
          type: integer
          format: int32
          nullable: true
        links:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.SchedulingLink'
    ClockwiseImportRequest.NoMeetingDay:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        dayOfWeek:
          type: string
          nullable: true
        enableReminders:
          type: boolean
          nullable: true
    ClockwiseImportRequest.PreferredWork:
      type: object
      properties:
        keepStartOfDayOpen:
          type: boolean
          nullable: true
        keepEndOfDayOpen:
          type: boolean
          nullable: true
    ClockwiseImportDto:
      required:
      - currentStep
      - jobId
      - status
      - totalSteps
      type: object
      properties:
        jobId:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/ClockwiseImportStatus'
        currentStep:
          type: integer
          format: int32
        totalSteps:
          type: integer
          format: int32
        stepLabel:
          type: string
          nullable: true
        result:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportResponse'
        errorMessage:
          type: string
          nullable: true
    ClockwiseImportRequest.SlotSetting:
      type: object
      properties:
        minSlot:
          type: string
          nullable: true
        maxSlot:
          type: string
          nullable: true
        excludedSlots:
          type: array
          nullable: true
          items:
            type: string
    ClockwiseImportRequest.CustomTimeRange:
      type: object
      properties:
        startTime:
          type: string
          nullable: true
        endTime:
          type: string
          nullable: true
    ClockwiseImportRequest.TravelTime:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        workAddress:
          type: string
          nullable: true
        externalTransparency:
          type: string
          nullable: true
        enableReminders:
          type: boolean
          nullable: true
    ClockwiseImportRequest.MeetingRelief:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        meetingFatigueThresholdMinutes:
          type: integer
          format: int32
          nullable: true
        meetingReliefBreakMinutes:
          type: integer
          format: int32
          nullable: true
        externalTransparency:
          type: string
          nullable: true
        enableReminders:
          type: boolean
          nullable: true
    ClockwiseImportRequest.ColorCoding:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        external:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        oneOnOne:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        focusTime:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        hold:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        holiday:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        teamSync:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        adHoc:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        outOfOffice:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        fyi:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        task:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
        other:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorEntry'
    ClockwiseImportRequest.FlexibleMeeting:
      type: object
      properties:
        calendarId:
          type: string
          nullable: true
        eventId:
          type: string
          nullable: true
        start:
          type: string
          nullable: true
        end:
          type: string
          nullable: true
    ClockwiseImportRequest.TimeSlotRange:
      type: object
      properties:
        min:
          type: string
          nullable: true
        max:
          type: string
          nullable: true
    ClockwiseImportRequest.MeetingHours:
      type: object
      properties:
        differentFromWorkingHours:
          type: boolean
          nullable: true
        timeZone:
          type: string
          nullable: true
        daySettings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.DaySetting'
    ClockwiseImportRequest.Preferences:
      type: object
      properties:
        focusTime:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.FocusTime'
        lunch:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.Lunch'
        meetingRelief:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.MeetingRelief'
        preferredWork:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.PreferredWork'
        noMeetingDay:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.NoMeetingDay'
        travelTime:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.TravelTime'
        colorCoding:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.ColorCoding'
    ClockwiseImportRequest:
      type: object
      properties:
        user:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.User'
        workingHours:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.WorkingHours'
        meetingHours:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.MeetingHours'
        preferences:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.Preferences'
        flexibleMeetings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.FlexibleMeeting'
        schedulingLinks:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.SchedulingLinks'
    ClockwiseEventCleanupService.DetectionResult:
      required:
      - count
      - uniqueTitles
      type: object
      properties:
        count:
          type: integer
          format: int32
        uniqueTitles:
          type: array
          items:
            type: string
    ClockwiseEventCleanupService.CleanupResult:
      required:
      - deleted
      - failed
      - warnings
      type: object
      properties:
        deleted:
          type: integer
          format: int32
        failed:
          type: integer
          format: int32
        warnings:
          type: array
          items:
            type: string
    ClockwiseImportRequest.CustomBookableHours:
      type: object
      properties:
        schedule:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.CustomDaySchedule'
        dateOverrides:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.DateOverride'
    ClockwiseImportStatus:
      type: string
      enum:
      - PENDING
      - RUNNING
      - SUCCESS
      - PARTIAL
      - ERROR
    ClockwiseImportRequest.DaySetting:
      type: object
      properties:
        day:
          type: string
          nullable: true
        setting:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.SlotSetting'
    ClockwiseImportRequest.DateOverride:
      type: object
      properties:
        date:
          type: string
          nullable: true
        timeRanges:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.CustomTimeRange'
    ClockwiseImportRequest.CustomDaySchedule:
      type: object
      properties:
        day:
          type: string
          nullable: true
        timeRanges:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.CustomTimeRange'
    ClockwiseImportRequest.Lunch:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        timeSlotRange:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.TimeSlotRange'
        minimumDurationMinutes:
          type: integer
          format: int32
          nullable: true
        idealDurationMinutes:
          type: integer
          format: int32
          nullable: true
        externalTransparency:
          type: string
          nullable: true
        enableReminders:
          type: boolean
          nullable: true
    ClockwiseImportRequest.User:
      type: object
      properties:
        userId:
          type: string
          nullable: true
        calendarId:
          type: string
          nullable: true
        fullName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
    ClockwiseImportResponse:
      required:
      - flexibleHabitsConverted
      - flexibleMeetingsConverted
      - flexibleMeetingsSkipped
      - focusTimeImported
      - habitsCreated
      - meetingHoursImported
      - messages
      - schedulingLinksCreated
      - schedulingLinksSkipped
      - settingsApplied
      - warnings
      - workingHoursImported
      type: object
      properties:
        workingHoursImported:
          type: boolean
        meetingHoursImported:
          type: boolean
        focusTimeImported:
          type: boolean
        habitsCreated:
          type: array
          items:
            type: string
        settingsApplied:
          type: array
          items:
            type: string
        schedulingLinksCreated:
          type: integer
          format: int32
        schedulingLinksSkipped:
          type: integer
          format: int32
        flexibleMeetingsConverted:
          type: integer
          format: int32
        flexibleHabitsConverted:
          type: integer
          format: int32
        flexibleMeetingsSkipped:
          type: integer
          format: int32
        warnings:
          type: array
          items:
            type: string
        messages:
          type: array
          items:
            type: string
        skippedImport:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest'
    ClockwiseImportRequest.FocusTime:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        idealMinutesPerWeek:
          type: integer
          format: int32
          nullable: true
        idealMinutesPerDay:
          type: integer
          format: int32
          nullable: true
        maximumMinutesPerDay:
          type: integer
          format: int32
          nullable: true
        minimumSingleBlockMinutes:
          type: integer
          format: int32
          nullable: true
        idealSingleBlockMinutes:
          type: integer
          format: int32
          nullable: true
        maximumSingleBlockMinutes:
          type: integer
          format: int32
          nullable: true
        minimumTotalPerWeek:
          type: integer
          format: int32
          nullable: true
        limitPerDay:
          type: boolean
          nullable: true
        focusTimeSyncAll:
          type: boolean
          nullable: true
        autodeclineIfIdealNotMet:
          type: boolean
          nullable: true
        onlyHoldIfMinimum:
          type: boolean
          nullable: true
        preferredWorkType:
          type: string
          nullable: true
        externalTransparency:
          type: string
          nullable: true
        enableReminders:
          type: boolean
          nullable: true
    ClockwiseImportRequest.WorkingHours:
      type: object
      properties:
        timeZone:
          type: string
          nullable: true
        daySettings:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ClockwiseImportRequest.DaySetting'
    ClockwiseImportRequest.ColorEntry:
      type: object
      properties:
        colorId:
          type: string
          nullable: true
        displayName:
          type: string
          nullable: true
    ClockwiseImportRequest.SchedulingLink:
      type: object
      properties:
        linkUrl:
          type: string
          nullable: true
        linkName:
          type: string
          nullable: true
        meetingName:
          type: string
          nullable: true
        slug:
          type: string
          nullable: true
        isActive:
          type: boolean
          nullable: true
        durations:
          type: array
          nullable: true
          items:
            type: integer
            format: int32
        defaultDuration:
          type: integer
          format: int32
          nullable: true
        periodType:
          type: string
          nullable: true
        locationType:
          type: string
          nullable: true
        bookableHours:
          type: string
          nullable: true
        customBookableHours:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/ClockwiseImportRequest.CustomBookableHours'
        availabilityType:
          type: string
          nullable: true
        members:
          type: array
          nullable: true
          items:
            type: string
        titleTemplate:
          type: string
          nullable: true
        linkType:
          type: string
          nullable: true
  securitySchemes:
    Authorization:
      type: oauth2