openapi: 3.0.1 info: title: Reclaim account-time-schemes smart-habits 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-habits paths: /api/smart-habits: get: tags: - smart-habits operationId: findAllSmartHabits responses: '200': description: findAllSmartHabits 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] post: tags: - smart-habits operationId: createSmartHabit 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/CreateSmartHabitRequest' required: true responses: '200': description: createSmartHabit 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/convert/{calendarId}/{eventId}: post: tags: - smart-habits operationId: convertToSmartHabits 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/CreateSmartHabitRequest' required: true responses: '200': description: convertToSmartHabits 200 response content: application/json: schema: $ref: '#/components/schemas/SmartMeetingLineageView' security: - Authorization: [] /api/smart-habits/detect: get: tags: - smart-habits operationId: detectSmartHabits parameters: - name: onboarding in: query schema: type: boolean nullable: true responses: '200': description: detectSmartHabits 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/planner/{eventId}/done: post: tags: - smart-habits operationId: markAsDone parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: markAsDone 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{eventId}/lock: post: tags: - smart-habits operationId: lockHabitInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: lockHabitInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{eventId}/move: post: tags: - smart-habits operationId: moveMeetingInstance 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 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{eventId}/reschedule: post: tags: - smart-habits operationId: rescheduleMeetingInstance 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 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{eventId}/skip: post: tags: - smart-habits operationId: skipHabitInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: skipHabitInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{eventId}/unlock: post: tags: - smart-habits operationId: unlockHabitInstance parameters: - name: eventId in: path required: true schema: type: string - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: unlockHabitInstance 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{lineageId}/clear-exceptions: post: tags: - smart-habits operationId: resetSchedule 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 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{lineageId}/record: post: tags: - smart-habits operationId: record parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - 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: record 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{lineageId}/recordable-periods: get: tags: - smart-habits operationId: recordablePeriods parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: date in: query required: true schema: type: string format: date responses: '200': description: recordablePeriods 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartSeriesPeriodView' security: - Authorization: [] /api/smart-habits/planner/{lineageId}/start: post: tags: - smart-habits operationId: startNow parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: startNow 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{lineageId}/stop: post: tags: - smart-habits operationId: stop parameters: - name: lineageId in: path required: true schema: type: integer format: int64 - name: notificationKey in: query schema: type: string nullable: true responses: '200': description: stop 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesActionPlannedResult' security: - Authorization: [] /api/smart-habits/planner/{seriesId}/clear-force-skipped: post: tags: - smart-habits operationId: clearForceSkipped 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 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-habits/planner/{seriesId}/clear-time-policy-exceptions: post: tags: - smart-habits operationId: clearTimePolicyExceptions 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 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-habits/shared: post: tags: - smart-habits operationId: createSharedHabit requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSharedSmartHabitRequest' required: true responses: '200': description: createSharedHabit 200 response content: application/json: schema: $ref: '#/components/schemas/SharedSmartHabit' security: - Authorization: [] /api/smart-habits/shared/v2/{sharedHabitShortCode}: get: tags: - smart-habits operationId: getSharedHabit parameters: - name: sharedHabitShortCode in: path required: true schema: type: string responses: '200': description: getSharedHabit 200 response content: application/json: schema: $ref: '#/components/schemas/SharedSmartHabitView' security: - Authorization: - isAuthenticated() - isAnonymous() /api/smart-habits/shared/{sharedHabitShortCode}: get: tags: - smart-habits operationId: getSharedHabit_deprecated parameters: - name: sharedHabitShortCode in: path required: true schema: type: string responses: '200': description: getSharedHabit_deprecated 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitTemplate' deprecated: true security: - Authorization: - isAuthenticated() - isAnonymous() /api/smart-habits/template: get: tags: - smart-habits operationId: getSmartHabitTemplate parameters: - name: key in: query required: true schema: $ref: '#/components/schemas/SmartHabitTemplateKey' responses: '200': description: getSmartHabitTemplate 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitTemplate' security: - Authorization: [] /api/smart-habits/templates: get: tags: - smart-habits operationId: getSmartHabitTemplates parameters: - name: role in: query schema: nullable: true allOf: - $ref: '#/components/schemas/UserProfileRole' - name: department in: query schema: nullable: true allOf: - $ref: '#/components/schemas/UserProfileDepartment' responses: '200': description: getSmartHabitTemplates 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartHabitTemplate' security: - Authorization: [] /api/smart-habits/templates/create: post: tags: - smart-habits operationId: createHabitTemplates_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateHabitTemplateRequest' required: true responses: '200': description: createHabitTemplates_1 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/to-single-instances: post: tags: - smart-habits operationId: convertToSingleInstances responses: '200': description: convertToSingleInstances 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/{lineageId}: get: tags: - smart-habits operationId: findForSmartHabitLineage parameters: - name: lineageId in: path required: true schema: type: integer format: int64 responses: '200': description: findForSmartHabitLineage 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] delete: tags: - smart-habits operationId: deleteForSmartHabitLineage 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: deleteForSmartHabitLineage 200 response content: application/json: schema: type: object security: - Authorization: [] patch: tags: - smart-habits operationId: patchSmartHabit 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/PatchSmartHabitRequest' required: true responses: '200': description: patchSmartHabit 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/{lineageId}/as-attendee: patch: tags: - smart-habits operationId: patchSmartHabitForAttendee 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: patchSmartHabitForAttendee 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/{lineageId}/disable: delete: tags: - smart-habits operationId: disable 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 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-habits/{lineageId}/enable: post: tags: - smart-habits operationId: enable_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: enable_1 200 response content: application/json: schema: type: object security: - Authorization: [] /api/smart-habits/{lineageId}/force-successor: patch: tags: - smart-habits operationId: forceSuccessor parameters: - name: lineageId in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchSmartHabitRequest' required: true responses: '200': description: forceSuccessor 200 response content: application/json: schema: $ref: '#/components/schemas/SmartHabitLineageView' security: - Authorization: [] /api/smart-habits/{lineageId}/to-single-instances: post: tags: - smart-habits operationId: convertToSingleInstances_1 parameters: - name: lineageId in: path required: true schema: type: integer format: int64 responses: '200': description: convertToSingleInstances_1 200 response content: application/json: schema: $ref: '#/components/schemas/SmartSeriesLineageView' security: - Authorization: [] 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 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' EventKey: required: - calendarId - eventId type: object properties: eventId: type: string calendarId: type: integer format: int64 SmartHabitTemplateKey: type: string enum: - LUNCH - MEDITATION - TAKE_A_WALK - READING - WRITING - MORNING_CATCHUP - AFTERNOON_CATCHUP - MONTHLY_METRICS_REVIEW - SPRINT_PLANNING - CUSTOMER_FEEDBACK_REVIEW - WEEKLY_STATUS_REPORT - PRODUCT_BACKLOG_REVIEW - PRODUCT_REQUIREMENTS - RETROSPECTIVE_PLANNING - PRODUCT_LAUNCH_PLANNING - FOCUS_TIME - DEBUGGING - FEATURE_BACKLOG - TESTING - CUSTOMER_RESEARCH - RECRUITMENT - QUARTERLY_RESEARCH_REPORT - STRATEGIC_PLANNING - DEPLOY - PRODUCT_DOCUMENTATION - CODING - ARCHITECTURE_DESIGN_REVIEW - CODE_REVIEW - TRAINING - TROUBLESHOOT_ESCALATED_ISSUES - REVIEW_PRODUCT_UPDATES - COMMUNITY_ENGAGEMENT - SUPPORT_TIME - SHARE_CUSTOMER_FEEDBACK - SNIPPET_TEMPLATE_UPDATES - ADVERTISING_REVIEW - COMPETITOR_RESEARCH - PR_PLANNING - SEO_REVIEW - SOCIAL_MEDIA_UPDATES - NEWSLETTER - BLOG_WRITING - WEBINAR_PREP - EMAIL_INBOUND_LEADS - KEY_ACCOUNT_CHECK_INS - SALES_PIPELINE_REVIEW - WRITE_PROPOSAL - CRM_UPDATES - PROSPECTING - UPDATE_SALES_PRESENTATIONS - OUTBOUND_CALLS - WEEKLY_DESIGN_REVIEW - FREE_DESIGN_HOUR - USER_RESEARCH - DESIGN_USER_TESTS - DAILY_DESIGN_TIME - WIREFRAMES - USER_FLOW_DESIGN - EMPLOYEE_RELATIONS_REVIEW - PTO_REVIEW - PRODUCTIVITY_REVIEW - DEI_REVIEW - PROCESS_BACKGROUND_CHECKS - QUARTERLY_TRAINING_PREP - APPLICANT_REVIEW - EMPLOYEE_RECOGNITION - PAYROLL_UPDATES - INTERVIEW_PREP - EMPLOYEE_SURVEYS - UPDATE_JOB_POSTINGS - EMPLOYEE_NEWSLETTER_PREP - REVIEW_DEPARTMENT_REQUIREMENTS - SECURITY_REVIEWS - TEAM_MEETING_PREP - LEGAL_COMPLIANCE_REVIEW - VENDOR_REVIEWS - BUSINESS_PERFORMANCE_REVIEW - REVIEW_PROCUREMENT_REQUESTS - REVIEW_SUPPLIER_AGREEMENTS - UPDATE_INTERNAL_POLICIES - ANALYZE_TECHNOLOGY_USAGE - REVIEW_TEAM_WORKFLOWS - UPDATE_OPERATIONAL_PROCEDURES - REVIEW_FINANCIAL_REPORTS - INVESTOR_UPDATE - MONTH_END_FINANCIAL_STATEMENTS - REVIEW_FORECAST_REPORTS - BUDGET_PLANNING - REVIEW_MONTHLY_REPORTS - REVIEW_EXPENSE_REPORT - PREPARE_MONTHLY_REPORTS - UPDATE_JOURNAL_ENTRIES - REVIEW_TIME_SHEETS - PROCESS_PAYMENTS - REVIEW_ACCOUNTS_PAYABLE - TAX_PLANNING - WEEKDAY_STUDY - GROCERY_SHOPPING - LAUNDRY - INTERNSHIP_APPLICATIONS - WEEKEND_STUDY - EXERCISE - CLEAN_HOUSE - CALL_FAMILY - WORK_ON_THESIS - REVIEW_TIME_TRACKING_ANALYTICS - SEND_MONTHLY_INVOICES - PERFORMANCE_REVIEW_PLANNING - SALES_AND_REVENUE_ANALYSIS - INVENTORY_MANAGEMENT_AND_RECONCILIATION - QUALITY_CONTROL_ASSESSMENTS - UPDATE_WEBSITE_CONTENT - UPDATE_SOFTWARE_SYSTEMS_AND_APPLICATIONS - EQUIPMENT_MAINTENANCE_AND_SERVICING - REVIEW_AND_REPLENISH_OFFICE_SUPPLIES - EVENT_AND_CONFERENCE_PLANNING - HEALTH_AND_SAFETY_INSPECTIONS - UPDATE_PROJECT_TIMELINES_AND_MILESTONES - REVIEW_MARKETING_STRATEGIES - UPDATE_EMPLOYEE_SCHEDULES - MARKET_RESEARCH - PREPARE_MONTHLY_TEAM_BUILDING_ACTIVITIES - CONTENT_CALENDAR_PLANNING - REVIEW_COMPANY_GOALS - ANALYZE_EMPLOYEE_TURNOVER_RATES - PAY_BILLS - PAY_CREDIT_CARD - MOW_LAWN - PERSONAL_FINANCIAL_PLANNING - MEAL_PLANNING - REVIEW_PERSONAL_GOALS - SELF_CARE_TIME - GARDENING - HOME_MAINTENANCE - DECLUTTERING_AND_DONATING - REVIEW_AND_UPDATE_PASSWORDS - UPDATE_PERSONAL_PORTFOLIO - UPDATE_RESUME_CV - SEND_MONTHLY_BIRTHDAY_CARDS - DAILY_JOURNALING_DIARY - DEEP_CLEAN_VEHICLE - SCHEDULE_DENTAL_CLEANING - RUNNING - MORNING_MINDFULNESS - BEDTIME_WINDDOWN - DAILY_LEARNING_HOUR - COMPANY_CULTURE_QUARTERLY_REVIEW - LEADERSHIP_MEETING_PREP - QUARTERLY_POLICY_PROCESS_REVIEW - RESOURCE_REVIEW - SHAREHOLDER_MEETING_PREP - SPEAKING_ENGAGEMENTS_PREP - PRODUCT_ROADMAP_REVIEW - MONTHLY_GTM_REVIEW - QUARTERLY_GOAL_PLANNING - MONTHLY_OPERATIONAL_REVIEW - AM_EXECUTIVE_EMAIL_REVIEW - PM_EXECUTIVE_EMAIL_REVIEW - DRAFT_MEMOS - PREP_MEETING_AGENDAS - PREP_MEETING_MINUTES - ARRANGE_WEEKLY_TRANSPORTATION - INVITATION_REVIEW - WEEKLY_APPOINTMENT_SCHEDULING - DOCUMENT_PREP - EXECUTIVE_CALENDAR_REVIEW - WEEKLY_EXPENSE_REPORTING - DELIVERABLES_FOLLOW_UP - PROJECT_COORDINATION - VENDOR_STAKEHOLDER_CHECKINS - WEEKLY_RESEARCH_REPORT - FAMILY_MOVIE_NIGHT - DINNER_WITH_FAMILY - WEEKEND_OUTING - FAMILY_GAME_NIGHT - PLAN_FAMILY_VACATION - SCHOOL_DROPOFF - ORGANIZE_PLAYDATES - PLAN_FAMILY_BUDGET - DAILY_ACCESS_ACCOUNT_REVIEW - NETWORK_VULNERABILITY_SCAN - CRITICAL_SECURITY_UPDATES - SECURITY_AWARENESS - PHISHING_SIMULATION Frequency: type: string enum: - DAILY - WEEKLY - MONTHLY ConferenceSource: type: string enum: - NATIVE - PARSED 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 UserProfileDepartment: type: string enum: - PRODUCT - ENGINEERING - SUPPORT - MARKETING - SALES - DESIGN - HR - OPERATIONS - ACCOUNTING_AND_FINANCE - FOUNDER - EXECUTIVE_ASSISTANT - IT_SECURITY - OTHER x-deprecated: - OTHER 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' 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' EventType: type: string enum: - MEETING - WORK - LOGISTICS - PERSONAL RecurringAssignmentType: type: string enum: - ONE_ON_ONE - DAILY_HABIT - TASK ConferenceType: type: string enum: - GOOGLE_MEET - MICROSOFT_TEAMS - ZOOM - CUSTOM - GENERIC_LOCATION - PHYSICAL_ADDRESS - PHONE_NUMBER SmartSeriesPeriodEventStatus: type: string enum: - NONE - PRESENT - DEFENDED - LOCKED - DONE - UNKNOWN x-deprecated: - UNKNOWN PriorityLevel: type: string enum: - P1 - P2 - P3 - P4 - PRIORITIZE - DEFAULT x-deprecated: - PRIORITIZE - DEFAULT SmartHabitTemplate: required: - durationMaxMins - durationMinMins - eventType - idealTime - name - oneOffPolicy - priority - recurrence - timePolicyType - title type: object properties: name: type: string title: type: string idealTime: type: string format: partial-time recurrence: $ref: '#/components/schemas/RecurrenceDefinition' durationMaxMins: type: integer format: int32 durationMinMins: type: integer format: int32 eventType: $ref: '#/components/schemas/SmartSeriesEventType' timePolicyType: $ref: '#/components/schemas/TimePolicyType' oneOffPolicy: $ref: '#/components/schemas/TimePolicy' priority: $ref: '#/components/schemas/PriorityLevel' description: type: string nullable: true createdBy: nullable: true allOf: - $ref: '#/components/schemas/ThinPerson' createdByTrackingCode: type: string nullable: true reservedWords: type: array nullable: true items: type: string CreateSmartHabitRequest: 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' resources: type: array items: $ref: '#/components/schemas/SmartSeriesResourceRequest' reservedWords: type: array items: type: string 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 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' 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 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 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 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 PatchSmartHabitRequest: 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 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 SmartSeriesRole: type: string enum: - ORGANIZER - REQUIRED_ATTENDEE - OPTIONAL_ATTENDEE ConferenceStatus: type: string enum: - PENDING - SUCCESS - FAILURE - UNKNOWN EventResponseStatus: type: string enum: - None - Organizer - Accepted - Declined - TentativelyAccepted - NotResponded x-enum-varnames: - None - Organizer - Accepted - Declined - TentativelyAccepted - NotResponded 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' 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 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 SmartHabitLineageView: $ref: '#/components/schemas/SmartSeriesLineageView' EventStatus: type: string enum: - PUBLISHED - CANCELLED 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 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 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 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.' SmartSeriesEventType: type: string enum: - FOCUS - SOLO_WORK - PERSONAL - TEAM_MEETING - EXTERNAL_MEETING - ONE_ON_ONE x-deprecated: - FOCUS ConferenceSolution: type: string enum: - GOOGLE_MEET - MICROSOFT_TEAMS - ZOOM - WEBEX - RING_CENTRAL - POP - COSCREEN - BLUE_JEANS - JITSI - OTHER - UNKNOWN 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 CreateSharedSmartHabitRequest: required: - sourceHabitLineageId type: object properties: sourceHabitLineageId: type: integer format: int64 title: type: string nullable: true description: type: string nullable: true background: type: string nullable: true inviteToTeam: type: boolean nullable: true AttendeeCalendarVisibility: type: string enum: - NONE - FREE_BUSY - DETAILS - FULL - RECLAIM 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 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. EventCategory: $ref: '#/components/schemas/Colorized' ResponseStatus: type: string enum: - DECLINED - NEEDS_ACTION - TENTATIVE - ACCEPTED - UNKNOWN UserProfileRole: type: string enum: - EXEC - MANAGER - NON_MANAGER - CONSULTANT - STUDENT 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 CreateHabitTemplateRequest: required: - templates type: object properties: templates: type: array items: $ref: '#/components/schemas/SmartHabitTemplateKey' 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 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 AssistStatus: type: string enum: - CONTROLLED - RELEASED - ARCHIVED 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' SmartSeriesType: type: string enum: - HABIT - MEETING SharedSmartHabitView: required: - shortCode - template type: object properties: shortCode: type: string template: $ref: '#/components/schemas/SmartHabitTemplate' meta: nullable: true allOf: - $ref: '#/components/schemas/SharedSmartHabitMeta' EventColor: type: string enum: - NONE - LAVENDER - SAGE - GRAPE - FLAMINGO - BANANA - TANGERINE - PEACOCK - GRAPHITE - BLUEBERRY - BASIL - TOMATO SmartSeriesDependencyType: type: string enum: - BEFORE_ON_SAME_DAY - AFTER_ON_SAME_DAY - NOT_SAME_DAY - ATTEMPT_AFTER PrioritySource: type: string enum: - MANUAL - AI - RULES SharedSmartHabit: required: - createdAt - hits - id - shortCode - template - updatedAt type: object properties: id: type: integer format: int64 shortCode: type: string template: $ref: '#/components/schemas/SmartHabitTemplate' sourceHabitLineageId: type: integer format: int64 nullable: true hits: type: integer format: int64 createdAt: type: string format: date-time updatedAt: type: string format: date-time meta: nullable: true allOf: - $ref: '#/components/schemas/SharedSmartHabitMeta' SmartSeriesAttendeeResponseStatus: type: string enum: - NEEDS_ACTION - ACCEPTED - TENTATIVE - DECLINED 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' LockState: type: string enum: - MANUALLY_LOCKED - ADJUSTED - UPCOMING_WINDOW - MANUALLY_UNLOCKED - DELETED - DECLINED - IN_THE_PAST 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 SharedSmartHabitMeta: required: - background - description - title type: object properties: title: type: string description: type: string background: type: string 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 securitySchemes: Authorization: type: oauth2