openapi: 3.0.1 info: title: Reclaim account-time-schemes websocket 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: websocket paths: /ws-relay: post: tags: - websocket operationId: relay parameters: - name: connectionId in: query required: true schema: type: string requestBody: content: application/json: schema: type: array items: type: string format: byte required: true responses: '200': description: relay 200 response content: application/json: schema: type: object /ws/bogus: post: tags: - websocket summary: This is a bogus endpoint that gives us swagger generated objects for our websocket specific classes. description: This is a bogus endpoint that gives us swagger generated objects for our websocket specific classes. operationId: swaggerHelper requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/BogusRequest' - properties: user: $ref: '#/components/schemas/User' required: true responses: '200': description: swaggerHelper 200 response content: application/json: schema: type: object security: - Authorization: [] /ws/connect: post: tags: - websocket operationId: connect_1 parameters: - name: connectionId in: header required: true schema: type: string requestBody: content: application/json: schema: type: object properties: user: $ref: '#/components/schemas/User' required: true responses: '200': description: connect_1 200 response content: application/json: schema: type: object security: - Authorization: [] /ws/default: post: tags: - websocket operationId: defaultHandler responses: '200': description: defaultHandler 200 response content: application/json: schema: type: object /ws/disconnect: post: tags: - websocket operationId: disconnect parameters: - name: connectionId in: header required: true schema: type: string responses: '200': description: disconnect 200 response content: application/json: schema: type: object /ws/subscribe: post: tags: - websocket operationId: subscribe parameters: - name: connectionId in: header required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscribeAction' required: true responses: '200': description: subscribe 200 response content: application/json: schema: $ref: '#/components/schemas/WebSocketResponseEnvelope' /ws/unsubscribe: post: tags: - websocket operationId: unsubscribe_2 parameters: - name: connectionId in: header required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UnsubscribeAction' required: true responses: '200': description: unsubscribe_2 200 response content: application/json: schema: type: object components: schemas: 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 DefaultRsvpAvailability: type: object properties: treatNeedsActionRsvpAs: $ref: '#/components/schemas/AvailabilityType' SchedulingWindowWeeks: type: string enum: - ONE - TWO - THREE - FOUR - FIVE - SIX - SEVEN - EIGHT - NINE - TEN - ELEVEN - TWELVE EventKey: required: - calendarId - eventId type: object properties: eventId: type: string calendarId: type: integer format: int64 WebhookSettings: type: object properties: enabled: type: boolean all: $ref: '#/components/schemas/WebhookSettings' 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 UserInterests: type: object properties: tasks: type: boolean priorities: type: boolean office365: type: boolean calendar: type: boolean asana: type: boolean trello: type: boolean todoist: type: boolean jira: type: boolean linear: type: boolean clickup: type: boolean monday: type: boolean MSTeams: type: boolean AvailabilitySettings: type: object properties: redisCacheEnabled: type: boolean WebSocketRequestAction: type: object discriminator: propertyName: action mapping: subscribe: '#/components/schemas/SubscribeAction' unsubscribe: '#/components/schemas/UnsubscribeAction' UserProfileDepartment: type: string enum: - PRODUCT - ENGINEERING - SUPPORT - MARKETING - SALES - DESIGN - HR - OPERATIONS - ACCOUNTING_AND_FINANCE - FOUNDER - EXECUTIVE_ASSISTANT - IT_SECURITY - OTHER x-deprecated: - OTHER Colorized: type: object properties: color: $ref: '#/components/schemas/EventColor' EventType: type: string enum: - MEETING - WORK - LOGISTICS - PERSONAL TaskAutoWorkflowSettings: type: object properties: category: $ref: '#/components/schemas/TaskAutoWorkflowType' durationToWaitInDays: type: integer format: int32 RecurringAssignmentType: type: string enum: - ONE_ON_ONE - DAILY_HABIT - TASK AsanaSettings: type: object properties: enabled: type: boolean TimezonePreference: type: string enum: - USE_PRIMARY_CALENDAR_TZ - USE_RECLAIM_TZ UserProvisioningDetails: required: - hasTeamProvisionedMetadata type: object properties: hasTeamProvisionedMetadata: type: boolean PriorityLevel: type: string enum: - P1 - P2 - P3 - P4 - PRIORITIZE - DEFAULT x-deprecated: - PRIORITIZE - DEFAULT 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 UserMetadataUsecase: type: string enum: - EDUCATION - WORK - NON_PROFIT - TEAM - SOLO_WORK - PERSONAL x-deprecated: - EDUCATION - NON_PROFIT ExperimentalSettings: type: object properties: treatOptionalSmartMeetingAttendeesAsFree: type: boolean lookAheadForSmartMeetingIdealDayOnWeeklyMeetings: type: boolean 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 PrioritiesSettings: type: object properties: enabled: type: boolean EventDisplayPreferences: required: - attribution - busyEmoji - description - doneEmoji - freeEmoji - lockEmoji - prefix - progressEmoji - warningEmoji type: object properties: progressEmoji: type: boolean lockEmoji: type: boolean freeEmoji: type: boolean busyEmoji: type: boolean doneEmoji: type: boolean warningEmoji: type: boolean description: type: boolean attribution: type: boolean prefix: type: boolean SchedulingWindowWeeksOverride: type: string enum: - ONE - TWO - THREE - FOUR - FIVE - SIX - SEVEN - EIGHT - NINE - TEN - ELEVEN - TWELVE UserAccountLock.AccountLockType: type: string enum: - PIPELINE_MIGRATION SignupMethod: type: string enum: - SCIM - ADMIN_API - SLACK - SELF AssistPlanned: required: - endTime - notificationKeys - startTime type: object properties: startTime: type: string format: date-time endTime: type: string format: date-time notificationKeys: type: array items: type: string events: type: array items: $ref: '#/components/schemas/Event' UserMetadata: type: object properties: jobTitle: type: string companyName: type: string companySize: $ref: '#/components/schemas/UserMetadataCompanySize' usecase: $ref: '#/components/schemas/UserMetadataUsecase' role: nullable: true allOf: - $ref: '#/components/schemas/UserProfileRole' goals: type: array items: $ref: '#/components/schemas/UserProfileGoal' isWorkspace: type: boolean department: nullable: true allOf: - $ref: '#/components/schemas/UserProfileDepartment' orgMetadata: $ref: '#/components/schemas/OrgMetadata' UserMetadataCompanySize: type: string enum: - SUB_10 - SUB_50 - SUB_100 - SUB_500 - SUB_1000 - THOUSAND_PLUS EventResponseStatus: type: string enum: - None - Organizer - Accepted - Declined - TentativelyAccepted - NotResponded x-enum-varnames: - None - Organizer - Accepted - Declined - TentativelyAccepted - NotResponded CalendarEntrySettings: type: object properties: pipelineEnabled: type: boolean pipelineWatchEnabled: type: boolean autoMigrate: type: boolean shouldMigrate: type: boolean selfServiceMigrate: type: boolean dailyAudit: type: boolean microsoftPipelineBatching: type: boolean scoredTopContacts: type: boolean googleGhCutoff: type: boolean usePipelineCleanCalendar: type: boolean dedicatedUpsertEnabled: type: boolean DetailedEntitlements: type: object properties: unlimitedHabitsEnabled: $ref: '#/components/schemas/EntitlementDetails' unlimitedSyncEnabled: $ref: '#/components/schemas/EntitlementDetails' unlimitedConnectedCalendarsEnabled: $ref: '#/components/schemas/EntitlementDetails' customSyncTransparencyEnabled: $ref: '#/components/schemas/EntitlementDetails' smart11CreationEnabled: $ref: '#/components/schemas/EntitlementDetails' customSlackSyncStatusEnabled: $ref: '#/components/schemas/EntitlementDetails' customConferenceBufferTitleEnabled: $ref: '#/components/schemas/EntitlementDetails' linearEnabled: $ref: '#/components/schemas/EntitlementDetails' jiraEnabled: $ref: '#/components/schemas/EntitlementDetails' todoistEnabled: $ref: '#/components/schemas/EntitlementDetails' asanaEnabled: $ref: '#/components/schemas/EntitlementDetails' clickupEnabled: $ref: '#/components/schemas/EntitlementDetails' trelloEnabled: $ref: '#/components/schemas/EntitlementDetails' mondayEnabled: $ref: '#/components/schemas/EntitlementDetails' AssistSettings: type: object properties: travel: type: boolean otherTravelDuration: type: integer format: int32 conferenceBuffer: type: boolean conferenceBufferDuration: type: integer format: int32 assignmentPaddingDuration: type: integer format: int32 conferenceBufferPrivate: type: boolean conferenceBufferType: $ref: '#/components/schemas/ConferenceBufferType' customConferenceBufferTitle: type: string focus: type: boolean allOneOnOnesBusy: type: boolean autoLockForMeetings: $ref: '#/components/schemas/AutoLock' autoLockForNonMeetings: $ref: '#/components/schemas/AutoLock' sendMeetingNotifications: type: boolean useFreeBusyEmojis: type: boolean useLockEmoji: type: boolean includeDescription: type: boolean includeAttribution: type: boolean smartSeries: type: boolean smartMeetingRecurrenceType: $ref: '#/components/schemas/SmartSeriesRecurrenceType' smartHabitRecurrenceType: $ref: '#/components/schemas/SmartSeriesRecurrenceType' showClassicHabits: type: boolean allowSmartSeriesOptIn: type: boolean smartSeriesMigrateComplete: type: boolean neverSeenClassicHabits: type: boolean notificationSettings: $ref: '#/components/schemas/AssistNotificationSettings' assistDays: type: integer format: int32 bypassed: type: boolean dayZero: type: string format: date schedulerDisabled: type: boolean schedulerSuppressedUntil: type: string format: date-time schedulerSuppressed: type: boolean rescheduleUnstarted: type: boolean rescheduleUnstartedOkToSchedule: type: boolean dampSmartMeetings: type: boolean scheduleSmartMeetingsAtMostDaily: type: boolean scheduleSmartMeetingsOnce: type: boolean manualAssistRunsEnabled: type: boolean schedulerWindowWeeks: nullable: true allOf: - $ref: '#/components/schemas/SchedulingWindowWeeksOverride' extendedSmartMeetingCooldown: type: boolean includeOrganizerInSmartSeries: type: boolean deprecated: true debugScheduler: type: boolean smartHabitGen2ToGen3MigrationDate: type: string format: date-time smartMeetingGen2ToGen3MigrationDate: type: string format: date-time gen1HabitsAndMeetingsToGen3AutoMigrate: type: boolean smartHabitsToGen3AutoMigrate: type: boolean smartMeetingsToGen3AutoMigrate: type: boolean SubscriptionType: type: string enum: - Events - CalendarEvents - SyncStatus - DailyHabit - OneOnOne - Task - AssistCompleted - AssistPlanned - NewSubscription - Moment - Quest - ProductUsage - User - Team - SchedulingLink - Analytics - SmartMeeting - SmartHabit - Unsubscribe - AssistantInteraction - UserReset - PipelineMigration - ProactiveGtd - ActionItemCreation - AssistMigration x-enum-varnames: - Events - CalendarEvents - SyncStatus - DailyHabit - OneOnOne - Task - AssistCompleted - AssistPlanned - NewSubscription - Moment - Quest - ProductUsage - User - Team - SchedulingLink - Analytics - SmartMeeting - SmartHabit - Unsubscribe - AssistantInteraction - UserReset - PipelineMigration - ProactiveGtd - ActionItemCreation - AssistMigration DayOfWeek: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY AdventureSetting: required: - complete type: object properties: complete: type: boolean AssistNotificationSettings: required: - detectedDigest - instanceChanges - instanceWindowInDays - needsAttentionDigest type: object properties: instanceChanges: type: boolean instanceWindowInDays: type: integer format: int32 needsAttentionDigest: type: boolean detectedDigest: type: boolean User: required: - edition - editionUsage - schedulerWindowWeeks - sku type: object properties: id: type: string email: type: string principal: type: string provider: type: string baseProvider: type: string name: type: string firstName: type: string entitlements: $ref: '#/components/schemas/Entitlements' detailedEntitlements: $ref: '#/components/schemas/DetailedEntitlements' editionEntitlements: properties: MAX_TEAM_SIZE: $ref: '#/components/schemas/EntitlementValue_Object_' SCHEDULER_WEEKS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_TASKS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_CALENDARS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_SYNCS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_HABITS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_TASKS_WEEK: $ref: '#/components/schemas/EntitlementValue_Object_' TRAVEL_TIME: $ref: '#/components/schemas/EntitlementValue_Object_' DECOMPRESSION_TIME: $ref: '#/components/schemas/EntitlementValue_Object_' CUSTOM_BLOCKING: $ref: '#/components/schemas/EntitlementValue_Object_' CUSTOM_BLOCKING_DECOMPRESSION: $ref: '#/components/schemas/EntitlementValue_Object_' CUSTOM_BLOCKING_HABITS: $ref: '#/components/schemas/EntitlementValue_Object_' CUSTOM_BLOCKING_CALENDAR_SYNC: $ref: '#/components/schemas/EntitlementValue_Object_' CUSTOM_SLACK_STATUS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_SCHEDULING_LINKS: $ref: '#/components/schemas/EntitlementValue_Object_' DERIVATIVE_SCHEDULING_LINKS: $ref: '#/components/schemas/EntitlementValue_Object_' SCHEDULING_LINK_SURVEY: $ref: '#/components/schemas/EntitlementValue_Object_' SCHEDULING_LINK_REDIRECT: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_SCHEDULING_LINK_MEETINGS_QUARTER: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_1_ON_1_ORGANIZE: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_1_ON_1_ATTEND: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_CUSTOM_TIME_SCHEMES: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATIONS: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_GOOGLE_TASKS: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_GOOGLE_ADD_ON: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_SLACK: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_RAYCAST: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_ZOOM: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_TODOIST: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_LINEAR: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_JIRA: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_CLICKUP: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_ASANA: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_OFFICE_365: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_MONDAY: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_TRELLO: $ref: '#/components/schemas/EntitlementValue_Object_' INTEGRATION_DROPBOX: $ref: '#/components/schemas/EntitlementValue_Object_' SUPPORT: $ref: '#/components/schemas/EntitlementValue_Object_' SSO: $ref: '#/components/schemas/EntitlementValue_Object_' TEAM_ANALYTICS: $ref: '#/components/schemas/EntitlementValue_Object_' EVENT_PREFERENCES: $ref: '#/components/schemas/EntitlementValue_Object_' DELEGATED_ACCESS: $ref: '#/components/schemas/EntitlementValue_Object_' SCHEDULING_LINK_ROUND_ROBIN: $ref: '#/components/schemas/EntitlementValue_Object_' SCHEDULING_LINK_BRANDING: $ref: '#/components/schemas/EntitlementValue_Object_' SMART_MEETING_ATTENDEE_USERS: $ref: '#/components/schemas/EntitlementValue_Object_' WEBHOOKS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_STATS_WINDOW: $ref: '#/components/schemas/EntitlementValue_Object_' FOCUS_TIME: $ref: '#/components/schemas/EntitlementValue_Object_' OOO_CALENDAR: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_AGENTS: $ref: '#/components/schemas/EntitlementValue_Object_' MAX_DAILY_LLM_COST_MICROS: $ref: '#/components/schemas/EntitlementValue_Object_' PROACTIVE_LLM: $ref: '#/components/schemas/EntitlementValue_Object_' MCP: $ref: '#/components/schemas/EntitlementValue_Object_' lastName: type: string avatarUrl: type: string admin: type: boolean slackEnabled: type: boolean impersonated: type: boolean timestampOffsetMs: type: integer format: int64 features: $ref: '#/components/schemas/UserSettings' settings: $ref: '#/components/schemas/Settings' metadata: $ref: '#/components/schemas/UserMetadata' created: type: string format: date-time deleted: type: string format: date-time onboarded: type: boolean trackingCode: type: string locale: type: string likelyPersonal: type: boolean apiKey: type: string sku: deprecated: true allOf: - $ref: '#/components/schemas/ReclaimEdition' edition: $ref: '#/components/schemas/ReclaimEdition' editionAfterTrial: nullable: true allOf: - $ref: '#/components/schemas/ReclaimEdition' editionUsage: $ref: '#/components/schemas/ReclaimEdition' preDowngradeEditionUsage: $ref: '#/components/schemas/ReclaimEdition' overage: type: boolean logContextUser: nullable: true allOf: - $ref: '#/components/schemas/ObservedUser' refCode: type: string hostedDomain: type: string nullable: true primaryCalendar: nullable: true allOf: - $ref: '#/components/schemas/ThinCalendar' primaryCalendarId: type: string timezone: type: string startOfWeek: $ref: '#/components/schemas/DayOfWeek' usingDelegatedAccess: type: boolean firstLogin: type: string format: date-time nullable: true signupMethod: nullable: true allOf: - $ref: '#/components/schemas/SignupMethod' providerCreated: type: string format: date-time nullable: true schedulerWindowWeeks: $ref: '#/components/schemas/SchedulingWindowWeeks' userDateTimeFormatter: $ref: '#/components/schemas/UserDateTimeFormatter' userProvisioningDetails: $ref: '#/components/schemas/UserProvisioningDetails' EventStatus: type: string enum: - PUBLISHED - CANCELLED TaskAutoWorkflowType: type: string enum: - NOTHING - REOPEN - CLOSE MicrosoftSettings: type: object properties: smartSeriesDetectionEnabled: type: boolean useFullyExpandedSeriesMasterForInterop: type: boolean resolveReclaimForNonMemberUsingCalendarView: type: boolean GoogleAddOnSettings: type: object properties: enabled: type: boolean UserProfileGoal: type: string enum: - HEADS_DOWN_TIME - MEETINGS - WORK_LIFE_BALANCE - MULTIPLE_CALENDARS TimezoneSettings: required: - timeZonePreference type: object properties: zoneId: type: string nullable: true timeZonePreference: $ref: '#/components/schemas/TimezonePreference' timezonePreference: $ref: '#/components/schemas/TimezonePreference' EntitlementDetails: required: - minimumEdition - name type: object properties: minimumEdition: type: string name: type: string enabledForUser: type: boolean ConferenceBufferType: type: string enum: - ALL_MEETINGS - CONFERENCE_MEETINGS UserDateTimeFormatter: type: object properties: locale: type: string AvailabilityType: type: string enum: - BUSY - FREE Subscription: type: object properties: subscriptionType: $ref: '#/components/schemas/SubscriptionType' discriminator: propertyName: subscriptionType mapping: Task: '#/components/schemas/TaskSubscription' ActionItemCreation: '#/components/schemas/ActionItemCreationSubscription' User: '#/components/schemas/UserSubscription' AssistCompleted: '#/components/schemas/AssistCompletedSubscription' ProductUsage: '#/components/schemas/ProductUsageSubscription' AssistantInteraction: '#/components/schemas/AssistantInteractionSubscription' AssistPlanned: '#/components/schemas/AssistPlannedSubscription' ProactiveGtd: '#/components/schemas/ProactiveGtdSubscription' SyncStatus: '#/components/schemas/SyncStatusSubscription' SmartHabit: '#/components/schemas/SmartHabitSubscription' SchedulingLink: '#/components/schemas/SchedulingLinkSubscription' Quest: '#/components/schemas/QuestSubscription' Analytics: '#/components/schemas/AnalyticsSubscription' DailyHabit: '#/components/schemas/DailyHabitSubscription' OneOnOne: '#/components/schemas/OneOnOneSubscription' Moment: '#/components/schemas/MomentSubscription' Events: '#/components/schemas/EventsSubscription' UserReset: '#/components/schemas/UserResetSubscription' AssistMigration: '#/components/schemas/AssistMigrationSubscription' Team: '#/components/schemas/TeamSubscription' CalendarEvents: '#/components/schemas/CalendarEventsSubscription' PipelineMigration: '#/components/schemas/PipelineMigrationSubscription' SmartMeeting: '#/components/schemas/SmartMeetingSubscription' SyncFeatureSettings: type: object properties: enabled: type: boolean hasVipPrivileges: type: boolean daysBackwardOverride: type: integer format: int32 AssistType: type: string enum: - TASK - CUSTOM_DAILY - CATCHUP_AM - CATCHUP_PM - LUNCH - FOCUS - TRAVEL_PRE - TRAVEL_POST - CONBUF - SMART_HABIT - SMART_MEETING - RECLAIM_FOCUS GoogleCalendarEventMetadata: required: - guestsCanInviteOthers - guestsCanModify - guestsCanSeeOtherGuests type: object properties: guestsCanModify: type: boolean guestsCanInviteOthers: type: boolean guestsCanSeeOtherGuests: type: boolean SlackStatusSetting: type: object properties: emoji: type: string template: type: string dnd: type: boolean enabled: type: boolean UserPostOnboard: type: object properties: welcomed: $ref: '#/components/schemas/UserPostOnboardState' focus: $ref: '#/components/schemas/UserPostOnboardState' hours: $ref: '#/components/schemas/UserPostOnboardState' habits: $ref: '#/components/schemas/UserPostOnboardState' firstTask: $ref: '#/components/schemas/UserPostOnboardState' integration: $ref: '#/components/schemas/UserPostOnboardState' smartMeetings: $ref: '#/components/schemas/UserPostOnboardState' schedulingLinks: $ref: '#/components/schemas/UserPostOnboardState' slackStatusSync: $ref: '#/components/schemas/UserPostOnboardState' travelTime: $ref: '#/components/schemas/UserPostOnboardState' zoom: $ref: '#/components/schemas/UserPostOnboardState' connectCalendars: $ref: '#/components/schemas/UserPostOnboardState' colors: $ref: '#/components/schemas/UserPostOnboardState' reclaimFree: $ref: '#/components/schemas/UserPostOnboardState' guidedTours: $ref: '#/components/schemas/UserPostOnboardState' AnalyticsSettings: type: object properties: teamAnalyticsV4ViewEnabled: type: boolean teamAnalyticsV4FiltersEnabled: type: boolean AutoLock: type: string enum: - 'OFF' - SAME_DAY - SAME_WEEK - TOMORROW - ROLLING_3_DAYS QuestSettings: type: object properties: enabled: type: boolean SchedulingLinkSettings: type: object properties: enabled: type: boolean note: type: string remindersMigrated: type: boolean messageTemplates: type: object additionalProperties: type: string nameVisibility: nullable: true allOf: - $ref: '#/components/schemas/SchedulingLinkNameVisibility' DateFieldOrder: type: string enum: - MDY - DMY - YMD TaskDefaults: type: object properties: timeChunksRequired: type: integer format: int32 commsTimeChunksRequired: type: integer format: int32 delayedStartInMinutes: type: integer format: int32 dueInDays: type: integer format: int32 nullable: true category: deprecated: true allOf: - $ref: '#/components/schemas/EventCategory' alwaysPrivate: type: boolean minChunkSize: type: integer format: int32 maxChunkSize: type: integer format: int32 timeSchemeId: type: string nullable: true priority: type: string onDeck: type: boolean splitUp: type: boolean googleTaskIntegrationNoDueDateWhenMissing: type: boolean UserOnboard: type: object properties: habits: type: boolean tasks: type: boolean googleTasks: type: boolean planItemPrioritized: type: boolean smartOneOnOnes: type: boolean bufferTime: type: boolean tasksReindex: type: boolean googleAddOn: type: boolean v16Scheduler: type: boolean helpMenus: type: boolean smartMeetingsJustNewQuest: type: boolean smartHabitsJustNewQuest: type: boolean smartMeetingsNavItem: type: boolean smartMeetingsPricingWarning: type: boolean showDowngradeAcknowledgement: type: boolean showUpgradeRestoreModal: type: boolean setupGuideV2: type: boolean accountAndPersonalSettings: type: boolean webhooks: type: boolean focus: type: boolean eventCreationInPlanner: type: boolean assistantIntegrations: type: boolean assistMigrationWelcomePending: type: boolean assistantPreviewChanges: type: boolean schedulingLinks: type: boolean Entitlements: type: object properties: unlimitedHabitsEnabled: type: boolean unlimitedConnectedCalendarsEnabled: type: boolean unlimitedSyncEnabled: type: boolean customSyncTransparencyEnabled: type: boolean smart11CreationEnabled: type: boolean customSlackSyncStatusEnabled: type: boolean customConferenceBufferTitleEnabled: type: boolean schedulingLinkSurveyEnabled: type: boolean maxDaysAheadForSchedulingLinks: type: integer format: int32 linearEnabled: type: boolean jiraEnabled: type: boolean todoistEnabled: type: boolean asanaEnabled: type: boolean clickupEnabled: type: boolean trelloEnabled: type: boolean mondayEnabled: type: boolean dropboxEnabled: type: boolean SSOEnabled: type: boolean ColorsSettings: type: object properties: enabled: type: boolean categoriesEnabled: type: boolean lastModified: type: string format: date-time priorities: type: object additionalProperties: $ref: '#/components/schemas/EventColor' categories: type: object additionalProperties: $ref: '#/components/schemas/EventColor' OrgMetadata.OrgManager: required: - displayName - managerId - ref type: object properties: managerId: type: string displayName: type: string ref: type: string 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 UserAccountLock: required: - accountLockType - lockMessage type: object properties: accountLockType: $ref: '#/components/schemas/UserAccountLock.AccountLockType' lockMessage: type: string SmartSeriesRecurrenceType: type: string enum: - SINGLE_INSTANCES - RECURRING_SERIES WebSocketResponseEnvelope: required: - compressed - data - delete - notificationKeys - subscriptionId - type type: object properties: data: {} delete: type: boolean type: $ref: '#/components/schemas/SubscriptionType' compressed: type: boolean subscriptionId: type: string nullable: true notificationKeys: type: array items: type: string CalendarPermissionSettings: type: object properties: enabled: type: boolean TaskSettings: required: - defaults type: object properties: enabled: type: boolean googleTasks: type: boolean defaults: $ref: '#/components/schemas/TaskDefaults' autoWorkflowSettings: $ref: '#/components/schemas/TaskAutoWorkflowSettings' scheduleWorkQueueOnly: type: boolean cooldown: $ref: '#/components/schemas/TaskCooldown' 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. TaskCooldown: type: string enum: - NONE - LEGACY - HALF_HOUR - ONE_HOUR - TWO_HOURS - FOUR_HOURS - ONCE_A_DAY EventCategory: $ref: '#/components/schemas/Colorized' ThinCalendar: required: - calendarId - credentialEmail - credentialId - id - lastSynced - timezone type: object properties: id: type: integer format: int64 timezone: type: string calendarId: type: string lastSynced: type: string format: date-time credentialId: type: integer format: int64 credentialEmail: type: string SlotScorerVersion: type: string enum: - V1 ResponseStatus: type: string enum: - DECLINED - NEEDS_ACTION - TENTATIVE - ACCEPTED - UNKNOWN UserProfileRole: type: string enum: - EXEC - MANAGER - NON_MANAGER - CONSULTANT - STUDENT 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 AppNotificationsSettings: type: object properties: enabled: type: boolean unscheduledPriority: type: boolean audioAlertEnabled: type: boolean titleTagAlertEnabled: type: boolean UserSettings: required: - accountLocks - analyticsSettings - appNotifications - asana - assistSettings - assistant - availabilitySettings - billing - calendar - calendarEntrySettings - calendarPermissionSettings - colors - dropboxSettings - eventDisplayPreferences - experimentalSettings - focus - googleAddOnSettings - interests - microsoft - onboard - postOnboard - priorities - projects - quests - rsvpSetting - schedulingLinks - slackSettings - smartOneOnOnes - sync - taskSettings - temporal - timezoneSettings - todoistSettings - webhookSettings - weeklyReport type: object properties: assistSettings: $ref: '#/components/schemas/AssistSettings' scheduler: type: integer format: int32 prioritizationEnabled: type: boolean extraScopes: type: boolean peopleScopes: type: boolean directoryScopes: type: boolean taskSettings: $ref: '#/components/schemas/TaskSettings' priorities: $ref: '#/components/schemas/PrioritiesSettings' colors: $ref: '#/components/schemas/ColorsSettings' calendar: $ref: '#/components/schemas/CalendarSettings' focus: $ref: '#/components/schemas/FocusSettings' asana: $ref: '#/components/schemas/AsanaSettings' webhookSettings: $ref: '#/components/schemas/WebhookSettings' billing: $ref: '#/components/schemas/BillingSettings' projects: $ref: '#/components/schemas/ProjectsSettings' sync: $ref: '#/components/schemas/SyncFeatureSettings' slackSettings: $ref: '#/components/schemas/SlackSettings' todoistSettings: $ref: '#/components/schemas/TodoistSettings' appNotifications: $ref: '#/components/schemas/AppNotificationsSettings' interests: $ref: '#/components/schemas/UserInterests' onboard: $ref: '#/components/schemas/UserOnboard' postOnboard: $ref: '#/components/schemas/UserPostOnboard' weeklyReport: $ref: '#/components/schemas/WeeklyReport' smartOneOnOnes: $ref: '#/components/schemas/SmartOneOnOneSettings' schedulingLinks: $ref: '#/components/schemas/SchedulingLinkSettings' quests: $ref: '#/components/schemas/QuestSettings' googleAddOnSettings: $ref: '#/components/schemas/GoogleAddOnSettings' calendarEntrySettings: $ref: '#/components/schemas/CalendarEntrySettings' microsoft: $ref: '#/components/schemas/MicrosoftSettings' eventDisplayPreferences: $ref: '#/components/schemas/EventDisplayPreferences' timezoneSettings: $ref: '#/components/schemas/TimezoneSettings' rsvpSetting: $ref: '#/components/schemas/RSVPSetting' experimentalSettings: $ref: '#/components/schemas/ExperimentalSettings' dropboxSettings: $ref: '#/components/schemas/DropboxSettings' assistant: $ref: '#/components/schemas/ScheduleAssistantSettings' availabilitySettings: $ref: '#/components/schemas/AvailabilitySettings' calendarPermissionSettings: $ref: '#/components/schemas/CalendarPermissionSettings' analyticsSettings: $ref: '#/components/schemas/AnalyticsSettings' temporal: $ref: '#/components/schemas/TemporalSettings' accountLocks: type: array items: $ref: '#/components/schemas/UserAccountLock' adventures: $ref: '#/components/schemas/UserAdventures' appNotificationsSettings: $ref: '#/components/schemas/AppNotificationsSettings' maskSuppressUntil: type: string format: date-time availableMeetingTimes: type: array items: type: integer format: int32 FocusSettings: type: object properties: enabled: type: boolean debug: type: boolean 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 BogusRequest: required: - assistCompleted - assistPlanned - envelope type: object properties: envelope: $ref: '#/components/schemas/WebSocketResponseEnvelope' assistCompleted: $ref: '#/components/schemas/AssistCompleted' assistPlanned: $ref: '#/components/schemas/AssistPlanned' EntitlementValue_Object_: required: - nextEdition - nextValue - value type: object properties: value: {} nextValue: nullable: true nextEdition: nullable: true allOf: - $ref: '#/components/schemas/ReclaimEdition' RSVPSetting: type: object properties: calendarSync: $ref: '#/components/schemas/DefaultRsvpAvailability' UnsubscribeAction: type: object allOf: - $ref: '#/components/schemas/WebSocketRequestAction' - properties: subscriptionId: type: string AssistStatus: type: string enum: - CONTROLLED - RELEASED - ARCHIVED TodoistSettings: type: object properties: apiV1Enabled: type: boolean Settings: type: object properties: autoAddHangouts: type: boolean defaultEventLength: type: integer format: int32 weekStart: type: integer format: int32 format24HourTime: type: boolean locale: type: string showDeclinedEvents: type: boolean timezone: type: string dateFieldOrder: $ref: '#/components/schemas/DateFieldOrder' OrgMetadata: type: object properties: employeeNumber: type: string nullable: true costCenter: type: string nullable: true organization: type: string nullable: true division: type: string nullable: true department: type: string nullable: true manager: nullable: true allOf: - $ref: '#/components/schemas/OrgMetadata.OrgManager' customValues: type: object additionalProperties: true nullable: true UserPostOnboardState: type: string enum: - NEVER_SHOWN - NEVER_INTERACTED - PASS - CHECK - CTA AssistCompleted: required: - endTime - notificationKeys - startTime type: object properties: startTime: type: string format: date-time endTime: type: string format: date-time notificationKeys: type: array items: type: string events: type: array items: $ref: '#/components/schemas/Event' description: Notification for websocket clients. SubscribeAction: type: object allOf: - $ref: '#/components/schemas/WebSocketRequestAction' - properties: subscription: $ref: '#/components/schemas/Subscription' subscriptionId: type: string DropboxSettings: type: object properties: enabled: type: boolean SlackOutsideHoursSetting: required: - dnd - policy type: object properties: policy: type: string message: type: string nullable: true dnd: type: boolean BillingSettings: type: object properties: enabled: type: boolean UserAdventures: type: object properties: adventures: properties: CORE_CONCEPTS: $ref: '#/components/schemas/AdventureSetting' CONNECT_PRIMARY_CALENDAR: $ref: '#/components/schemas/AdventureSetting' ADD_AGENT: $ref: '#/components/schemas/AdventureSetting' ADD_FOCUS_TIME: $ref: '#/components/schemas/AdventureSetting' ADD_BUFFERS: $ref: '#/components/schemas/AdventureSetting' ADD_HABIT: $ref: '#/components/schemas/AdventureSetting' HEAVY_MEETING_LOAD: $ref: '#/components/schemas/AdventureSetting' CONNECT_CALENDARS: $ref: '#/components/schemas/AdventureSetting' CALENDAR_SYNC: $ref: '#/components/schemas/AdventureSetting' SHARED_CALENDARS: $ref: '#/components/schemas/AdventureSetting' SCHEDULING_LINKS: $ref: '#/components/schemas/AdventureSetting' SCHEDULING_LINK_SETTINGS: $ref: '#/components/schemas/AdventureSetting' HOURS: $ref: '#/components/schemas/AdventureSetting' PROFILE: $ref: '#/components/schemas/AdventureSetting' PERMISSIONS: $ref: '#/components/schemas/AdventureSetting' SLACK: $ref: '#/components/schemas/AdventureSetting' INTEGRATIONS: $ref: '#/components/schemas/AdventureSetting' TASK_INTEGRATIONS: $ref: '#/components/schemas/AdventureSetting' CHAT: $ref: '#/components/schemas/AdventureSetting' LOG_WORK: $ref: '#/components/schemas/AdventureSetting' PREVIEW_MODE: $ref: '#/components/schemas/AdventureSetting' SchedulingLinkNameVisibility: type: string enum: - NEVER - USER_IS_LINK_OWNER - VISIBLE_TO_TEAM_MEMBERS - VISIBLE_ON_TEAM_MEMBERS_LINKS - ALWAYS SlackSettings.StatusSync: type: string enum: - 'OFF' - DEFAULT - BUSY - CUSTOM - TEAM ProjectsSettings: type: object properties: enabled: type: boolean SmartOneOnOneSettings: type: object properties: enabled: type: boolean EventColor: type: string enum: - NONE - LAVENDER - SAGE - GRAPE - FLAMINGO - BANANA - TANGERINE - PEACOCK - GRAPHITE - BLUEBERRY - BASIL - TOMATO PrioritySource: type: string enum: - MANUAL - AI - RULES ScheduleAssistantScoringSettings: type: object properties: version: $ref: '#/components/schemas/SlotScorerVersion' ReclaimEdition: type: string enum: - NONE - TRIAL - ASSISTANT - PRO - TEAM - REWARD - LEGACY_PRO_TRIAL - LEGACY_TEAM_TRIAL - LITE - STARTER - BUSINESS - TRIAL_BUSINESS - TRIAL_BUSINESS_12W - TRIAL_BUSINESS_FOR_LEGACY_PLANS - ENTERPRISE - TEAM_REWARD - LITE_V2 - LITE_V3 SlackSettings: type: object properties: enabled: type: boolean newSlackExperienceEnabled: type: boolean customSlackStatusWaterMark: type: string nullable: true previousStatusWaterMarks: type: array nullable: true items: type: string oooMessageTemplate: type: string nullable: true personalSyncNotifyNew: type: boolean personalSyncNotifyUpdated: type: boolean personalSyncNotifyDeleted: type: boolean personalSyncNotificationsIncludingSelf: type: boolean habitNotifyUpcoming: type: boolean taskNotifyUpcoming: type: boolean travelNotify: type: boolean outsideHoursMigrated: type: boolean statusSync: $ref: '#/components/schemas/SlackSettings.StatusSync' statusEnabled: type: boolean privateStatus: $ref: '#/components/schemas/SlackStatusSetting' statuses: type: object additionalProperties: $ref: '#/components/schemas/SlackStatusSetting' outSideHours: $ref: '#/components/schemas/SlackOutsideHoursSetting' stopNotifyingDisappearingAfterByType: type: object additionalProperties: type: string format: date ObservedUser: type: object allOf: - $ref: '#/components/schemas/LogContext' - properties: id: type: string trackingCode: type: string edition: $ref: '#/components/schemas/ReclaimEdition' TemporalSettings: type: object properties: eventTransitionsEnabled: type: boolean CalendarSettings: type: object properties: enabled: type: boolean calendarCleanupRunning: type: string format: date-time LockState: type: string enum: - MANUALLY_LOCKED - ADJUSTED - UPCOMING_WINDOW - MANUALLY_UNLOCKED - DELETED - DECLINED - IN_THE_PAST 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 PlatformEventType: type: string enum: - DEFAULT - OUT_OF_OFFICE - FROM_MAIL - WORKING_LOCATION - FOCUS_TIME - BIRTHDAY ScheduleAssistantSettings: type: object properties: enabled: type: boolean calendarUIEnabled: type: boolean scoringSettings: $ref: '#/components/schemas/ScheduleAssistantScoringSettings' experimentalFeaturesEnabled: type: boolean mcpDebug: type: boolean disableBackgroundAutomation: type: boolean orgRelationshipsEnabled: type: boolean enableExternalLlm: type: boolean selfServiceMigrationEnabled: type: boolean persistedToolApprovalsEnabled: type: boolean WeeklyReport: type: object properties: enabled: type: boolean sendReport: type: boolean securitySchemes: Authorization: type: oauth2