Reclaim.ai schedule-policy API

The schedule-policy API from Reclaim.ai — 12 operation(s) for schedule-policy.

Operations 12

GET /api/schedule-policy #
GET /api/schedule-policy/available-types #
GET /api/schedule-policy/create-default-policies #
GET /api/schedule-policy/event-matcher-tags #
POST /api/schedule-policy/matching-events #
POST /api/schedule-policy/recommended #
GET /api/schedule-policy/smart-meeting/candidates #
GET /api/schedule-policy/templates #
POST /api/schedule-policy/templates/instantiate-meeting-quality #
GET /api/schedule-policy/templates/instantiated/{templateId} #
GET /api/schedule-policy/{policyId} #
GET /api/schedule-policy/{policyId}/events #

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-schedule-policy-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-schedule-policy-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reclaim account-time-schemes Schedule Policy 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: schedule-policy
paths:
  /api/schedule-policy:
    get:
      tags:
      - schedule-policy
      operationId: listPolicies
      responses:
        '200':
          description: listPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindSchedulePoliciesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/available-types:
    get:
      tags:
      - schedule-policy
      operationId: availablePolicyTypes
      responses:
        '200':
          description: availablePolicyTypes 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailablePolicyTypesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/create-default-policies:
    get:
      tags:
      - schedule-policy
      operationId: createDefaultPolicies
      responses:
        '200':
          description: createDefaultPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindSchedulePoliciesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/event-matcher-tags:
    get:
      tags:
      - schedule-policy
      operationId: getEventMatcherTags
      responses:
        '200':
          description: getEventMatcherTags 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventMatcherTag'
      security:
      - Authorization: []
  /api/schedule-policy/matching-events:
    post:
      tags:
      - schedule-policy
      operationId: findMatchingEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchingEventsRequest'
        required: true
      responses:
        '200':
          description: findMatchingEvents 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchingEventsResponse'
      security:
      - Authorization: []
  /api/schedule-policy/recommended:
    post:
      tags:
      - schedule-policy
      operationId: recommendedPolicies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecommendedPoliciesRequest'
        required: true
      responses:
        '200':
          description: recommendedPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendedPoliciesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/smart-meeting/candidates:
    get:
      tags:
      - schedule-policy
      operationId: findSmartMeetingCandidates
      responses:
        '200':
          description: findSmartMeetingCandidates 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartMeetingCandidatesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/templates:
    get:
      tags:
      - schedule-policy
      operationId: findTemplates
      responses:
        '200':
          description: findTemplates 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindTemplatesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/templates/instantiate-meeting-quality:
    post:
      tags:
      - schedule-policy
      operationId: instantiateMeetingQualityPolicies
      parameters:
      - name: templateIds
        in: query
        required: true
        schema:
          type: array
          items:
            $ref: '#/components/schemas/PolicyTemplateId'
      responses:
        '200':
          description: instantiateMeetingQualityPolicies 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindSchedulePoliciesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/templates/instantiated/{templateId}:
    get:
      tags:
      - schedule-policy
      operationId: instantiateTemplate
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/PolicyTemplateId'
      responses:
        '200':
          description: instantiateTemplate 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstantiateTemplatesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/{policyId}:
    get:
      tags:
      - schedule-policy
      operationId: findPolicy
      parameters:
      - name: policyId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: findPolicy 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindSchedulePoliciesResponse'
      security:
      - Authorization: []
  /api/schedule-policy/{policyId}/events:
    get:
      tags:
      - schedule-policy
      operationId: findUpcomingPolicyEvents
      parameters:
      - name: policyId
        in: path
        required: true
        schema:
          type: string
      - name: numUpcoming
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int32
      - name: lookaheadDays
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int32
      - name: scopeId
        in: query
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: findUpcomingPolicyEvents 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpcomingPolicyEventsResponse'
      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
    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
    AttendeeAvailabilityWarningPatchRequestFields:
      type: object
      properties:
        commonData:
          $ref: '#/components/schemas/SchedulePolicyCommonDataPatchRequestFields'
        timePolicy:
          allOf:
          - $ref: '#/components/schemas/SchedulePolicyTimePolicy'
        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'
    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
    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
    FindSchedulePoliciesResponse:
      required:
      - policies
      type: object
      properties:
        policies:
          type: array
          items:
            $ref: '#/components/schemas/SchedulePolicy'
    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'
    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
    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
    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
    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
          - 'null'
        type:
          type: string
    GtdClickUpTaskForCreate:
      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'
        labels:
          type:
          - array
          - 'null'
          items:
            type: string
        type:
          type: string
    SmartMeetingCandidatesResponse:
      required:
      - candidates
      type: object
      properties:
        candidates:
          type: array
          items:
            $ref: '#/components/schemas/SmartMeetingCandidateView'
    OrEventMatcher:
      required:
      - left
      - right
      type: object
      properties:
        left:
          $ref: '#/components/schemas/EventMatcher'
        right:
          $ref: '#/components/schemas/EventMatcher'
        type:
          type: string
      description: Matches if either the left or right matcher matches
    SchedulePolicyCommonDataPatchRequestFields:
      type: object
      properties:
        automationType:
          $ref: '#/components/schemas/AutomationType'
        status:
          $ref: '#/components/schemas/PolicyStatus'
        title:
          type: string
        description:
          type: string
    HasVideoConferenceEventMatcher:
      required:
      - predicateValue
      type: object
      properties:
        predicateValue:
          type: boolean
        type:
          type: string
      description: Matches events with or without a video conference link
    MergeableEventView.MergeType:
      type: string
      enum:
      - ORGANIZER_EVENT
      - ATTENDEE_EVENT
      - SYNC_EVENT
    ManualEditEventAction:
      required:
      - eventKey
      - policyId
      type: object
      properties:
        hash:
          type:
          - string
          - 'null'
        policyId:
          type: string
          format: uuid
        eventKey:
          $ref: '#/components/schemas/EventKey'
        type:
          type: string
    MoreEntryPoint:
      required:
      - uri
      type: object
      properties:
        uri:
          type: string
        label:
          type:
          - string
          - 'null'
        pin:
          type:
          - string
          - 'null'
        type:
          type: string
    TimePolicy:
      required:
      - dayHours
      type: object
      properties:
        startOfWeek:
          $ref: '#/components/schemas/DayOfWeek'
        endOfWeek:
          $ref: '#/components/schemas/DayOfWeek'
        dayHours:
          properties:
            MONDAY:
              $ref: '#/components/schemas/DayHours'
            TUESDAY:
              $ref: '#/components/schemas/DayHours'
            WEDNESDAY:
              $ref: '#/components/schemas/DayHours'
            THURSDAY:
              $ref: '#/components/schemas/DayHours'
            FRIDAY:
              $ref: '#/components/schemas/DayHours'
            SATURDAY:
              $ref: '#/components/schemas/DayHours'
            SUNDAY:
              $ref: '#/components/schemas/DayHours'
    SchedulePolicyCommonData:
      required:
      - automationType
      - deleted
      - description
      - id
      - index
      - policyScope
      - status
      - title
      type: object
      properties:
        id:
          type: string
          format: uuid
        index:
          type: integer
          format: int32
        status:
          $ref: '#/components/schemas/PolicyStatus'
        automationType:
          $ref: '#/components/schemas/AutomationType'
        title:
          type: string
        description:
          type: string
        sourceTemplateId:
          allOf:
          - $ref: '#/components/schemas/PolicyTemplateId'
        deleted:
          type: boolean
        policyScope:
          $ref: '#/components/schemas/PolicyScope'
        priority:
          allOf:
          - $ref: '#/components/schemas/PriorityLevel'
    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
    ScheduleAction:
      type: object
      discriminator:
        propertyName: type
        mapping:
          AddFocusEventAction: '#/components/schemas/AddFocusEventAction'
          FindATimeAction: '#/components/schemas/FindANewTimeAction'
          AddEventAction: '#/components/schemas/AddEventAction'
          CancelEventAction: '#/components/schemas/CancelEventAction'
          ManualEditEventAction: '#/components/schemas/ManualEditEventAction'
          ManagedEventLockAction: '#/components/schemas/EventLockAction'
          RescheduleEventAndCancelOthersAction: '#/components/schemas/RescheduleEventAndCancelOthersAction'
          CompleteGtdTaskAction: '#/components/schemas/CompleteGtdTaskAction'
          IgnoreScheduleProblemAction: '#/components/schemas/IgnoreScheduleProblemAction'
          IgnoreEventKeyAction: '#/components/schemas/IgnoreEventKeyAction'
          MutatePolicyAction: '#/components/schemas/MutatePolicyAction'
          AddVideoConferenceAction: '#/components/schemas/AddVideoConferenceAction'
          UncompleteGtdTaskAction: '#/components/schemas/UncompleteGtdTaskAction'
          LogTaskAction: '#/components/schemas/LogTaskAction'
          UpdateEventAction: '#/components/schemas/UpdateEventAction'
          AddGoogleEventAction: '#/components/schemas/AddEventAction'
          RescheduleEventAction: '#/components/schemas/RescheduleEventAction'
          EventLockAction: '#/components/schemas/EventLockAction'
          RsvpEventAction: '#/components/schemas/RsvpEventAction'
          AddBufferEventAction: '#/components/schemas/AddBufferEventAction'
          UpdateGtdTaskStatusAction: '#/components/schemas/UpdateGtdTaskStatusAction'
          CreateGtdTaskAction: '#/components/schemas/CreateGtdTaskAction'
      allOf:
      - $ref: '#/components/schemas/LogContext'
      oneOf:
      - $ref: '#/components/schemas/AddEventAction'
      - $ref: '#/components/schemas/AddFocusEventAction'
      - $ref: '#/components/schemas/UpdateEventAction'
      - $ref: '#/components/schemas/AddBufferEventAction'
      - $ref: '#/components/schemas/CancelEventAction'
      - $ref: '#/components/schemas/IgnoreScheduleProblemAction'
      - $ref: '#/components/schemas/IgnoreEventKeyAction'
      - $ref: '#/components/schemas/EventLockAction'
      - $ref: '#/components/schemas/MutatePolicyAction'
      - $ref: '#/components/schemas/ManualEditEventAction'
      - $ref: '#/components/schemas/FindANewTimeAction'
      - $ref: '#/components/schemas/RescheduleEventAction'
      - $ref: '#/components/schemas/RescheduleEventAndCancelOthersAction'
      - $ref: '#/components/schemas/RsvpEventAction'
      - $ref: '#/components/schemas/AddVideoConferenceAction'
      - $ref: '#/components/schemas/LogTaskAction'
      - $ref: '#/components/schemas/CompleteGtdTaskAction'
      - $ref: '#/components/schemas/UncompleteGtdTaskAction'
      - $ref: '#/components/schemas/UpdateGtdTaskStatusAction'
      - $ref: '#/components/schemas/CreateGtdTaskAction'
    GtdTaskId.TaskSourceType:
      type: string
      enum:
      - TODOIST
      - CLICK_UP
      - LINEAR
      - GOOGLE_TASKS
      - JIRA
      - ASANA
      - NOTION
      - RECLAIM
    OrAttendeeMatcher:
      required:
      - left
      - right
      type: object
      properties:
        left:
          $ref: '#/components/schemas/AttendeeMatcher'
        right:
          $ref: '#/components/schemas/AttendeeMatcher'
        type:
          type: string
      description: Matches if either attendee matcher matches
    TaskEventData:
      required:
      - gtdTaskId
      type: object
      properties:
        gtdTaskId:
          type: string
    AttendeeResponseStatusMatcher:
      required:
      - operator
      - values
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/AttendeeResponseStatusMatcher.SetOperator'
        values:
          type: array
          items:
            $ref: '#/components/schemas/ResponseStatus'
        type:
          type: string
      description: Matches an attendee's RSVP response status
    AttendeeResponseStatusMatcher.SetOperator:
      type: string
      enum:
      - IN
      - NOT_IN
    OutlookEventData:
      type: object
    MatchingEventsResponse:
      required:
      - events
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/CalendarEventV2'
    IsRecurringInstanceEventMatcher:
      type: object
      description: Matches events that are an instance of a recurring series
    AttendeeStringMatcher.StringOperator:
      type: string
      enum:
      - EQUALS
      - NOT_EQUALS
      - CONTAINS
      - MATCHES
    EventConflictPolicy:
      required:
      - commonData
      - timePolicy
      type: object
      properties:
        commonData:
          $ref: '#/components/schemas/SchedulePolicyCommonData'
        timePolicy:
          $ref: '#/components/schemas/SchedulePolicyTimePolicy'
        type:
          type: string
    SmartMeetingPolicyTemplate:
      required:
      - category
      - defaultEventDurationMinutes
      - defaultEventTitle
      - description
      - icon
      - minDurationMinutes
      - templateId
      - title
      type: object
      properties:
        templateId:
          $ref: '#/components/schemas/PolicyTemplateId'
        title:
          type: string
        description:
          type: string
        icon:
          type: string
        category:
          $ref: '#/components/schemas/PolicyTemplateCategory'
        minDurationMinutes:
          type: integer
          format: int64
        defaultEventDurationMinutes:
          type: integer
          format: int64
        defaultEventTitle:
          type: string
        type:
          type: string
    PolicyTemplateCategory:
      type: string
      enum:
      - HABIT
      - BUFFER
      - FOCUS
      - EVENT_WARNING
      - MEETING_QUALITY
      - SMART_MEETING
    RecurrenceContinuityData_1:
      type: object
      properties:
        lastPendingSync:
          type:
          - string
          - 'null'
          format: date-time
        successorExternalId:
          type:
          - string
          - 'null'
    EventMatcher:
      type: object
      discriminator:
        propertyName: type
        mapping:
          EventTagEventMatcher: '#/components/schemas/EventTagEventMatcher'
          AllEventMatcher: '#/components/schemas/AllEventMatcher'
          AttendeeEmailEventMatcher: '#/components/schemas/AttendeeEmailEventMatcher'
          IsOrganizerEventMatcher: '#/components/schemas/IsOrganizerEventMatcher'
          ReclaimEventTypeEventMatcher: '#/components/schemas/ReclaimEventTypeEventMatcher

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