> ## 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 availability

> Récupérer la disponibilité et les heures d'occupation pour un lien de prise de rendez-vous spécifique. Ce point de terminaison est utile pour vérifier les créneaux disponibles pour la réservation de réunions en fonction du slug fourni. Il nécessite de spécifier le fuseau horaire et permet éventuellement d'ajuster l'affichage du mois avec un décalage.

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/book/availability-page/{slug}
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/book/availability-page/{slug}:
    get:
      tags:
        - Basic
      summary: Récupérer la disponibilité
      description: >-
        Récupérer la disponibilité et les heures d'occupation pour un lien de
        prise de rendez-vous spécifique. Ce point de terminaison est utile pour
        vérifier les créneaux disponibles pour la réservation de réunions en
        fonction du slug fourni. Il nécessite de spécifier le fuseau horaire et
        permet éventuellement d'ajuster l'affichage du mois avec un décalage.
      operationId: >-
        get-/scheduler/2026-03/meetings/meeting-links/book/availability-page/{slug}
      parameters:
        - name: slug
          in: path
          description: >-
            L'identifiant unique du lien de prise de rendez-vous dont la
            disponibilité est récupérée.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: timezone
          in: query
          description: >-
            Le fuseau horaire dans lequel la disponibilité doit être vérifiée.
            Ce paramètre est obligatoire.
          required: true
          style: form
          explode: true
          schema:
            type: string
        - name: monthOffset
          in: query
          description: >-
            Un entier facultatif pour ajuster l'affichage du mois. Cela vous
            permet de consulter les disponibilités pour les mois futurs ou
            passés.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalLinkAvailabilityAndBusyTimes'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - scheduler.meetings.meeting-link.read
components:
  schemas:
    ExternalLinkAvailabilityAndBusyTimes:
      required:
        - allUsersBusyTimes
      type: object
      properties:
        allUsersBusyTimes:
          type: array
          description: >-
            Un tableau d'objets représentant les plages horaires
            d'indisponibilité de tous les utilisateurs associés au lien de prise
            de rendez-vous. Chaque objet inclut les plages horaires
            d'indisponibilité de l'utilisateur.
          items:
            $ref: '#/components/schemas/ExternalUserBusyTimes'
        linkAvailability:
          $ref: '#/components/schemas/ExternalLinkAvailability'
    ExternalUserBusyTimes:
      required:
        - busyTimes
        - isOffline
        - meetingsUser
      type: object
      properties:
        busyTimes:
          type: array
          description: >-
            Un tableau de plages horaires pendant lesquelles l'utilisateur est
            occupé. Chaque plage horaire est représentée par un objet avec des
            heures de début et de fin.
          items:
            $ref: '#/components/schemas/ExternalTimeRange'
        isOffline:
          type: boolean
          description: Un booléen indiquant si l'utilisateur est actuellement hors ligne.
        meetingsUser:
          $ref: '#/components/schemas/ExternalMeetingsUser'
    ExternalLinkAvailability:
      required:
        - hasMore
        - linkAvailabilityByDuration
      type: object
      properties:
        hasMore:
          type: boolean
          description: >-
            Un booléen indiquant s'il existe d'autres plages horaires de réunion
            disponibles au-delà de celles actuellement fournies.
        linkAvailabilityByDuration:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExternalLinkAvailabilityForDuration'
          description: >-
            Un objet où chaque clé est une durée et la valeur est un objet de
            disponibilité pour cette durée. Cela fournit des informations
            détaillées sur la disponibilité pour chaque durée de réunion
            spécifiée.
    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
    ExternalTimeRange:
      required:
        - end
        - start
      type: object
      properties:
        end:
          type: integer
          description: >-
            La fin de la plage horaire, représentée par un entier au format
            int64.
          format: int64
        start:
          type: integer
          description: >-
            Le début de la plage horaire, représenté sous forme d'entier au
            format int64.
          format: int64
    ExternalMeetingsUser:
      required:
        - calendarProvider
        - id
        - isSalesStarter
        - userId
        - userProfile
      type: object
      properties:
        calendarProvider:
          type: string
          description: "Le fournisseur de services de calendrier utilisé par l'utilisateur. Valeurs valides\_: GOOGLE, OFFICE365, EXCHANGE, UNKNOWN."
          enum:
            - EXCHANGE
            - GOOGLE
            - OFFICE365
            - UNKNOWN
        id:
          type: string
          description: L'identifiant unique de l'utilisateur des réunions.
        isSalesStarter:
          type: boolean
          description: Un booléen indiquant si l'utilisateur est un sales starter.
        userId:
          type: string
          description: >-
            L'identifiant unique de l'utilisateur associé au service de
            réunions.
        userProfile:
          $ref: '#/components/schemas/ExternalUserProfile'
    ExternalLinkAvailabilityForDuration:
      required:
        - availabilities
        - meetingDurationMillis
      type: object
      properties:
        availabilities:
          type: array
          description: >-
            Un tableau des plages horaires disponibles pour la durée de réunion
            spécifiée. Chaque élément représente les heures de début et de fin
            d'une plage horaire.
          items:
            $ref: '#/components/schemas/ExternalMeetingAvailability'
        meetingDurationMillis:
          type: integer
          description: >-
            La durée de la réunion en millisecondes. Il s'agit d'une valeur
            entière représentant la longueur de la réunion.
          format: int64
    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.
    ExternalUserProfile:
      required:
        - email
      type: object
      properties:
        email:
          type: string
          description: >-
            L'adresse e-mail de l'utilisateur. Il s'agit d'une propriété de
            chaîne de caractères requise.
        firstName:
          type: string
          description: Le prénom de l'utilisateur. Il s'agit d'une chaîne de caractères.
        fullName:
          type: string
          description: >-
            Le nom complet de l'utilisateur, combinant le prénom et le nom de
            famille. Il s'agit d'une chaîne de caractères.
        lastName:
          type: string
          description: >-
            Le nom de famille de l'utilisateur. Il s'agit d'une chaîne de
            caractères.
    ExternalMeetingAvailability:
      required:
        - endMillisUtc
        - startMillisUtc
      type: object
      properties:
        endMillisUtc:
          type: integer
          description: >-
            L'heure de fin de la disponibilité de la réunion, représentée sous
            forme d'horodatage Unix en millisecondes.
          format: int64
        startMillisUtc:
          type: integer
          description: >-
            L'heure de début de la disponibilité de la réunion, représentée par
            un horodatage Unix en millisecondes.
          format: int64
  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: ''

````