openapi: 3.0.1 info: title: Reclaim account-time-schemes smart-meetings 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: smart-meetings paths: /api/smart-meetings: get: tags: - smart-meetings operationId: findAllSmartMeetings responses: '200': description: findAllSmartMeetings 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] post: tags: - smart-meetings operationId: createSmartMeeting parameters: - name: sendUpdates in: query schema: type: boolean nullable: true - name: notificationKey in: query schema: type: string nullable: true requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSmartMeetingRequest' required: true responses: '200': description: createSmartMeeting 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/attendeeDeclined: get: tags: - smart-meetings operationId: findAllAttendeeDeclinedSmartMeetings responses: '200': description: findAllAttendeeDeclinedSmartMeetings 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/availability/{seriesId}: get: tags: - smart-meetings operationId: availabilityReport parameters: - name: seriesId in: path required: true schema: type: integer format: int64 - name: start in: query required: true schema: type: string format: date - name: end in: query required: true schema: type: string format: date responses: '200': description: availabilityReport 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/TentativeSlot' security: - Authorization: [] /api/smart-meetings/convert/{calendarId}/{eventId}: post: tags: - smart-meetings operationId: convertToSmartMeetings 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/CreateSmartMeetingRequest' required: true responses: '200': description: convertToSmartMeetings 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/detect: get: tags: - smart-meetings operationId: detectSmartMeetings parameters: - name: onboarding in: query schema: type: boolean nullable: true responses: '200': description: detectSmartMeetings 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/invite-organizer: post: tags: - smart-meetings operationId: inviteOrganizer parameters: - name: lineageIds in: query required: true schema: type: array items: type: integer format: int64 responses: '200': description: inviteOrganizer 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-meetings/planner/{eventId}/lock: post: tags: - smart-meetings operationId: lockMeetingInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: lockMeetingInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{eventId}/move: post: tags: - smart-meetings operationId: moveMeetingInstance_1 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: moveMeetingInstance_1 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{eventId}/reschedule: post: tags: - smart-meetings operationId: rescheduleMeetingInstance_1 parameters: - name: eventId in: path required: true schema: type: string - name: snoozeOption in: query required: true schema: $ref: '#/components/schemas/SnoozeOption' - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: rescheduleMeetingInstance_1 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{eventId}/reschedule/any-other-time: post: tags: - smart-meetings operationId: rescheduleAnyOtherTimeMeetingInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: rescheduleAnyOtherTimeMeetingInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{eventId}/skip: post: tags: - smart-meetings operationId: skipMeetingInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: skipMeetingInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{eventId}/unlock: post: tags: - smart-meetings operationId: unlockMeetingInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: unlockMeetingInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{lineageId}/clear-exceptions: post: tags: - smart-meetings operationId: resetSchedule_1 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: resetSchedule_1 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-meetings/planner/{seriesId}/clear-force-skipped: post: tags: - smart-meetings operationId: clearForceSkipped_1 parameters: - name: seriesId in: path required: true schema: type: integer format: int64 - name: date in: query required: true schema: type: string format: date - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: clearForceSkipped_1 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-meetings/planner/{seriesId}/clear-time-policy-exceptions: post: tags: - smart-meetings operationId: clearTimePolicyExceptions_1 parameters: - name: seriesId in: path required: true schema: type: integer format: int64 - name: date in: query required: true schema: type: string format: date - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: clearTimePolicyExceptions_1 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-meetings/to-single-instances: post: tags: - smart-meetings operationId: convertToSingleInstances_2 responses: '200': description: convertToSingleInstances_2 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/{lineageId}: get: tags: - smart-meetings operationId: findForSmartMeetingLineage parameters: - name: lineageId in: path required: true schema: type: integer format: int64 responses: '200': description: findForSmartMeetingLineage 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] delete: tags: - smart-meetings operationId: deleteForSmartMeetingLineage parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: sendUpdates in: query schema: type: boolean nullable: true - name: restoreIfAvailable in: query schema: type: boolean nullable: true - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: deleteForSmartMeetingLineage 200 response content: application/json: schema: type: object security: - Authorization: [] patch: tags: - smart-meetings operationId: patchSmartMeeting parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: eventId in: query schema: type: string nullable: true - name: sendUpdates in: query schema: type: boolean nullable: true - name: notificationKey in: query schema: type: string nullable: true requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchSmartMeetingRequest' required: true responses: '200': description: patchSmartMeeting 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/{lineageId}/as-attendee: patch: tags: - smart-meetings operationId: patchSmartMeetingForAttendee parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true requestBody: content: application/json: schema: $ref: '#/components/schemas/SmartSeriesAttendeeRequest' required: true responses: '200': description: patchSmartMeetingForAttendee 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/{lineageId}/disable: delete: tags: - smart-meetings operationId: disable_1 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: disable_1 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-meetings/{lineageId}/enable: post: tags: - smart-meetings operationId: enable_2 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: enable_2 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-meetings/{lineageId}/force-successor: patch: tags: - smart-meetings operationId: forceSuccessor_1 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchSmartMeetingRequest' required: true responses: '200': description: forceSuccessor_1 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-meetings/{lineageId}/to-single-instances: post: tags: - smart-meetings operationId: convertToSingleInstances_3 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 responses: '200': description: convertToSingleInstances_3 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesLineageView' security: - Authorization: [] components: schemas: ConferenceDetails: required: - solution - source - status - url type: object properties: solution: $ref: '#/components/schemas/ConferenceSolution' url: type: string nullable: true status: $ref: '#/components/schemas/ConferenceStatus' source: $ref: '#/components/schemas/ConferenceSource' TimePolicy: required: - dayHours type: object properties: startOfWeek: $ref: '#/components/schemas/DayOfWeek' endOfWeek: $ref: '#/components/schemas/DayOfWeek' dayHours: properties: MONDAY: $ref: '#/components/schemas/DayHours' TUESDAY: $ref: '#/components/schemas/DayHours' WEDNESDAY: $ref: '#/components/schemas/DayHours' THURSDAY: $ref: '#/components/schemas/DayHours' FRIDAY: $ref: '#/components/schemas/DayHours' SATURDAY: $ref: '#/components/schemas/DayHours' SUNDAY: $ref: '#/components/schemas/DayHours' AssistStatus: type: string enum: - CONTROLLED - RELEASED - ARCHIVED RecurrenceDefinition: required: - frequency type: object properties: interval: type: integer format: int32 frequency: $ref: '#/components/schemas/Frequency' idealDays: type: array items: $ref: '#/components/schemas/DayOfWeek' idealMonthlyDay: $ref: '#/components/schemas/IdealMonthlyDay' daysBetweenPeriods: type: integer format: int32 readOnly: true 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 GoogleCalendarEventMetadata: required: - guestsCanInviteOthers - guestsCanModify - guestsCanSeeOtherGuests type: object properties: guestsCanModify: type: boolean guestsCanInviteOthers: type: boolean guestsCanSeeOtherGuests: type: boolean SmartSeriesLineageView: type: object properties: lineageId: type: integer format: int64 calendarId: type: integer format: int64 type: $ref: '#/components/schemas/SmartSeriesType' status: $ref: '#/components/schemas/SmartSeriesStatus' activeSeries: $ref: '#/components/schemas/SmartSeriesView' series: type: array items: $ref: '#/components/schemas/SmartSeriesView' periods: type: array items: $ref: '#/components/schemas/SmartSeriesPeriodView' enabled: type: boolean restorable: type: boolean recurrenceType: $ref: '#/components/schemas/SmartSeriesRecurrenceType' SmartSeriesResourceView: required: - buildingId - buildingName - capacity - category - email - floorName - roomId - roomName type: object properties: email: type: string roomId: type: string nullable: true capacity: type: integer format: int32 nullable: true buildingId: type: string nullable: true buildingName: type: string nullable: true roomName: type: string nullable: true floorName: type: string nullable: true category: type: string nullable: true 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 SmartSeriesResourceRequest: required: - email - roomId type: object properties: roomId: type: string email: type: string LocalTimeInterval: required: - end - start type: object properties: start: type: string format: partial-time end: type: string format: partial-time duration: type: string ChangeLogReason: type: string enum: - SMART_1_1_SKIPPED - SMART_1_1_ATTENDEE_DECLINED - SMART_1_1_CREATED - SMART_1_1_ATTENDEE_AUTO_ACCEPTED - SMART_1_1_DELETED - SMART_1_1_ATTENDEE_RESCHEDULED - SMART_1_1_PIN - SMART_1_1_UNPIN - HABIT_START_NOW - HABIT_RESTART_NOW - HABIT_MOVED - HABIT_RESCHEDULED - HABIT_ENABLED - HABIT_DISABLED - HABIT_DELETED - HABIT_SKIPPED - HABIT_STOPPED - HABIT_MARKED_DONE - HABIT_UNPIN - HABIT_PIN - HABIT_CREATED - HABIT_PRIORITY_CHANGED - HABIT_TIME_POLICY_CHANGED - SMART_HABIT_START - SMART_HABIT_STOP - SMART_HABIT_RESCHEDULE - SMART_HABIT_RESET_SCHEDULE - SMART_HABIT_SKIP - SMART_HABIT_PIN - SMART_HABIT_UNPIN - SMART_HABIT_MOVE - SMART_HABIT_MARK_DONE - SMART_HABIT_RECORD - SMART_HABIT_SKIPPED_DUE_TO_RESERVED_WORD - SMART_HABIT_DECLINE - SMART_MEETING_RESCHEDULE - SMART_MEETING_RESET_SCHEDULE - SMART_MEETING_SKIP - SMART_MEETING_PIN - SMART_MEETING_UNPIN - SMART_MEETING_MOVE - SMART_MEETING_MARK_DONE - SMART_MEETING_DECLINE - SMART_SERIES_EVENT_REMOVED_DUE_TO_FORCE_SKIP - SMART_SERIES_EVENT_REMOVED_DUE_TO_NO_TIME - SMART_SERIES_EVENT_MOVED - SMART_SERIES_EVENT_NO_TIME_ORIGINAL - SMART_SERIES_EVENT_NO_TIME_LAST - SMART_SERIES_EVENT_NO_TIME_PARTIAL_PERIOD_REMOVED - SMART_SERIES_EVENT_NO_TIME_PARTIAL_PERIOD_PUNTED - TASK_PIN - TASK_UNPIN - TASK_START_NOW - EVENT_AUTO_LOCK_CHANGED - SCHEDULING_LINK_CREATED - SCHEDULING_LINK_DELETED - SCHEDULING_LINK_BRANDING_CREATED - SCHEDULING_LINK_BRANDING_UPDATED - SCHEDULING_LINK_BRANDING_DELETED - FOCUS_EVENT_PIN - FOCUS_EVENT_UNPIN - FOCUS_EVENT_RESCHEDULE - EVENT_DELETED_VIA_CALENDAR_ASSIGNMENT_SKIPPED_FOR_PERIOD - EVENT_DELETED_VIA_CALENDAR_ASSIGNMENT_SKIPPED_FOR_DAY SmartSeriesType: type: string enum: - HABIT - MEETING SmartSeriesActionPlannedResult: required: - events - series - timeoutReached - userInfoMessage type: object properties: events: type: array items: $ref: '#/components/schemas/Event' series: $ref: '#/components/schemas/SmartSeriesView' userInfoMessage: type: string timeoutReached: type: boolean description: 'The expected result of a planner action. Note: this isn''t the reality at the point it''s returned, but what we expect to make reality as we execute the planner action.' Frequency: type: string enum: - DAILY - WEEKLY - MONTHLY ConferenceSource: type: string enum: - NATIVE - PARSED SmartSeriesOrganizerRequest: type: object properties: timePolicyType: $ref: '#/components/schemas/TimePolicyType' timeSchemeId: type: string nullable: true oneOffPolicy: nullable: true allOf: - $ref: '#/components/schemas/TimePolicy' priority: nullable: true allOf: - $ref: '#/components/schemas/PriorityLevel' LOG_KEY: type: string PATCH_TIME_SCHEME_ID: type: string PATCH_ONE_OFF_POLICY: type: string PATCH_PRIORITY: type: string 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 SmartSeriesEventType: type: string enum: - FOCUS - SOLO_WORK - PERSONAL - TEAM_MEETING - EXTERNAL_MEETING - ONE_ON_ONE x-deprecated: - FOCUS SmartSeriesRole: type: string enum: - ORGANIZER - REQUIRED_ATTENDEE - OPTIONAL_ATTENDEE ConferenceStatus: type: string enum: - PENDING - SUCCESS - FAILURE - UNKNOWN ConferenceSolution: type: string enum: - GOOGLE_MEET - MICROSOFT_TEAMS - ZOOM - WEBEX - RING_CENTRAL - POP - COSCREEN - BLUE_JEANS - JITSI - OTHER - UNKNOWN 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 SmartSeriesStatus: type: string enum: - NEW - ACTIVE - ACTIVE_TIME_POLICY_EMPTY - ACTIVE_TIME_POLICY_LOW - ACTIVE_EVERYONE_DECLINED - ACTIVE_EVERY_REQUIRED_DECLINED - DISABLED - INACTIVE_CALENDAR_NOT_VALID - INACTIVE_CALENDAR_NOT_CONNECTED - INACTIVE_CALENDAR_NOT_WRITABLE - INACTIVE_MULTI_CONNECTED_CALENDAR - INACTIVE_CALENDAR_NOT_FOUND - INACTIVE_ORGANIZER_MISSING - EVERYONE_DECLINED - EVERY_REQUIRED_DECLINED - CORRUPTED - UNKNOWN - NO_ACCESS SmartSeriesRecurrenceType: type: string enum: - SINGLE_INSTANCES - RECURRING_SERIES ChangeLogEntryView: required: - changedAt - id - reason type: object properties: id: type: integer format: int64 changedAt: type: string format: date-time reclaimEventType: nullable: true allOf: - $ref: '#/components/schemas/ReclaimEventType' assignmentId: type: integer format: int64 nullable: true assignmentSubId: type: integer format: int64 nullable: true eventId: type: string nullable: true organizerId: type: string nullable: true actorId: type: string nullable: true reason: $ref: '#/components/schemas/ChangeLogReason' lockChangedMetadata: nullable: true allOf: - $ref: '#/components/schemas/ChangeLogEntryMetadataView' periodSkippedMetadata: nullable: true allOf: - $ref: '#/components/schemas/ChangeLogEntryMetadataView' eventMovedMetadata: nullable: true allOf: - $ref: '#/components/schemas/ChangeLogEntryMetadataView' periodSkippedDueToReservedWordMetadata: nullable: true allOf: - $ref: '#/components/schemas/ChangeLogEntryMetadataView' ReclaimEventMetadata: type: object properties: eventReference: type: string nullable: true version: type: integer format: int32 eventType: $ref: '#/components/schemas/ReclaimEventType' EventColor: type: string enum: - NONE - LAVENDER - SAGE - GRAPE - FLAMINGO - BANANA - TANGERINE - PEACOCK - GRAPHITE - BLUEBERRY - BASIL - TOMATO AttendeeCalendarVisibility: type: string enum: - NONE - FREE_BUSY - DETAILS - FULL - RECLAIM SmartSeriesDependencyType: type: string enum: - BEFORE_ON_SAME_DAY - AFTER_ON_SAME_DAY - NOT_SAME_DAY - ATTEMPT_AFTER PrioritySource: type: string enum: - MANUAL - AI - RULES DayOfWeek: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY IdealMonthlyDay: type: object properties: idealDayOfMonth: type: integer format: int32 idealDayOfWeek: $ref: '#/components/schemas/DayOfWeek' idealWeek: 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 SmartSeriesAttendeeResponseStatus: type: string enum: - NEEDS_ACTION - ACCEPTED - TENTATIVE - DECLINED Colorized: type: object properties: color: $ref: '#/components/schemas/EventColor' SmartMeetingLineageView: $ref: '#/components/schemas/SmartSeriesLineageView' SmartSeriesPeriodSchedulerStatus: type: string enum: - NOT_SKIPPED - SKIPPED_BY_USER - NO_OVERLAP_WITH_TIME_SCHEME_WINDOWS - NO_FREE_TIME - NO_FREE_TIME_LEFT_LAST - NO_FREE_TIME_RETURN_TO_ORIGINAL - PARTIAL_PERIOD_SCHEDULED - PARTIAL_PERIOD_SKIPPED - SKIPPED_DUE_TO_RESERVED_WORD PatchSmartMeetingRequest: type: object properties: googleMeet: type: boolean deprecated: true conferenceType: nullable: true allOf: - $ref: '#/components/schemas/ConferenceType' autoDecline: type: boolean guestsCanModify: type: boolean title: type: string description: type: string nullable: true recurrence: $ref: '#/components/schemas/RecurrenceDefinition' starting: type: string format: date ending: type: string format: date nullable: true idealTime: type: string format: partial-time durationMinMins: type: integer format: int32 durationMaxMins: type: integer format: int32 nullable: true eventType: $ref: '#/components/schemas/SmartSeriesEventType' color: nullable: true allOf: - $ref: '#/components/schemas/EventColor' defenseAggression: $ref: '#/components/schemas/DefenseAggression' visibility: $ref: '#/components/schemas/SmartSeriesVisibility' defendedDescription: type: string nullable: true autoDeclineText: type: string nullable: true organizer: $ref: '#/components/schemas/SmartSeriesOrganizerRequest' attendees: type: array items: $ref: '#/components/schemas/SmartSeriesAttendeeRequest' resources: type: array items: $ref: '#/components/schemas/SmartSeriesResourceRequest' location: type: string nullable: true reservedWords: type: array items: type: string dependencyType: nullable: true allOf: - $ref: '#/components/schemas/SmartSeriesDependencyType' dependencyRef: type: integer format: int64 nullable: true failurePolicy: $ref: '#/components/schemas/SmartSeriesBookingFailurePolicy' minLeadTimeMins: type: integer format: int64 fixedTimePolicy: type: boolean rescheduleUnstartedOverride: type: boolean nullable: true forceSuccessor: type: boolean reminders: type: array nullable: true items: type: integer format: int32 calendarId: type: integer format: int64 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. DayHours: required: - intervals type: object properties: intervals: type: array items: $ref: '#/components/schemas/LocalTimeInterval' startOfDay: type: string format: partial-time nullable: true endOfDay: type: string format: partial-time nullable: true SmartSeriesView: type: object properties: attendees: type: array items: $ref: '#/components/schemas/SmartSeriesAttendeeView' resources: type: array items: $ref: '#/components/schemas/SmartSeriesResourceView' id: type: integer format: int64 calendarId: type: integer format: int64 eventId: type: string title: type: string recurrence: $ref: '#/components/schemas/RecurrenceDefinition' starting: type: string format: date ending: type: string format: date nullable: true idealTime: type: string format: partial-time durationMinMins: type: integer format: int32 durationMaxMins: type: integer format: int32 eventType: $ref: '#/components/schemas/SmartSeriesEventType' defenseAggression: $ref: '#/components/schemas/DefenseAggression' visibility: $ref: '#/components/schemas/SmartSeriesVisibility' color: $ref: '#/components/schemas/EventColor' description: type: string nullable: true defendedDescription: type: string nullable: true autoDecline: type: boolean autoDeclineText: type: string nullable: true googleMeet: type: boolean conferenceDetails: nullable: true allOf: - $ref: '#/components/schemas/ConferenceDetails' location: type: string reservedWords: type: array items: type: string dependencyType: nullable: true allOf: - $ref: '#/components/schemas/SmartSeriesDependencyType' dependencyRef: type: integer format: int64 nullable: true failurePolicy: $ref: '#/components/schemas/SmartSeriesBookingFailurePolicy' timezone: type: string nullable: true fixedTimePolicy: type: boolean rescheduleUnstartedOverride: type: boolean nullable: true timePolicyType: $ref: '#/components/schemas/TimePolicyType' recurrenceType: $ref: '#/components/schemas/SmartSeriesRecurrenceType' reminders: type: array nullable: true items: type: integer format: int32 status: $ref: '#/components/schemas/SmartSeriesStatus' conferenceType: $ref: '#/components/schemas/ConferenceType' guestsCanModify: type: boolean DefenseAggression: type: string enum: - NONE - LOW - DEFAULT - HIGH - MAX SmartSeriesPeriodEventStatus: type: string enum: - NONE - PRESENT - DEFENDED - LOCKED - DONE - UNKNOWN x-deprecated: - UNKNOWN Interval: type: object properties: start: type: string format: date-time end: type: string format: date-time empty: type: boolean unboundedStart: type: boolean unboundedEnd: type: boolean EventCategory: $ref: '#/components/schemas/Colorized' SmartSeriesPeriodView: required: - changes - done - end - eventKey - eventStatus - forceSkipped - hasTimePolicyExceptions - locked - schedulerSkipped - schedulerStatus - seriesId - start - targetDateTime type: object properties: eventKey: $ref: '#/components/schemas/EventKey' seriesId: type: integer format: int64 start: type: string format: date end: type: string format: date done: type: boolean locked: type: boolean forceSkipped: type: boolean deprecated: true schedulerSkipped: type: boolean deprecated: true schedulerStatus: $ref: '#/components/schemas/SmartSeriesPeriodSchedulerStatus' eventStatus: $ref: '#/components/schemas/SmartSeriesPeriodEventStatus' eventStart: type: string format: date-time nullable: true eventEnd: type: string format: date-time nullable: true hasTimePolicyExceptions: type: boolean targetDateTime: type: string format: date-time changes: type: array deprecated: true items: $ref: '#/components/schemas/ChangeLogEntryView' SmartSeriesAttendeeView: required: - attendee - priority - required - responseStatus - role - timePolicyType - visibility type: object properties: attendee: $ref: '#/components/schemas/ThinPerson' required: type: boolean role: $ref: '#/components/schemas/SmartSeriesRole' timezone: type: string nullable: true timePolicyType: $ref: '#/components/schemas/TimePolicyType' oneOffPolicy: nullable: true allOf: - $ref: '#/components/schemas/TimePolicy' timeSchemeId: type: string nullable: true priority: $ref: '#/components/schemas/PriorityLevel' responseStatus: $ref: '#/components/schemas/SmartSeriesAttendeeResponseStatus' visibility: $ref: '#/components/schemas/AttendeeCalendarVisibility' EventStatus: type: string enum: - PUBLISHED - CANCELLED EventType: type: string enum: - MEETING - WORK - LOGISTICS - PERSONAL TentativeSlot: required: - attendeeCount - eventMetadata - eventSubType - eventType - free - hasVip - id - interval - isDamped - isForceBusy - isForceFree - isOrganizer - isPublic - isRecurring - locked - priorityLevel - responseStatus - source - sourceKey - status - title type: object properties: id: type: string eventType: $ref: '#/components/schemas/ReclaimEventType' assignmentId: type: integer format: int64 nullable: true smartSeriesLineageId: type: integer format: int64 nullable: true status: $ref: '#/components/schemas/EventStatus' interval: nullable: true allOf: - $ref: '#/components/schemas/Interval' free: type: boolean locked: type: boolean isForceFree: type: boolean isForceBusy: type: boolean isDamped: type: boolean isPublic: type: boolean responseStatus: $ref: '#/components/schemas/EventResponseStatus' source: $ref: '#/components/schemas/TentativeSlot.Source' sourceKey: type: string eventMetadata: nullable: true allOf: - $ref: '#/components/schemas/ReclaimEventMetadata' title: type: string nullable: true eventSubType: $ref: '#/components/schemas/EventSubType' isRecurring: type: boolean attendeeCount: type: integer format: int32 hasVip: type: boolean priorityLevel: $ref: '#/components/schemas/PriorityLevel' isOrganizer: type: boolean parentId: type: string nullable: true AssistType: type: string enum: - TASK - CUSTOM_DAILY - CATCHUP_AM - CATCHUP_PM - LUNCH - FOCUS - TRAVEL_PRE - TRAVEL_POST - CONBUF - SMART_HABIT - SMART_MEETING - RECLAIM_FOCUS TentativeSlot.Source: type: string enum: - RECLAIM - CALENDAR 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 SmartSeriesVisibility: type: string enum: - DEFAULT - PRIVATE - PUBLIC 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 CreateSmartMeetingRequest: required: - defenseAggression - durationMinMins - enabled - eventType - idealTime - organizer - recurrence - title type: object properties: enabled: type: boolean type: $ref: '#/components/schemas/SmartSeriesType' attendees: type: array items: $ref: '#/components/schemas/SmartSeriesAttendeeRequest' reservedWords: type: array items: type: string resources: type: array items: $ref: '#/components/schemas/SmartSeriesResourceRequest' googleMeet: type: boolean deprecated: true conferenceType: nullable: true allOf: - $ref: '#/components/schemas/ConferenceType' visibility: $ref: '#/components/schemas/SmartSeriesVisibility' calendarId: type: integer format: int64 title: type: string recurrence: $ref: '#/components/schemas/RecurrenceDefinition' starting: type: string format: date ending: type: string format: date idealTime: type: string format: partial-time durationMinMins: type: integer format: int32 durationMaxMins: type: integer format: int32 description: type: string defendedDescription: type: string autoDecline: type: boolean autoDeclineText: type: string organizer: $ref: '#/components/schemas/SmartSeriesOrganizerRequest' eventType: $ref: '#/components/schemas/SmartSeriesEventType' color: $ref: '#/components/schemas/EventColor' defenseAggression: $ref: '#/components/schemas/DefenseAggression' location: type: string lastInstance: type: string format: date-time dependencyType: $ref: '#/components/schemas/SmartSeriesDependencyType' dependencyRef: type: integer format: int64 migrationRef: type: integer format: int64 originalEventId: type: string failurePolicy: $ref: '#/components/schemas/SmartSeriesBookingFailurePolicy' minLeadTimeMins: type: integer format: int64 fixedTimePolicy: type: boolean rescheduleUnstartedOverride: type: boolean nullable: true recurrenceType: $ref: '#/components/schemas/SmartSeriesRecurrenceType' reminders: type: array nullable: true items: type: integer format: int32 guestsCanModify: type: boolean SmartSeriesBookingFailurePolicy: type: string enum: - REMOVE - LEAVE_LAST - LEAVE_LAST_OR_RETURN_TO_ORIGINAL ChangeLogEntryMetadataView: 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 SmartSeriesAttendeeRequest: type: object properties: email: type: string LOG_KEY: type: string REGEX_MASK_EMAIL: type: string required: type: boolean timePolicyType: $ref: '#/components/schemas/TimePolicyType' timeSchemeId: type: string nullable: true oneOffPolicy: nullable: true allOf: - $ref: '#/components/schemas/TimePolicy' priority: nullable: true allOf: - $ref: '#/components/schemas/PriorityLevel' responseStatus: $ref: '#/components/schemas/SmartSeriesAttendeeResponseStatus' TimePolicyType: type: string enum: - WORK - PERSONAL - MEETING - ONE_OFF - INHERITED - CUSTOM PlatformEventType: type: string enum: - DEFAULT - OUT_OF_OFFICE - FROM_MAIL - WORKING_LOCATION - FOCUS_TIME - BIRTHDAY MergeDetails.EventType: type: string enum: - ORGANIZER_EVENT - ATTENDEE_EVENT - SYNC_EVENT 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 ConferenceType: type: string enum: - GOOGLE_MEET - MICROSOFT_TEAMS - ZOOM - CUSTOM - GENERIC_LOCATION - PHYSICAL_ADDRESS - PHONE_NUMBER PriorityLevel: type: string enum: - P1 - P2 - P3 - P4 - PRIORITIZE - DEFAULT x-deprecated: - PRIORITIZE - DEFAULT securitySchemes: Authorization: type: oauth2