openapi: 3.0.3 info: title: vinta_schedule API version: 1.0.0 description: API for vinta_schedule project paths: /billing-profile/create_billing_profile/: post: operationId: billing_profile_create_billing_profile_create description: Create a new billing profile for the authenticated user. summary: Create billing profile tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/BillingProfile' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/create_billing_profile{format}: post: operationId: billing_profile_create_billing_profile_formatted_create description: Create a new billing profile for the authenticated user. summary: Create billing profile parameters: - in: path name: format schema: type: string enum: - .json required: true tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/BillingProfile' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/partial_update_billing_profile/: patch: operationId: billing_profile_partial_update_billing_profile_partial_update description: Partially update the billing profile of the authenticated user. summary: Partially update billing profile tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedBillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedBillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/PatchedBillingProfile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/partial_update_billing_profile{format}: patch: operationId: billing_profile_partial_update_billing_profile_formatted_partial_update description: Partially update the billing profile of the authenticated user. summary: Partially update billing profile parameters: - in: path name: format schema: type: string enum: - .json required: true tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedBillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedBillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/PatchedBillingProfile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/retrieve_billing_profile/: get: operationId: billing_profile_retrieve_billing_profile_retrieve description: Retrieve the billing profile of the authenticated user. summary: Retrieve billing profile tags: - billing-profile security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/retrieve_billing_profile{format}: get: operationId: billing_profile_retrieve_billing_profile_formatted_retrieve description: Retrieve the billing profile of the authenticated user. summary: Retrieve billing profile parameters: - in: path name: format schema: type: string enum: - .json required: true tags: - billing-profile security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/update_billing_profile/: put: operationId: billing_profile_update_billing_profile_update description: Update the billing profile of the authenticated user. summary: Update billing profile tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/BillingProfile' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /billing-profile/update_billing_profile{format}: put: operationId: billing_profile_update_billing_profile_formatted_update description: Update the billing profile of the authenticated user. summary: Update billing profile parameters: - in: path name: format schema: type: string enum: - .json required: true tags: - billing-profile requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillingProfile' multipart/form-data: schema: $ref: '#/components/schemas/BillingProfile' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/BillingProfile' description: '' /calendar-events/: get: operationId: calendar_events_list description: ViewSet for managing calendar events. parameters: - in: query name: calendar schema: type: number description: Filter by calendar ID - in: query name: end_time schema: type: string format: date-time description: End time (less than or equal to) - in: query name: end_time_range_after schema: type: string format: date-time description: End time range - in: query name: end_time_range_before schema: type: string format: date-time description: End time range - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_time schema: type: string format: date-time description: Start time (greater than or equal to) - in: query name: start_time_range_after schema: type: string format: date-time description: Start time range - in: query name: start_time_range_before schema: type: string format: date-time description: Start time range - in: query name: title schema: type: string description: Filter by partial title match tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCalendarEventList' description: '' post: operationId: calendar_events_create description: ViewSet for managing calendar events. tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/CalendarEvent' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' /calendar-events{format}: get: operationId: calendar_events_formatted_list description: ViewSet for managing calendar events. parameters: - in: query name: calendar schema: type: number description: Filter by calendar ID - in: query name: end_time schema: type: string format: date-time description: End time (less than or equal to) - in: query name: end_time_range_after schema: type: string format: date-time description: End time range - in: query name: end_time_range_before schema: type: string format: date-time description: End time range - in: path name: format schema: type: string enum: - .json required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_time schema: type: string format: date-time description: Start time (greater than or equal to) - in: query name: start_time_range_after schema: type: string format: date-time description: Start time range - in: query name: start_time_range_before schema: type: string format: date-time description: Start time range - in: query name: title schema: type: string description: Filter by partial title match tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedCalendarEventList' description: '' post: operationId: calendar_events_formatted_create description: ViewSet for managing calendar events. parameters: - in: path name: format schema: type: string enum: - .json required: true tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/CalendarEvent' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' /calendar-events/{id}/: get: operationId: calendar_events_retrieve description: ViewSet for managing calendar events. parameters: - in: path name: id schema: type: string required: true tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' put: operationId: calendar_events_update description: ViewSet for managing calendar events. parameters: - in: path name: id schema: type: string required: true tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/CalendarEvent' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' patch: operationId: calendar_events_partial_update description: ViewSet for managing calendar events. parameters: - in: path name: id schema: type: string required: true tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCalendarEvent' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' delete: operationId: calendar_events_destroy description: Delete a calendar event. summary: Delete calendar event parameters: - in: path name: id schema: type: string required: true tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '204': description: No response body /calendar-events/{id}{format}: get: operationId: calendar_events_formatted_retrieve description: ViewSet for managing calendar events. parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' put: operationId: calendar_events_formatted_update description: ViewSet for managing calendar events. parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/CalendarEvent' required: true security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' patch: operationId: calendar_events_formatted_partial_update description: ViewSet for managing calendar events. parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true tags: - calendar-events requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedCalendarEvent' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedCalendarEvent' multipart/form-data: schema: $ref: '#/components/schemas/PatchedCalendarEvent' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/CalendarEvent' description: '' delete: operationId: calendar_events_formatted_destroy description: Delete a calendar event. summary: Delete calendar event parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true tags: - calendar-events security: - jwtAuth: [] - cookieAuth: [] responses: '204': description: No response body /calendars/{id}/available-windows/: get: operationId: calendars_available_windows_list description: Get available time windows for a calendar within a specified date range. summary: Get available time windows parameters: - in: query name: end_datetime schema: type: string description: End datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true - in: path name: id schema: type: string required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_datetime schema: type: string description: Start datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true tags: - calendars security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAvailableTimeWindowList' description: '' /calendars/{id}/available-windows{format}: get: operationId: calendars_available_windows_formatted_list description: Get available time windows for a calendar within a specified date range. summary: Get available time windows parameters: - in: query name: end_datetime schema: type: string description: End datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_datetime schema: type: string description: Start datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true tags: - calendars security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedAvailableTimeWindowList' description: '' /calendars/{id}/unavailable-windows/: get: operationId: calendars_unavailable_windows_list description: Get unavailable time windows for a calendar within a specified date range. summary: Get unavailable time windows parameters: - in: query name: end_datetime schema: type: string description: End datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true - in: path name: id schema: type: string required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_datetime schema: type: string description: Start datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true tags: - calendars security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnavailableTimeWindowList' description: '' /calendars/{id}/unavailable-windows{format}: get: operationId: calendars_unavailable_windows_formatted_list description: Get unavailable time windows for a calendar within a specified date range. summary: Get unavailable time windows parameters: - in: query name: end_datetime schema: type: string description: End datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: start_datetime schema: type: string description: Start datetime in ISO format (YYYY-MM-DDTHH:MM:SS) required: true tags: - calendars security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedUnavailableTimeWindowList' description: '' /payments/{id}/payment-update/{provider}/: post: operationId: payments_payment_update_create description: This endpoint is used to receive payment updates from MercadoPago. summary: Receive payment updates parameters: - in: path name: id schema: type: string required: true - in: path name: provider schema: type: string required: true tags: - payments security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: description: Payment update received. description: '' /payments/{id}/payment-update/{provider}{format}: post: operationId: payments_payment_update_formatted_create description: This endpoint is used to receive payment updates from MercadoPago. summary: Receive payment updates parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true - in: path name: provider schema: type: string required: true tags: - payments security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: description: Payment update received. description: '' /payments/{id}/subscription-payment-update/{provider}/: post: operationId: payments_subscription_payment_update_create description: This endpoint is used to receive subscription payment updates from MercadoPago. summary: Receive subscription payment updates parameters: - in: path name: id schema: type: string required: true - in: path name: provider schema: type: string required: true tags: - payments security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: description: Subscription payment update received. description: '' /payments/{id}/subscription-payment-update/{provider}{format}: post: operationId: payments_subscription_payment_update_formatted_create description: This endpoint is used to receive subscription payment updates from MercadoPago. summary: Receive subscription payment updates parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: id schema: type: string required: true - in: path name: provider schema: type: string required: true tags: - payments security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: description: Subscription payment update received. description: '' /profile/{user}/: get: operationId: profile_retrieve description: Retrieve the profile of the currently authenticated user or a specific user. parameters: - in: path name: user schema: type: string description: User ID to retrieve or update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' put: operationId: profile_update parameters: - in: path name: user schema: type: string description: User ID to update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile requestBody: content: application/json: schema: $ref: '#/components/schemas/Profile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Profile' multipart/form-data: schema: $ref: '#/components/schemas/Profile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' patch: operationId: profile_partial_update parameters: - in: path name: user schema: type: string description: User ID to update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedProfile' multipart/form-data: schema: $ref: '#/components/schemas/PatchedProfile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' /profile/{user}{format}: get: operationId: profile_formatted_retrieve description: Retrieve the profile of the currently authenticated user or a specific user. parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: user schema: type: string description: User ID to retrieve or update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' put: operationId: profile_formatted_update parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: user schema: type: string description: User ID to update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile requestBody: content: application/json: schema: $ref: '#/components/schemas/Profile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Profile' multipart/form-data: schema: $ref: '#/components/schemas/Profile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' patch: operationId: profile_formatted_partial_update parameters: - in: path name: format schema: type: string enum: - .json required: true - in: path name: user schema: type: string description: User ID to update the profile. Use 'me' to refer to the currently authenticated user. required: true tags: - profile requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedProfile' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedProfile' multipart/form-data: schema: $ref: '#/components/schemas/PatchedProfile' security: - jwtAuth: [] - cookieAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/Profile' description: '' components: schemas: AvailableTimeWindow: type: object properties: id: type: integer start_time: type: string format: date-time end_time: type: string format: date-time can_book_partially: type: boolean required: - can_book_partially - end_time - id - start_time BillingAddress: type: object description: Serializer for BillingAddress virtual model. properties: id: type: integer readOnly: true street_name: type: string street_number: type: string neighborhood: type: string address_line_2: type: string city: type: string maxLength: 255 state: type: string maxLength: 255 country: type: string maxLength: 255 zip_code: type: string maxLength: 10 required: - city - country - id - state - street_name - street_number - zip_code BillingProfile: type: object description: Serializer for BillingProfile virtual model. properties: id: type: integer readOnly: true document_type: type: string maxLength: 50 document_number: type: string maxLength: 50 billing_address: $ref: '#/components/schemas/BillingAddress' created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - billing_address - created - document_number - document_type - id - modified CalendarEvent: type: object properties: id: type: integer readOnly: true provider: type: string writeOnly: true title: type: string maxLength: 255 description: type: string start_time: type: string format: date-time end_time: type: string format: date-time created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true external_id: type: string readOnly: true external_attendances: type: array items: $ref: '#/components/schemas/EventExternalAttendance' attendances: type: array items: $ref: '#/components/schemas/EventAttendance' resource_allocations: type: array items: $ref: '#/components/schemas/ResourceAllocation' recurrence_rule: allOf: - $ref: '#/components/schemas/RecurrenceRule' readOnly: true recurrence_rule_data: allOf: - $ref: '#/components/schemas/RecurrenceRule' writeOnly: true description: Recurrence rule data for creating recurring events rrule_string: type: string writeOnly: true description: RRULE string for creating recurring events parent_event_id: type: integer writeOnly: true description: ID of parent event for recurring instances parent_event: allOf: - $ref: '#/components/schemas/ParentEvent' readOnly: true is_recurring_instance: type: boolean description: True if this is an instance of a recurring event readOnly: true is_recurring: type: boolean description: True if this is a recurring event readOnly: true is_recurring_exception: type: boolean description: True if this event is an exception to the recurrence rule (modified occurrence) recurrence_id: type: string format: date-time nullable: true description: For recurring event instances, this identifies which occurrence this is google_calendar_service_account: type: integer writeOnly: true calendar: type: integer writeOnly: true required: - attendances - created - end_time - external_attendances - external_id - id - is_recurring - is_recurring_instance - modified - parent_event - recurrence_rule - resource_allocations - start_time - title EventAttendance: type: object properties: id: type: integer nullable: true description: ID of the external attendee. user: allOf: - $ref: '#/components/schemas/User' readOnly: true user_id: type: integer writeOnly: true status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - created - modified - status - user - user_id EventExternalAttendance: type: object properties: id: type: integer nullable: true description: ID of the external attendee. external_attendee: $ref: '#/components/schemas/ExternalAttendee' status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - created - external_attendee - modified - status ExternalAttendee: type: object properties: id: type: integer nullable: true description: ID of the external attendee. name: type: string maxLength: 255 email: type: string format: email maxLength: 254 created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - created - email - modified FrequencyEnum: enum: - DAILY - WEEKLY - MONTHLY - YEARLY type: string description: |- * `DAILY` - Daily * `WEEKLY` - Weekly * `MONTHLY` - Monthly * `YEARLY` - Yearly PaginatedAvailableTimeWindowList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/AvailableTimeWindow' PaginatedCalendarEventList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/CalendarEvent' PaginatedUnavailableTimeWindowList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/UnavailableTimeWindow' ParentEvent: type: object properties: id: type: integer readOnly: true title: type: string maxLength: 255 external_id: type: string readOnly: true start_time: type: string format: date-time end_time: type: string format: date-time created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - created - end_time - external_id - id - modified - start_time - title PatchedBillingProfile: type: object description: Serializer for BillingProfile virtual model. properties: id: type: integer readOnly: true document_type: type: string maxLength: 50 document_number: type: string maxLength: 50 billing_address: $ref: '#/components/schemas/BillingAddress' created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true PatchedCalendarEvent: type: object properties: id: type: integer readOnly: true provider: type: string writeOnly: true title: type: string maxLength: 255 description: type: string start_time: type: string format: date-time end_time: type: string format: date-time created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true external_id: type: string readOnly: true external_attendances: type: array items: $ref: '#/components/schemas/EventExternalAttendance' attendances: type: array items: $ref: '#/components/schemas/EventAttendance' resource_allocations: type: array items: $ref: '#/components/schemas/ResourceAllocation' recurrence_rule: allOf: - $ref: '#/components/schemas/RecurrenceRule' readOnly: true recurrence_rule_data: allOf: - $ref: '#/components/schemas/RecurrenceRule' writeOnly: true description: Recurrence rule data for creating recurring events rrule_string: type: string writeOnly: true description: RRULE string for creating recurring events parent_event_id: type: integer writeOnly: true description: ID of parent event for recurring instances parent_event: allOf: - $ref: '#/components/schemas/ParentEvent' readOnly: true is_recurring_instance: type: boolean description: True if this is an instance of a recurring event readOnly: true is_recurring: type: boolean description: True if this is a recurring event readOnly: true is_recurring_exception: type: boolean description: True if this event is an exception to the recurrence rule (modified occurrence) recurrence_id: type: string format: date-time nullable: true description: For recurring event instances, this identifies which occurrence this is google_calendar_service_account: type: integer writeOnly: true calendar: type: integer writeOnly: true PatchedProfile: type: object properties: id: type: integer readOnly: true first_name: type: string maxLength: 255 last_name: type: string maxLength: 255 profile_picture: type: string format: uri nullable: true Profile: type: object properties: id: type: integer readOnly: true first_name: type: string maxLength: 255 last_name: type: string maxLength: 255 profile_picture: type: string format: uri nullable: true required: - id RecurrenceRule: type: object properties: id: type: integer readOnly: true frequency: allOf: - $ref: '#/components/schemas/FrequencyEnum' description: |- How often the event repeats (DAILY, WEEKLY, MONTHLY, YEARLY) * `DAILY` - Daily * `WEEKLY` - Weekly * `MONTHLY` - Monthly * `YEARLY` - Yearly interval: type: integer maximum: 2147483647 minimum: 0 description: The interval between each frequency iteration (e.g., every 2 weeks) count: type: integer maximum: 2147483647 minimum: 0 nullable: true description: Number of occurrences after which the recurrence ends until: type: string format: date-time nullable: true description: The date and time until which the recurrence is valid by_weekday: type: string description: Comma-separated list of weekdays (e.g., 'MO,WE,FR') maxLength: 100 by_month_day: type: string description: Comma-separated list of month days (e.g., '1,15,-1' for 1st, 15th, last day) maxLength: 100 by_month: type: string description: Comma-separated list of months (1-12) maxLength: 50 by_year_day: type: string description: Comma-separated list of year days (1-366 or -366 to -1) maxLength: 100 by_week_number: type: string description: Comma-separated list of week numbers (1-53 or -53 to -1) maxLength: 100 by_hour: type: string description: Comma-separated list of hours (0-23) maxLength: 100 by_minute: type: string description: Comma-separated list of minutes (0-59) maxLength: 200 by_second: type: string description: Comma-separated list of seconds (0-59) maxLength: 200 week_start: allOf: - $ref: '#/components/schemas/WeekStartEnum' description: |- First day of the week * `MO` - Monday * `TU` - Tuesday * `WE` - Wednesday * `TH` - Thursday * `FR` - Friday * `SA` - Saturday * `SU` - Sunday rrule_string: type: string readOnly: true created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - created - frequency - id - modified - rrule_string ResourceAllocation: type: object properties: id: type: integer nullable: true description: ID of the external attendee. calendar: type: integer status: allOf: - $ref: '#/components/schemas/StatusEnum' readOnly: true created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true required: - calendar - created - modified - status StatusEnum: enum: - accepted - declined - pending type: string description: |- * `accepted` - Accepted * `declined` - Declined * `pending` - Pending UnavailableTimeWindow: type: object properties: id: type: integer reason: type: string start_time: type: string format: date-time end_time: type: string format: date-time reason_description: type: string readOnly: true required: - end_time - id - reason - reason_description - start_time User: type: object properties: id: type: integer readOnly: true email: type: string format: email readOnly: true phone_number: type: string readOnly: true username: type: string description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. pattern: ^[\w.-]+$ maxLength: 150 minLength: 3 profile: $ref: '#/components/schemas/Profile' is_active: type: boolean readOnly: true description: Designates whether this user should be treated as active. Unselect this instead of deleting accounts. is_staff: type: boolean readOnly: true description: Designates whether the user can log into this admin site. is_superuser: type: boolean readOnly: true title: Superuser status description: Designates that this user has all permissions without explicitly assigning them. created: type: string format: date-time readOnly: true modified: type: string format: date-time readOnly: true last_login: type: string format: date-time readOnly: true nullable: true required: - created - email - id - is_active - is_staff - is_superuser - last_login - modified - phone_number - profile - username WeekStartEnum: enum: - MO - TU - WE - TH - FR - SA - SU type: string description: |- * `MO` - Monday * `TU` - Tuesday * `WE` - Wednesday * `TH` - Thursday * `FR` - Friday * `SA` - Saturday * `SU` - Sunday securitySchemes: cookieAuth: type: apiKey in: cookie name: sessionid jwtAuth: type: http scheme: bearer bearerFormat: JWT