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

# Search the team members who can host an Event

> Returns the accepted members of the team that owns the Event, so you can pick who to send in `hosts` when updating the Event with `PATCH /v2/events/{uuid}`. Members whose invitation to the team is still pending are left out. `search` matches name or email, case-insensitive.

The order of the members is unspecified; sort them on your side if you show them sorted. Cursor-based pagination: pass `pagination.nextCursor` from a previous response as the `cursor` query parameter to fetch the next page; omit `cursor` for the first page.

Only team Events have host candidates; a personal Event returns 400. The authenticated user must be able to update the Event: its owner, one of its hosts, or a team member with the permission below. An accepted co-host cannot change hosts and gets 404, exactly like an unknown uuid.

PBAC permission for team events: `calEvent.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control.

If accessed using an OAuth access token, the `EVENT_WRITE` scope is required.



## OpenAPI

````yaml /api-reference/v2/openapi.json get /v2/events/{uuid}/host-candidates
openapi: 3.0.0
info:
  title: Cal.com API v2
  description: ''
  version: 1.0.0
  contact: {}
servers: []
security: []
tags: []
paths:
  /v2/events/{uuid}/host-candidates:
    get:
      tags:
        - Events
      summary: Search the team members who can host an Event
      description: >-
        Returns the accepted members of the team that owns the Event, so you can
        pick who to send in `hosts` when updating the Event with `PATCH
        /v2/events/{uuid}`. Members whose invitation to the team is still
        pending are left out. `search` matches name or email, case-insensitive.


        The order of the members is unspecified; sort them on your side if you
        show them sorted. Cursor-based pagination: pass `pagination.nextCursor`
        from a previous response as the `cursor` query parameter to fetch the
        next page; omit `cursor` for the first page.


        Only team Events have host candidates; a personal Event returns 400. The
        authenticated user must be able to update the Event: its owner, one of
        its hosts, or a team member with the permission below. An accepted
        co-host cannot change hosts and gets 404, exactly like an unknown uuid.


        PBAC permission for team events: `calEvent.update`. Learn more about API
        access control at https://cal.com/docs/api-reference/v2/access-control.


        If accessed using an OAuth access token, the `EVENT_WRITE` scope is
        required.
      operationId: EventHostCandidatesController_list
      parameters:
        - name: uuid
          required: true
          in: path
          description: >-
            Event UUID. Accepts the canonical UUID (e.g.
            `018ff5cd-6dc4-7d57-bcbc-374702ca8b38`) or its short-uuid (Flickr
            Base58) form (e.g. `1cbZYoAFoJdwqN4tixezd5`).
          schema:
            type: string
            format: uuid
        - name: cursor
          required: false
          in: query
          description: >-
            Opaque cursor for cursor-based pagination. Pass the
            `pagination.nextCursor` value from a previous response to fetch the
            next page. Omit to fetch the first page.
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: Maximum number of team members to return.
          schema:
            minimum: 1
            maximum: 250
            default: 50
            example: 25
            type: number
        - name: search
          required: false
          in: query
          description: >-
            Filter by the team member's name or email, case-insensitive
            substring match.
          schema:
            maxLength: 255
            type: string
        - name: Authorization
          in: header
          description: >-
            value must be `Bearer <token>` where `<token>` is api key prefixed
            with cal_, managed user access token, or OAuth access token
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HostCandidatesOutputResponseDto'
        '400':
          description: >-
            Invalid Event UUID, invalid cursor or query, or the Event is a
            personal Event
        '401':
          description: Unauthenticated
        '403':
          description: Insufficient permissions
        '404':
          description: Event not found
components:
  schemas:
    HostCandidatesOutputResponseDto:
      type: object
      properties:
        status:
          enum:
            - success
            - error
          type: string
          example: success
        data:
          type: array
          items:
            $ref: '#/components/schemas/HostCandidateOutputDto'
        pagination:
          $ref: '#/components/schemas/EventsCursorPaginationMetaDto'
      required:
        - status
        - data
        - pagination
    HostCandidateOutputDto:
      type: object
      properties:
        userId:
          type: number
          description: User id. Send it in `hosts` when updating the Event.
          example: 42
        name:
          type: string
          nullable: true
          example: Ada Lovelace
        username:
          type: string
          nullable: true
          example: ada
        email:
          type: string
          example: ada@example.com
        avatarUrl:
          type: string
          nullable: true
      required:
        - userId
        - name
        - username
        - email
        - avatarUrl
    EventsCursorPaginationMetaDto:
      type: object
      properties:
        nextCursor:
          type: string
          nullable: true
          description: >-
            Opaque cursor to fetch the next page. Pass this value as the
            `cursor` query parameter on the next request. `null` when `hasMore`
            is `false`.
          example: >-
            eyJ2IjoyLCJzdGFydFRpbWUiOiIyMDMwLTAxLTAxVDAwOjAwOjAwLjAwMFoiLCJldmVudFR5cGVVdWlkIjoiMDE4ZjRjMmUtM2YxYS03YWJjLTlkZWYtMDEyMzQ1Njc4OWFiIn0
        hasMore:
          type: boolean
          description: Whether more pages are available after this one.
          example: true
      required:
        - nextCursor
        - hasMore

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.