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

# Retrieve meeting scheduling pages

> Récupérer une liste de liens de réunion disponibles dans le compte HubSpot. Ce point de terminaison permet de filtrer selon divers critères, tels que le nom de la réunion, l'ID de l'utilisateur organisateur et le type de réunion. Il prend en charge la pagination pour naviguer à travers de grands ensembles de résultats.

export const ScopesList = ({scopes = [], description = "Cette API requiert l'une des portées suivantes :"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produits pris en charge",
    description: "Exige l'un des produits suivants ou un produit supérieur.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuit",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Entreprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'scheduler.meetings.meeting-link.read'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-03/scheduler-meetings-v2026-03.json GET /scheduler/2026-03/meetings/meeting-links
openapi: 3.0.1
info:
  title: Scheduler Meetings
  description: Meetings Service For HubSpot Sales
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
paths:
  /scheduler/2026-03/meetings/meeting-links:
    get:
      tags:
        - Basic
      summary: Lister les liens de réunion
      description: >-
        Récupérer une liste de liens de réunion disponibles dans le compte
        HubSpot. Ce point de terminaison permet de filtrer selon divers
        critères, tels que le nom de la réunion, l'ID de l'utilisateur
        organisateur et le type de réunion. Il prend en charge la pagination
        pour naviguer à travers de grands ensembles de résultats.
      operationId: get-/scheduler/2026-03/meetings/meeting-links
      parameters:
        - name: after
          in: query
          description: >-
            Le jeton de curseur de pagination de la dernière ressource lue avec
            succès, utilisé pour la pagination.
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: limit
          in: query
          description: Le nombre maximum de résultats à afficher par page.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: Filtrer les liens de réunion par nom.
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: organizerUserId
          in: query
          description: >-
            Filtrer les liens de prise de rendez-vous par l'ID utilisateur de
            l'organisateur.
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: type
          in: query
          description: "Filtrer les liens de prise de rendez-vous par type\_: les valeurs valides sont PERSONAL_LINK, GROUP_CALENDAR et ROUND_ROBIN_CALENDAR."
          required: false
          style: form
          explode: true
          schema:
            type: string
            enum:
              - GROUP_CALENDAR
              - PERSONAL_LINK
              - ROUND_ROBIN_CALENDAR
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CollectionResponseWithTotalExternalLinkMetadata
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - scheduler.meetings.meeting-link.read
components:
  schemas:
    CollectionResponseWithTotalExternalLinkMetadata:
      required:
        - results
        - total
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        results:
          type: array
          description: >-
            Un tableau d'objets de métadonnées de liens externes. Chaque objet
            contient des détails sur un lien de prise de rendez-vous externe.
          items:
            $ref: '#/components/schemas/ExternalLinkMetadata'
        total:
          type: integer
          description: >-
            Le nombre total d'entrées de métadonnées de liens externes
            disponibles. Il s'agit d'une valeur entière.
          format: int32
    Paging:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/NextPage'
        prev:
          $ref: '#/components/schemas/PreviousPage'
    ExternalLinkMetadata:
      required:
        - createdAt
        - defaultLink
        - id
        - link
        - organizerUserId
        - slug
        - type
        - userIdsOfLinkMembers
      type: object
      properties:
        createdAt:
          type: string
          description: "La date et l'heure de création du lien de réunion, au format ISO\_8601."
          format: date-time
        defaultLink:
          type: boolean
          description: Un booléen indiquant s'il s'agit du lien de réunion par défaut.
        id:
          type: string
          description: Identifiant unique du lien de prise de rendez-vous.
        link:
          type: string
          description: L'URL complète du lien de prise de rendez-vous.
        name:
          type: string
          description: Le nom du lien de prise de rendez-vous.
        organizerUserId:
          type: string
          description: L'identifiant unique de l'utilisateur qui a organisé la réunion.
        paymentLinkId:
          type: string
          description: >-
            Un entier représentant l'identifiant du lien de paiement associé à
            la réunion.
        slug:
          type: string
          description: >-
            Une chaîne représentant la partie unique de l'URL du lien de
            réunion.
        type:
          type: string
          description: "Le type de lien de prise de rendez-vous. Les valeurs valides sont\_: «\_PERSONAL_LINK\_», «\_GROUP_CALENDAR\_» et «\_ROUND_ROBIN_CALENDAR\_»."
          enum:
            - GROUP_CALENDAR
            - PERSONAL_LINK
            - ROUND_ROBIN_CALENDAR
        updatedAt:
          type: string
          description: "La date et l'heure de la dernière mise à jour du lien de prise de rendez-vous, au format ISO\_8601."
          format: date-time
        userIdsOfLinkMembers:
          type: array
          description: >-
            Un tableau d'ID d'utilisateurs représentant les membres associés au
            lien de prise de rendez-vous.
          items:
            type: string
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur. Il s'agit d'une chaîne de caractères.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexte de la condition d'erreur. Il s'agit d'un objet où chaque
            propriété est un tableau de chaînes.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la requête. Incluez cette valeur dans
            tous les rapports d'erreur ou tickets d'assistance. Il s'agit d'une
            chaîne au format UUID.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Information supplémentaire sur l'erreur. Il s'agit d'un tableau
            d'objets ErrorDetail.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associées contenant de la
            documentation sur l'erreur ou les étapes de correction recommandées.
            Il s'agit d'un objet dont chaque propriété est une chaîne de
            caractères.
        message:
          type: string
          description: >-
            Un message lisible par l'utilisateur décrivant l'erreur ainsi que
            les mesures correctives à prendre, le cas échéant. Il s'agit d'une
            chaîne de caractères.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur. Il s'agit d'une chaîne de caractères.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    NextPage:
      required:
        - after
      type: object
      properties:
        after:
          type: string
          description: >-
            Une chaîne représentant le jeton de curseur de pagination pour
            l'ensemble de résultats suivant.
        link:
          type: string
          description: Chaîne contenant le lien URL vers la page de résultats suivante.
      description: >-
        Specifies the paging information needed to retrieve the next set of
        results in a paginated API response
    PreviousPage:
      required:
        - before
      type: object
      properties:
        before:
          type: string
          description: >-
            Un jeton de chaîne utilisé pour récupérer la page de résultats
            précédente.
        link:
          type: string
          description: >-
            Une URL de chaîne qui fournit un lien direct vers la page de
            résultats précédente.
      description: >-
        specifies the paging information needed to retrieve the previous set of
        results in a paginated API response
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: >-
            Le code de statut associé au détail de l'erreur. Il s'agit d'une
            propriété de type chaîne de caractères.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Contexte de la condition d'erreur, représenté sous la forme d'un
            objet où chaque propriété est un tableau de chaînes de caractères
            fournissant des informations supplémentaires.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: Le nom du champ ou du paramètre dans lequel l'erreur a été trouvée.
        message:
          type: string
          description: >-
            Un message lisible par l'utilisateur décrivant l'erreur ainsi que
            les mesures correctives à prendre, le cas échéant. Cette propriété
            de chaîne est obligatoire.
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur. Il s'agit d'une propriété de type chaîne de caractères.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            crm.objects.contacts.sensitive.write.v2: ''
            meetings-write: ''
            scheduler.meetings.meeting-link.read: ''

````