> ## Documentation Index
> Fetch the complete documentation index at: https://cal.id/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a team

> Update team details for the authenticated user



## OpenAPI

````yaml /openapi.json patch /teams/{teamId}
openapi: 3.1.0
info:
  title: Cal ID API
  description: >-
    API documentation for external developers integrating with Cal ID. This
    documentation is auto-generated from our OpenAPI specification and includes
    details on all available endpoints, request/response schemas, and
    authentication methods.


    Authentication is required for all endpoints and can be done using API key
    generated from the Cal ID dashboard under the `settings/developer/api-keys`
    page. Use the Authorization header with the Bearer scheme to authenticate
    your requests.


    Example:

    - API Key: `Authorization: Bearer calid_xxxxx`


    Note: To manage Team's resources use the Team's owner/admin API key
  version: 1.0.0
  contact:
    name: API Support
    email: support@cal.id
    url: https://cal.id
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.cal.id
    description: 'Production server '
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Health check endpoints
  - name: Users
    description: User management endpoints
  - name: Event Types
    description: Event type management endpoints
  - name: Teams
    description: Team management endpoints
  - name: Team Event Types
    description: Event type management endpoints for teams
  - name: Team Memberships
    description: Membership management endpoints for teams
  - name: Team Schedules
    description: Schedule management endpoints for teams
  - name: Availability
    description: User availability management endpoints
  - name: Schedule
    description: User schedule management endpoints
  - name: Slots
    description: Available slots retrieval endpoints
  - name: Booking
    description: Event booking endpoints
paths:
  /teams/{teamId}:
    patch:
      tags:
        - Teams
      summary: Update a team
      description: Update team details for the authenticated user
      operationId: update_team_details
      parameters:
        - schema:
            type: integer
            exclusiveMinimum: 0
            example: 42
            minimum: 1
          in: path
          name: teamId
          required: true
          description: Numeric team identifier.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: Team display name.
                  example: Growth Team
                slug:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: >-
                    Optional URL slug. Generated from `name` when omitted on
                    create.
                  example: growth-team
                bio:
                  description: Optional team biography or description.
                  example: Team managing growth and acquisition programs.
                  type: string
                  nullable: true
                logoUrl:
                  description: Optional public logo URL.
                  example: https://cdn.example.com/team-logo.png
                  format: uri
                  type: string
                  nullable: true
                hideTeamBranding:
                  type: boolean
                  default: false
                  description: Whether team branding should be hidden in booking pages.
                  example: false
                hideTeamProfileLink:
                  type: boolean
                  default: false
                  description: Whether team profile links should be hidden publicly.
                  example: false
                isTeamPrivate:
                  type: boolean
                  default: false
                  description: Whether team resources are private by default.
                  example: false
                hideBookATeamMember:
                  type: boolean
                  default: false
                  description: Whether booking a specific team member is disabled.
                  example: false
                theme:
                  description: Optional UI theme preference for team pages.
                  example: light
                  type: string
                  nullable: true
                brandColor:
                  description: Optional primary brand color hex value.
                  example: '#2563eb'
                  type: string
                  nullable: true
                darkBrandColor:
                  description: Optional dark-mode brand color hex value.
                  example: '#1e3a8a'
                  type: string
                  nullable: true
                timeFormat:
                  description: 'Preferred time format. Allowed values: 12 or 24.'
                  example: 24
                  minimum: 12
                  maximum: 24
                  type: integer
                  nullable: true
                timeZone:
                  type: string
                  default: Asia/Kolkata
                  description: IANA timezone identifier used for team scheduling defaults.
                  example: Asia/Kolkata
                weekStart:
                  type: string
                  default: Monday
                  description: Week start day label used for calendar preferences.
                  example: Monday
                metadata:
                  description: Arbitrary metadata payload associated with the team.
                  example:
                    source: api
                bookingFrequency:
                  description: Optional booking frequency configuration payload.
                  example:
                    maxBookingsPerDay: 10
              additionalProperties: false
              example:
                name: Growth Team APAC
      responses:
        '200':
          description: Team updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      slug:
                        type:
                          - 'null'
                          - string
                      bio:
                        type:
                          - 'null'
                          - string
                      logoUrl:
                        type:
                          - 'null'
                          - string
                      hideTeamBranding:
                        type: boolean
                      hideTeamProfileLink:
                        type: boolean
                      isTeamPrivate:
                        type: boolean
                      hideBookATeamMember:
                        type: boolean
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      metadata:
                        anyOf:
                          - {}
                          - type: 'null'
                      theme:
                        type:
                          - 'null'
                          - string
                      brandColor:
                        type:
                          - 'null'
                          - string
                      darkBrandColor:
                        type:
                          - 'null'
                          - string
                      timeFormat:
                        type:
                          - 'null'
                          - number
                      timeZone:
                        type: string
                      weekStart:
                        type: string
                      bookingFrequency:
                        anyOf:
                          - {}
                          - type: 'null'
                      memberCount:
                        type: number
                      eventTypeCount:
                        type: number
                    required:
                      - id
                      - name
                      - slug
                      - bio
                      - logoUrl
                      - hideTeamBranding
                      - hideTeamProfileLink
                      - isTeamPrivate
                      - hideBookATeamMember
                      - createdAt
                      - updatedAt
                      - theme
                      - brandColor
                      - darkBrandColor
                      - timeFormat
                      - timeZone
                      - weekStart
                    additionalProperties: false
                  message:
                    type: string
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          page:
                            type: number
                          limit:
                            type: number
                          total:
                            type: number
                          totalPages:
                            type: number
                        required:
                          - page
                          - limit
                          - total
                          - totalPages
                        additionalProperties: false
                    additionalProperties: {}
                required:
                  - success
                additionalProperties: false
                description: Team updated successfully
        '400':
          description: Invalid team data
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Invalid team data
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Unauthorized
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Insufficient permissions
        '404':
          description: Team not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Team not found
        '409':
          description: Team slug already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Team slug already exists
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT | API Key
      description: |-

        Use the Authorization header with Bearer scheme.

        Examples:
        - API Key: Authorization: Bearer calid_xxxxx
            

````

## Related topics

- [Managing Team Settings and Profile](/docs/teams/settings.md)
- [Update a team member](/docs/api-reference/team-memberships/update-a-team-member.md)
- [Update a team event type](/docs/api-reference/team-event-types/update-a-team-event-type.md)
- [Manage team members](/docs/developers/guides/manage-team-members.md)
- [Update a contact](/docs/api-reference/contacts/update-a-contact.md)
