openapi: 3.0.1 info: title: Reclaim account-time-schemes ooo-calendars 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: ooo-calendars paths: /api/team/ooo-calendars: get: tags: - ooo-calendars operationId: listOOOCalendars responses: '200': description: listOOOCalendars 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/TeamOOOCalendarView' security: - Authorization: [] post: tags: - ooo-calendars operationId: createOOOCalendar requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarCreateRequest' required: true responses: '200': description: createOOOCalendar 200 response content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarView' security: - Authorization: [] /api/team/ooo-calendars/available: get: tags: - ooo-calendars operationId: getAvailableOOOCalendars responses: '200': description: getAvailableOOOCalendars 200 response content: application/json: schema: type: array items: $ref: '#/components/schemas/CalendarView' security: - Authorization: [] /api/team/ooo-calendars/{id}: get: tags: - ooo-calendars operationId: getOOOCalendar parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: getOOOCalendar 200 response content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarDetailedView' security: - Authorization: [] delete: tags: - ooo-calendars operationId: deleteOOOCalendar parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: deleteOOOCalendar 200 response content: application/json: schema: type: object security: - Authorization: [] patch: tags: - ooo-calendars operationId: updateOOOCalendar parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarViewUpdateRequest' required: true responses: '200': description: updateOOOCalendar 200 response content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarView' security: - Authorization: [] /api/team/ooo-calendars/{id}/link-calendar: post: tags: - ooo-calendars operationId: linkCalendar parameters: - name: id in: path required: true schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarLinkRequest' required: true responses: '200': description: linkCalendar 200 response content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarDetailedView' security: - Authorization: [] /api/team/ooo-calendars/{id}/reconcile: post: tags: - ooo-calendars operationId: reconcileOOOCalendar parameters: - name: id in: path required: true schema: type: integer format: int64 responses: '200': description: reconcileOOOCalendar 200 response content: application/json: schema: $ref: '#/components/schemas/TeamOOOCalendarDetailedView' security: - Authorization: [] components: schemas: CalendarView: required: - colorHex - connected - credentialId - externalId - googleMeetAllowed - id - microsoftTeamsAllowed - name - otherConnectedCalendarsExist - provider - useType - writableFor type: object properties: name: type: string id: type: integer format: int64 externalId: type: string connected: type: boolean colorHex: type: string credentialId: type: integer format: int64 reason: nullable: true allOf: - $ref: '#/components/schemas/IneligibilityReason' writableFor: type: array items: $ref: '#/components/schemas/ReclaimEventType' provider: type: string googleMeetAllowed: type: boolean microsoftTeamsAllowed: type: boolean defaultReminders: type: array nullable: true deprecated: true items: type: integer format: int32 reminderDefaults: type: array nullable: true items: $ref: '#/components/schemas/Reminder' useType: $ref: '#/components/schemas/CalendarUseType' otherConnectedCalendarsExist: type: boolean accessDomainRead: type: boolean nullable: true TeamOOOCalendarViewUpdateRequest: type: object properties: id: type: integer format: int64 nullable: true name: type: string nullable: true calendarId: type: string nullable: true calendarName: type: string nullable: true ownerUserId: type: string nullable: true ownerEmail: type: string nullable: true type: nullable: true allOf: - $ref: '#/components/schemas/TeamOOOCalendarType' status: nullable: true allOf: - $ref: '#/components/schemas/TeamOOOCalendarStatus' memberCount: type: integer format: int32 nullable: true createdAt: type: string format: date-time nullable: true updatedAt: type: string format: date-time nullable: true TeamOOOCalendarStatus: type: string enum: - NEEDS_SETUP - ACTIVE - ACTIVE_NO_MEMBERS - INACTIVE_OWNER_DELETED - INACTIVE_CALENDAR_NOT_FOUND - INACTIVE_CALENDAR_NOT_CONNECTED - INACTIVE_OWNER_CREDENTIALS_REVOKED Reminder: required: - minutes - reminderType type: object properties: reminderType: $ref: '#/components/schemas/ReminderType' minutes: type: integer format: int32 TeamOOOCalendarMemberView: required: - email - status type: object properties: email: type: string status: $ref: '#/components/schemas/TeamOOOCalendarMemberStatus' ReminderType: type: string enum: - UI_NOTIFICATION - EMAIL IneligibilityReason: type: string enum: - MAIN_ACCOUNT_PRIMARY - SYNCED_ALREADY - FREE_BUSY_ONLY 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 CalendarUseType: type: string enum: - UNKNOWN - MULTI_USE - WORK - PERSONAL - FAMILY - TEAM - VACATION - TRAVEL - TEAM_OOO_CALENDAR TeamOOOCalendarCreateRequest: required: - name type: object properties: name: type: string ownerUserId: type: string nullable: true TeamOOOCalendarDetailedView: required: - canManage - createdAt - id - memberCount - members - name - status - type - updatedAt type: object properties: id: type: integer format: int64 name: type: string calendarId: type: string nullable: true calendarName: type: string nullable: true ownerUserId: type: string nullable: true ownerEmail: type: string nullable: true type: $ref: '#/components/schemas/TeamOOOCalendarType' status: $ref: '#/components/schemas/TeamOOOCalendarStatus' memberCount: type: integer format: int32 canManage: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time externalCalendarUrl: type: string nullable: true members: type: array items: $ref: '#/components/schemas/TeamOOOCalendarMemberView' TeamOOOCalendarType: type: string enum: - ACL - MANUAL - ORG_HIERARCHY TeamOOOCalendarView: required: - canManage - createdAt - id - memberCount - name - status - type - updatedAt type: object properties: id: type: integer format: int64 name: type: string calendarId: type: string nullable: true calendarName: type: string nullable: true ownerUserId: type: string nullable: true ownerEmail: type: string nullable: true type: $ref: '#/components/schemas/TeamOOOCalendarType' status: $ref: '#/components/schemas/TeamOOOCalendarStatus' memberCount: type: integer format: int32 canManage: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time externalCalendarUrl: type: string nullable: true TeamOOOCalendarMemberStatus: type: string enum: - ACTIVE - PENDING_SYNC - SYNC_ERROR - CREDENTIALS_REVOKED - NOT_ON_RECLAIM - NOT_ON_PIPELINE TeamOOOCalendarLinkRequest: required: - calendarId type: object properties: calendarId: type: string securitySchemes: Authorization: type: oauth2