openapi: 3.0.1 info: title: Reclaim account-time-schemes actions 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: actions paths: /api/planner/add-time/task/{taskId}: post: tags: - actions operationId: addTime parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: minutes in: query schema: type: integer format: int32 nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: addTime 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/clear-exceptions/habit/{habitId}: post: tags: - actions operationId: clearHabitTimePolicyExceptions parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: clearHabitTimePolicyExceptions 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/clear-exceptions/one-on-one/{oneOnOneId}: post: tags: - actions operationId: clearOneOnOneTimePolicyExceptions parameters: - name: oneOnOneId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: clearOneOnOneTimePolicyExceptions 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/clear-exceptions/task/{taskId}: post: tags: - actions operationId: clearTaskTimePolicyExceptions parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: clearTaskTimePolicyExceptions 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/done/habit/{habitId}: post: tags: - actions operationId: doneHabit parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: doneHabit 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/done/task/{taskId}: post: tags: - actions operationId: doneTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: doneTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/category/{calendarId}/{eventId}: put: tags: - actions operationId: changeCategory parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string - name: categoryIn in: query required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: changeCategory 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/move/{eventId}: post: tags: - actions summary: Event Actions description: Event Actions operationId: moveEvent parameters: - name: eventId in: path required: true schema: type: string - name: start in: query required: true schema: type: string format: date-time - name: end in: query required: true schema: type: string format: date-time - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: moveEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/pin/{eventId}: post: tags: - actions operationId: pinEvent parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: pinEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/rsvp/{calendarId}/{eventId}: put: tags: - actions operationId: rsvp parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true requestBody: content: application/json: schema: $ref: '#/components/schemas/RsvpResponseBody' required: true responses: '200': description: rsvp 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/unpin/{eventId}: post: tags: - actions operationId: unpinEvent parameters: - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: unpinEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/{calendarId}/{eventId}/move: post: tags: - actions operationId: moveTask parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string - name: start in: query required: true schema: type: string format: date-time - name: end in: query required: true schema: type: string format: date-time - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: moveTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/{calendarId}/{eventId}/pin: post: tags: - actions operationId: pinEventV2 parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: pinEventV2 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/event/{calendarId}/{eventId}/unpin: post: tags: - actions operationId: unpinEventV2 parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: unpinEventV2 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/habit/{calendarId}/{eventId}/reschedule: post: tags: - actions operationId: habitDeleteInstanceAndReschedule parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string - name: snoozeOption in: query schema: nullable: true allOf: - $ref: '#/components/schemas/SnoozeOption' - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: habitDeleteInstanceAndReschedule 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/log-work/task/{taskId}: post: tags: - actions operationId: logWork parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: minutes in: query schema: type: integer format: int32 nullable: true - name: end in: query schema: type: string format: date-time nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: logWork 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/migration/priorities: post: tags: - actions operationId: migrateToPrioritySystem responses: '200': description: migrateToPrioritySystem 200 response content: application/json: schema: type: object security: - Authorization: [] /api/planner/one-on-one/reschedule/{oneOnOneId}/{eventId}: post: tags: - actions operationId: oneOnOneReschedule parameters: - name: oneOnOneId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: oneOnOneReschedule 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/one-on-one/skip-day/{oneOnOneId}/{eventId}: post: tags: - actions operationId: oneOnOneSkipDay parameters: - name: oneOnOneId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: oneOnOneSkipDay 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/one-on-one/skip-until/{oneOnOneId}/{eventId}: post: tags: - actions operationId: oneOnOneSkipUntil parameters: - name: oneOnOneId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: oneOnOneSkipUntil 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/one-on-one/skip-week/{oneOnOneId}/{eventId}: post: tags: - actions operationId: oneOnOneSkipWeek parameters: - name: oneOnOneId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationKeyRequest' required: true responses: '200': description: oneOnOneSkipWeek 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/plan-work/task/{taskId}: post: tags: - actions operationId: planWork parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: dateTime in: query required: true schema: type: string format: date-time - name: durationMinutes in: query schema: type: integer format: int64 nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: planWork 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/policy/habit/{habitId}: delete: tags: - actions operationId: deleteHabitPolicy parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: deleteHabitPolicy 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/policy/task/{taskId}: delete: tags: - actions summary: Task Actions description: Task Actions operationId: deleteTaskPolicy parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: deleteTaskPolicy 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/prioritize/task/{taskId}: post: tags: - actions operationId: prioritizeTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 responses: '200': description: prioritizeTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/reschedule/habit/event/{eventId}: post: tags: - actions operationId: rescheduleHabitEvent parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: rescheduleHabitEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/reschedule/task/event/{eventId}: post: tags: - actions operationId: rescheduleTaskEvent parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: rescheduleTaskEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' deprecated: true security: - Authorization: [] /api/planner/restart/habit/{habitId}: post: tags: - actions operationId: restartHabit parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: restartHabit 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/restart/task/{taskId}: post: tags: - actions operationId: restartTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: restartTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/skip/habit/event/{eventId}: post: tags: - actions operationId: skipHabitEvent parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: skipHabitEvent 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/start/habit/{habitId}: post: tags: - actions summary: Habit Actions description: Habit Actions operationId: startHabit parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: startHabit 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/start/task/{taskId}: post: tags: - actions operationId: startTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: startTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/stop/habit/{habitId}: post: tags: - actions operationId: stopHabit parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: stopHabit 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/stop/task/{taskId}: post: tags: - actions operationId: stopTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: stopTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/task/reschedule/bulk: post: tags: - actions operationId: taskDeleteMultipleInstanceAndReschedule parameters: - name: notificationKey in: query schema: type: string nullable: true requestBody: content: application/json: schema: $ref: '#/components/schemas/EventList' required: true responses: '200': description: taskDeleteMultipleInstanceAndReschedule 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/task/{calendarId}/{eventId}/reschedule: post: tags: - actions operationId: taskDeleteInstanceAndReschedule parameters: - name: calendarId in: path required: true schema: type: integer format: int64 - name: eventId in: path required: true schema: type: string - name: snoozeOption in: query schema: nullable: true allOf: - $ref: '#/components/schemas/SnoozeOption' - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: taskDeleteInstanceAndReschedule 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/task/{taskId}/clear-snooze: post: tags: - actions operationId: taskClearSnooze parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: taskClearSnooze 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/task/{taskId}/snooze: post: tags: - actions operationId: snoozeTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: snoozeOption in: query schema: nullable: true allOf: - $ref: '#/components/schemas/SnoozeOption' - name: relativeFrom in: query schema: type: string format: date-time nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: snoozeTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/toggle/habit/{habitId}: post: tags: - actions operationId: toggleHabit parameters: - name: habitId in: path required: true schema: type: integer format: int64 - name: enable in: query schema: type: boolean nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: toggleHabit 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/planner/unarchive/task/{taskId}: post: tags: - actions operationId: unarchiveTask parameters: - name: taskId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: unarchiveTask 200 response content: application/json: schema: $ref: '#/components/schemas/PlannerActionIntermediateResult' security: - Authorization: [] /api/sso/provider/{email}: get: tags: - actions operationId: findProvider parameters: - name: email in: path required: true schema: type: string responses: '200': description: findProvider 200 response content: application/json: schema: type: string components: schemas: PlannerActionIntermediateResult: required: - events type: object properties: events: type: array items: $ref: '#/components/schemas/Event' taskOrHabit: nullable: true allOf: - $ref: '#/components/schemas/TaskOrHabit' timeoutReached: type: boolean nullable: true userInfoMessage: type: string nullable: true 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 TaskOrHabit: type: object properties: id: type: integer format: int64 type: $ref: '#/components/schemas/AssistType' created: type: string format: date-time updated: type: string format: date-time recurringAssignmentType: $ref: '#/components/schemas/RecurringAssignmentType' alwaysPrivate: type: boolean title: type: string eventSubType: $ref: '#/components/schemas/EventSubType' eventCategory: $ref: '#/components/schemas/EventCategory' eventColor: $ref: '#/components/schemas/EventColor' invitees: type: array items: $ref: '#/components/schemas/ThinPerson' defendedDescription: type: string additionalDescription: type: string priority: $ref: '#/components/schemas/PriorityLevel' location: type: string discriminator: propertyName: type mapping: TASK: '#/components/schemas/Task' CUSTOM_DAILY: '#/components/schemas/DailyHabit' allOf: - $ref: '#/components/schemas/Prioritizable' - $ref: '#/components/schemas/Snoozeable' - $ref: '#/components/schemas/FlexibleTimeSpan' - $ref: '#/components/schemas/LogContext' 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 Prioritizable: type: object properties: priority: $ref: '#/components/schemas/PriorityLevel' priorityUntil: type: string format: date discriminator: propertyName: prioritizableType mapping: HABIT: '#/components/schemas/DailyHabit' TASK: '#/components/schemas/Task' ONE_ON_ONE: '#/components/schemas/RecurringOneOnOne' NotificationKeyRequest: type: object properties: notificationKey: maxLength: 200 pattern: '[A-Za-z0-9_-]+' type: string nullable: true 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 RsvpResponsePeriod: type: string enum: - SINGLE - FORWARD - ALL FlexibleTimeSpan: type: object properties: durationMin: type: integer format: int32 durationMax: type: integer format: int32 SnoozeOption: type: string enum: - FROM_NOW_15M - FROM_NOW_30M - FROM_NOW_1H - FROM_NOW_2H - FROM_NOW_4H - TOMORROW - IN_TWO_DAYS - NEXT_WEEK 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. EventList: required: - eventKeys type: object properties: eventKeys: type: array items: $ref: '#/components/schemas/EventKey' 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 ThinPerson: required: - email type: object properties: reclaimUser: type: boolean userId: type: string nullable: true email: minLength: 1 type: string name: type: string avatarUrl: type: string firstName: type: string nullable: true lastName: type: string nullable: true 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 LogContext: type: object 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 RsvpResponseBody: required: - responseStatus - sendUpdates type: object properties: responseStatus: $ref: '#/components/schemas/EventResponseStatus' sendUpdates: type: boolean comment: type: string nullable: true period: nullable: true allOf: - $ref: '#/components/schemas/RsvpResponsePeriod' Snoozeable: type: object properties: snoozeUntil: type: string format: date-time nullable: true 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