Reclaim.ai schedule-policy API
The schedule-policy API from Reclaim.ai — 12 operation(s) for schedule-policy.
The schedule-policy API from Reclaim.ai — 12 operation(s) for schedule-policy.
openapi: 3.0.1
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'
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
format: int32
nullable: true
- name: lookaheadDays
in: query
schema:
type: integer
format: int32
nullable: true
- name: scopeId
in: query
schema:
type: string
nullable: true
responses:
'200':
description: findUpcomingPolicyEvents 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/UpcomingPolicyEventsResponse'
security:
- Authorization: []
components:
schemas:
GtdGoogleTasksTaskForCreate:
required:
- sourceType
- title
type: object
properties:
sourceType:
$ref: '#/components/schemas/GtdTaskId.TaskSourceType'
title:
type: string
description:
type: string
nullable: true
due:
type: string
format: date-time
nullable: true
start:
type: string
format: date-time
nullable: true
priority:
nullable: true
allOf:
- $ref: '#/components/schemas/PriorityLevel'
estimateMinutes:
type: integer
format: int32
nullable: true
listId:
type: string
nullable: true
parentTaskId:
type: string
nullable: true
type:
type: string
EventLockAction:
required:
- eventKey
- lockMode
- policyId
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
eventKey:
$ref: '#/components/schemas/EventKey'
lockMode:
$ref: '#/components/schemas/EventLockAction.LockMode'
type:
type: string
AnyAttendeeEventMatcher:
required:
- attendeeMatcher
type: object
properties:
attendeeMatcher:
$ref: '#/components/schemas/AttendeeMatcher'
type:
type: string
description: Matches if any attendee satisfies the given attendee predicate
AndEventMatcher:
required:
- left
- right
type: object
properties:
left:
$ref: '#/components/schemas/EventMatcher'
right:
$ref: '#/components/schemas/EventMatcher'
type:
type: string
description: Matches if both the left and right matchers match
AddEventAction:
required:
- attendees
- dateRange
- eventKey
- guestsCanModify
- policyId
- title
type: object
properties:
eventKey:
readOnly: true
allOf:
- $ref: '#/components/schemas/EventKey'
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
calendarId:
type: integer
format: int64
nullable: true
eventId:
type: string
nullable: true
dateRange:
$ref: '#/components/schemas/EventDateRange'
title:
type: string
description:
type: string
nullable: true
color:
nullable: true
allOf:
- $ref: '#/components/schemas/EntryColor'
location:
type: string
nullable: true
transparency:
nullable: true
allOf:
- $ref: '#/components/schemas/Transparency'
visibility:
nullable: true
allOf:
- $ref: '#/components/schemas/Visibility'
reminders:
nullable: true
allOf:
- $ref: '#/components/schemas/Reminders'
eventCategory:
nullable: true
allOf:
- $ref: '#/components/schemas/EventCategory'
attendees:
type: array
items:
$ref: '#/components/schemas/EventAttendee'
notificationRequest:
nullable: true
allOf:
- $ref: '#/components/schemas/EntryNotificationRequest'
guestsCanModify:
type: boolean
guestsCanInviteOthers:
type: boolean
nullable: true
guestsCanSeeOtherGuests:
type: boolean
nullable: true
conferenceRequest:
nullable: true
allOf:
- $ref: '#/components/schemas/ConferenceRequest'
recurrence:
nullable: true
allOf:
- $ref: '#/components/schemas/ReclaimRecurrence'
priority:
nullable: true
allOf:
- $ref: '#/components/schemas/PriorityLevel'
type:
type: string
Transparency:
type: string
enum:
- OPAQUE
- TRANSPARENT
GtdTaskForCreate:
type: object
discriminator:
propertyName: type
mapping:
GtdAsanaTaskForCreate: '#/components/schemas/GtdAsanaTaskForCreate'
GtdTodoistTaskForCreate: '#/components/schemas/GtdTodoistTaskForCreate'
GtdClickUpTaskForCreate: '#/components/schemas/GtdClickUpTaskForCreate'
GtdGoogleTasksTaskForCreate: '#/components/schemas/GtdGoogleTasksTaskForCreate'
GtdLinearTaskForCreate: '#/components/schemas/GtdLinearTaskForCreate'
ReclaimTaskForCreate: '#/components/schemas/ReclaimTaskForCreate'
GtdJiraTaskForCreate: '#/components/schemas/GtdJiraTaskForCreate'
GtdNotionTaskForCreate: '#/components/schemas/GtdNotionTaskForCreate'
oneOf:
- $ref: '#/components/schemas/ReclaimTaskForCreate'
- $ref: '#/components/schemas/GtdAsanaTaskForCreate'
- $ref: '#/components/schemas/GtdClickUpTaskForCreate'
- $ref: '#/components/schemas/GtdGoogleTasksTaskForCreate'
- $ref: '#/components/schemas/GtdJiraTaskForCreate'
- $ref: '#/components/schemas/GtdLinearTaskForCreate'
- $ref: '#/components/schemas/GtdNotionTaskForCreate'
- $ref: '#/components/schemas/GtdTodoistTaskForCreate'
GtdTaskId.TaskSourceType:
type: string
enum:
- TODOIST
- CLICK_UP
- LINEAR
- GOOGLE_TASKS
- JIRA
- ASANA
- NOTION
- RECLAIM
Colorized:
type: object
properties:
color:
$ref: '#/components/schemas/EventColor'
EventDateRange:
type: object
discriminator:
propertyName: type
mapping:
FixedDateTimeRange: '#/components/schemas/FixedDateTimeRange'
AllDayDateRange: '#/components/schemas/AllDayDateRange'
oneOf:
- $ref: '#/components/schemas/FixedDateTimeRange'
- $ref: '#/components/schemas/AllDayDateRange'
FindTemplatesResponse:
required:
- templates
type: object
properties:
templates:
type: array
items:
$ref: '#/components/schemas/PolicyTemplate'
SelfRSVPMatcher:
required:
- operator
type: object
properties:
operator:
$ref: '#/components/schemas/EventMatcherOperator'
predicateValue:
nullable: true
allOf:
- $ref: '#/components/schemas/ResponseStatus'
predicateValues:
type: array
nullable: true
items:
$ref: '#/components/schemas/ResponseStatus'
type:
type: string
description: Matches by the user's own RSVP status
SmartSeriesId:
required:
- lineageId
- seriesId
type: object
properties:
seriesId:
type: integer
format: int64
lineageId:
type: integer
format: int64
type:
type: string
UncompleteGtdTaskAction:
required:
- task
type: object
properties:
hash:
type: string
nullable: true
task:
$ref: '#/components/schemas/GtdTask'
type:
type: string
UpcomingPolicyEventsResponse:
type: object
discriminator:
propertyName: type
mapping:
UpcomingBufferEventsResponse: '#/components/schemas/UpcomingBufferEventsResponse'
UpcomingEventsResponse: '#/components/schemas/UpcomingEventsResponse'
UpcomingManagedEventsResponse: '#/components/schemas/UpcomingManagedEventsResponse'
oneOf:
- $ref: '#/components/schemas/UpcomingManagedEventsResponse'
- $ref: '#/components/schemas/UpcomingEventsResponse'
- $ref: '#/components/schemas/UpcomingBufferEventsResponse'
HasVideoConferenceEventMatcher:
required:
- predicateValue
type: object
properties:
predicateValue:
type: boolean
type:
type: string
description: Matches events with or without a video conference link
TimeWindowEventMatcher.TimeWindowMatchMode:
type: string
enum:
- STARTS_WITHIN
- ENDS_WITHIN
- STARTS_OR_ENDS_WITHIN
- CONTAINED_WITHIN
- OVERLAPS
RecurrenceFrequency:
type: string
enum:
- DAILY
- WEEKLY
- MONTHLY
- YEARLY
CancelEventAction:
required:
- eventKey
- policyId
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
eventKey:
$ref: '#/components/schemas/EventKey'
notificationMessage:
type: string
nullable: true
notificationRequest:
nullable: true
allOf:
- $ref: '#/components/schemas/EntryNotificationRequest'
recurrenceEditType:
nullable: true
allOf:
- $ref: '#/components/schemas/RecurrenceEditType'
assistantData:
nullable: true
allOf:
- $ref: '#/components/schemas/AssistantData'
title:
type: string
nullable: true
start:
type: string
format: date-time
nullable: true
end:
type: string
format: date-time
nullable: true
type:
type: string
RescheduleEventAction:
required:
- end
- eventKey
- policyId
- start
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
eventKey:
$ref: '#/components/schemas/EventKey'
start:
type: string
format: date-time
end:
type: string
format: date-time
notificationMessage:
type: string
nullable: true
notificationRequest:
nullable: true
allOf:
- $ref: '#/components/schemas/EntryNotificationRequest'
recurrenceEditType:
nullable: true
allOf:
- $ref: '#/components/schemas/RecurrenceEditType'
rescheduledFromStart:
type: string
format: date-time
nullable: true
rescheduledFromEnd:
type: string
format: date-time
nullable: true
type:
type: string
LacksRsvpCreateRequestFields:
required:
- commonData
type: object
properties:
commonData:
$ref: '#/components/schemas/SchedulePolicyCommonDataCreateRequestFields'
eventMatcher:
nullable: true
allOf:
- $ref: '#/components/schemas/EventMatcher'
eventMatcherTags:
description: Predefined event matching tags. Either this or eventMatcher is required.
nullable: true
allOf:
- $ref: '#/components/schemas/EventMatcherTags'
type:
type: string
AttendeeCountEventMatcher:
required:
- attendeeType
- includeResources
- operator
- predicateValue
type: object
properties:
operator:
$ref: '#/components/schemas/EventMatcherOperator'
predicateValue:
type: integer
format: int32
attendeeType:
$ref: '#/components/schemas/AttendeeCountEventMatcher.AttendeeType'
includeResources:
type: boolean
default: false
type:
type: string
description: Matches by attendee count using a comparison operator
LacksRsvpPolicyTemplate:
required:
- category
- defaultWarningCondition
- description
- icon
- templateId
- title
- warningMessage
type: object
properties:
templateId:
$ref: '#/components/schemas/PolicyTemplateId'
title:
type: string
description:
type: string
icon:
type: string
category:
$ref: '#/components/schemas/PolicyTemplateCategory'
defaultWarningCondition:
$ref: '#/components/schemas/EventMatcher'
warningMessage:
type: string
type:
type: string
EventConflictPatchRequestFields:
type: object
properties:
commonData:
$ref: '#/components/schemas/SchedulePolicyCommonDataPatchRequestFields'
timePolicy:
nullable: true
allOf:
- $ref: '#/components/schemas/SchedulePolicyTimePolicy'
type:
type: string
ZoomConferenceRequest:
required:
- enabled
type: object
properties:
enabled:
type: boolean
type:
type: string
EventEditType:
type: string
enum:
- THIS
- ALL
- THIS_AND_FOLLOWING
Reminders:
required:
- overrides
- useDefault
type: object
properties:
useDefault:
type: boolean
overrides:
type: array
items:
$ref: '#/components/schemas/Reminder'
ManualEventEdit:
required:
- eventDateRange
- eventKey
- eventStatus
- policyId
- policyType
- relatedFields
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
policyType:
$ref: '#/components/schemas/SchedulePolicyType'
eventKey:
$ref: '#/components/schemas/EventKey'
eventDateRange:
$ref: '#/components/schemas/EventDateRange'
eventVersion:
type: integer
format: int32
nullable: true
eventStatus:
$ref: '#/components/schemas/EntryStatus'
relatedFields:
type: array
items:
$ref: '#/components/schemas/CalendarEventField'
type:
type: string
CreateGtdTaskAction:
required:
- fields
- sourceType
- title
type: object
properties:
hash:
type: string
nullable: true
sourceType:
$ref: '#/components/schemas/GtdTaskId.TaskSourceType'
title:
type: string
fields:
$ref: '#/components/schemas/GtdTaskForCreate'
tempId:
type: string
nullable: true
type:
type: string
RecurrenceEditType:
type: string
enum:
- ALL
- THIS_AND_FOLLOWING
PlatformEventData:
type: object
discriminator:
propertyName: type
mapping:
GoogleEventData: '#/components/schemas/GoogleEventData'
OutlookEventData: '#/components/schemas/OutlookEventData'
oneOf:
- $ref: '#/components/schemas/GoogleEventData'
- $ref: '#/components/schemas/OutlookEventData'
ConferenceRequest:
type: object
discriminator:
propertyName: type
mapping:
ZoomConferenceRequest: '#/components/schemas/ZoomConferenceRequest'
MeetConferenceRequest: '#/components/schemas/MeetConferenceRequest'
TeamsConferenceRequest: '#/components/schemas/TeamsConferenceRequest'
oneOf:
- $ref: '#/components/schemas/MeetConferenceRequest'
- $ref: '#/components/schemas/TeamsConferenceRequest'
- $ref: '#/components/schemas/ZoomConferenceRequest'
PolicyScope:
type: string
enum:
- USER
- TEAM
LacksVideoConferencePatchRequestFields:
type: object
properties:
commonData:
$ref: '#/components/schemas/SchedulePolicyCommonDataPatchRequestFields'
eventMatcher:
nullable: true
allOf:
- $ref: '#/components/schemas/EventMatcher'
eventMatcherTags:
description: Predefined event matching tags. Either this or eventMatcher is required.
nullable: true
allOf:
- $ref: '#/components/schemas/EventMatcherTags'
type:
type: string
DayOfWeek:
type: string
enum:
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- SUNDAY
ShieldsUpProblem:
required:
- hash
- policyId
- policyType
- problemType
type: object
properties:
hash:
type: string
policyId:
type: string
format: uuid
policyType:
$ref: '#/components/schemas/SchedulePolicyType'
problemType:
$ref: '#/components/schemas/ShieldsUpProblemType'
eventKey:
nullable: true
allOf:
- $ref: '#/components/schemas/EventKey'
type:
type: string
HabitPatchRequestFields:
type: object
properties:
commonData:
$ref: '#/components/schemas/SchedulePolicyCommonDataPatchRequestFields'
eventMatcher:
nullable: true
allOf:
- $ref: '#/components/schemas/EventMatcher'
idealDurationMinutes:
type: integer
description: Preferred duration in minutes. Reclaim tries this first, falling back to minDurationMinutes.
format: int64
nullable: true
minDurationMinutes:
type: integer
description: Minimum acceptable duration in minutes.
format: int64
availableTimeForTransparencyChangeMinutes:
type: integer
description: Minutes before event start to switch the calendar entry from free to busy. Null keeps the event busy from creation.
format: int64
nullable: true
availableSlotsForTransparencyChange:
type: integer
description: Number of alternative time slots to hold as free before committing to one. Null means only the best slot is held.
format: int64
nullable: true
autoBusyBeforeStartMinutes:
type: integer
description: Minutes before start to force the event to show as busy, even if other slots are still held. Null disables.
format: int64
nullable: true
timePolicy:
nullable: true
allOf:
- $ref: '#/components/schemas/SchedulePolicyTimePolicy'
proactivelyUseIdealTime:
type: boolean
description: When true, Reclaim proactively schedules at the ideal duration even when no conflict forces rescheduling.
noAvailabilityAction:
description: 'What to do when no available slot exists: CANCEL (remove the event) or WARNING (keep it and surface a warning).'
nullable: true
allOf:
- $ref: '#/components/schemas/ManagedEventNoAvailabilityAction'
suppressWarnings:
type: boolean
description: When true, suppresses all warnings/problems detected by this policy.
type:
type: string
RecentPaperDocMatcher:
required:
- defaultValue
- recentThresholdMinutes
type: object
properties:
defaultValue:
type: boolean
recentThresholdMinutes:
type: integer
format: int32
type:
type: string
description: Matches events with a recently modified paper document
TeamsConferenceData:
required:
- conferenceUrl
type: object
properties:
conferenceUrl:
type: string
entryPoints:
type: array
nullable: true
items:
$ref: '#/components/schemas/ConferenceEntryPoint'
type:
type: string
Reminder:
required:
- minutes
- reminderType
type: object
properties:
reminderType:
$ref: '#/components/schemas/ReminderType'
minutes:
type: integer
format: int32
EventLockAction.LockMode:
type: string
enum:
- LOCK
- UNLOCK
SchedulePolicy:
type: object
discriminator:
propertyName: type
mapping:
EventConflictPolicy: '#/components/schemas/EventConflictPolicy'
FocusTimePolicy: '#/components/schemas/FocusTimePolicy'
LacksRsvpPolicy: '#/components/schemas/LacksRsvpPolicy'
AttendeeAvailabilityWarningPolicy: '#/components/schemas/AttendeeAvailabilityWarningPolicy'
BasicEventWarningPolicy: '#/components/schemas/BasicEventWarningPolicy'
SmartMeetingPolicy: '#/components/schemas/SmartMeetingPolicy'
ShieldsUpPolicy: '#/components/schemas/ShieldsUpPolicy'
BufferEventPolicy: '#/components/schemas/BufferEventPolicy'
LacksVideoConferencePolicy: '#/components/schemas/LacksVideoConferencePolicy'
HabitPolicy: '#/components/schemas/HabitPolicy'
UnknownPolicy: '#/components/schemas/UnknownPolicy'
oneOf:
- $ref: '#/components/schemas/AttendeeAvailabilityWarningPolicy'
- $ref: '#/components/schemas/BasicEventWarningPolicy'
- $ref: '#/components/schemas/BufferEventPolicy'
- $ref: '#/components/schemas/EventConflictPolicy'
- $ref: '#/components/schemas/FocusTimePolicy'
- $ref: '#/components/schemas/HabitPolicy'
- $ref: '#/components/schemas/LacksRsvpPolicy'
- $ref: '#/components/schemas/LacksVideoConferencePolicy'
- $ref: '#/components/schemas/ShieldsUpPolicy'
- $ref: '#/components/schemas/SmartMeetingPolicy'
- $ref: '#/components/schemas/UnknownPolicy'
SlotAvailability:
required:
- attendees
- movabilityScore
type: object
properties:
movabilityScore:
type: integer
format: int32
attendees:
type: array
items:
$ref: '#/components/schemas/AttendeeAvailabilityView'
AssistType:
type: string
enum:
- TASK
- CUSTOM_DAILY
- CATCHUP_AM
- CATCHUP_PM
- LUNCH
- FOCUS
- TRAVEL_PRE
- TRAVEL_POST
- CONBUF
- SMART_HABIT
- SMART_MEETING
- RECLAIM_FOCUS
GtdTask:
type: object
discriminator:
propertyName: type
mapping:
GtdGoogleTasksTask: '#/components/schemas/GtdGoogleTasksTask'
GtdLinearTask: '#/components/schemas/GtdLinearTask'
GtdJiraTask: '#/components/schemas/GtdJiraTask'
GtdClickUpTask: '#/components/schemas/GtdClickUpTask'
GtdAsanaTask: '#/components/schemas/GtdAsanaTask'
GtdTodoistTask: '#/components/schemas/GtdTodoistTask'
GtdNotionTask: '#/components/schemas/GtdNotionTask'
ReclaimTask: '#/components/schemas/ReclaimTask'
oneOf:
- $ref: '#/components/schemas/GtdTodoistTask'
- $ref: '#/components/schemas/GtdGoogleTasksTask'
- $ref: '#/components/schemas/GtdClickUpTask'
- $ref: '#/components/schemas/GtdLinearTask'
- $ref: '#/components/schemas/GtdJiraTask'
- $ref: '#/components/schemas/GtdAsanaTask'
- $ref: '#/components/schemas/GtdNotionTask'
- $ref: '#/components/schemas/ReclaimTask'
NotEventMatcher:
required:
- toNegate
type: object
properties:
toNegate:
$ref: '#/components/schemas/EventMatcher'
type:
type: string
description: Negates another matcher
FindANewTimeAction:
required:
- eventKey
- policyId
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
eventKey:
$ref: '#/components/schemas/EventKey'
type:
type: string
BufferEventData:
required:
- bufferEventType
- bufferTarget
- policyId
type: object
properties:
bufferTarget:
$ref: '#/components/schemas/EventKey'
policyId:
type: string
format: uuid
bufferEventType:
$ref: '#/components/schemas/BufferEventType'
bufferEventDateRange:
nullable: true
allOf:
- $ref: '#/components/schemas/EventDateRange'
TimeOfDayEventMatcher:
required:
- operator
- predicateValue
- timeField
type: object
properties:
timeField:
$ref: '#/components/schemas/TimeOfDayEventMatcher.TimeField'
operator:
$ref: '#/components/schemas/EventMatcherOperator'
predicateValue:
type: string
format: partial-time
type:
type: string
description: Matches events based on their start or end time of day
AttendeeDeclined:
required:
- declinedAttendeeEmails
- event
- policyId
- policyType
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
policyType:
$ref: '#/components/schemas/SchedulePolicyType'
event:
$ref: '#/components/schemas/EventKey'
recurringEventId:
type: string
nullable: true
declinedAttendeeEmails:
type: array
items:
type: string
relatedFields:
type: array
nullable: true
items:
$ref: '#/components/schemas/CalendarEventField'
type:
type: string
AddFocusEventAction:
required:
- end
- eventKey
- policyId
- start
- title
type: object
properties:
hash:
type: string
nullable: true
policyId:
type: string
format: uuid
eventKey:
$ref: '#/components/schemas/EventKey'
title:
type: string
start:
type: string
format: date-time
# --- truncated at 32 KB (179 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reclaim-ai/refs/heads/main/openapi/reclaim-ai-schedule-policy-api-openapi.yml