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

# Book a meeting

> Réserver une réunion à l'aide d'un lien de réunion spécifié. Ce point de terminaison vous permet de créer une réunion en fournissant les détails nécessaires, tels que la durée, l'e-mail et l'heure de début. Il est utile pour planifier des réunions par programmation via l'API de HubSpot.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/2026-03/scheduler-meetings-v2026-03.json POST /scheduler/2026-03/meetings/meeting-links/book
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:
    post:
      tags:
        - Advanced
      summary: Réserver une réunion
      description: >-
        Réserver une réunion à l'aide d'un lien de réunion spécifié. Ce point de
        terminaison vous permet de créer une réunion en fournissant les détails
        nécessaires, tels que la durée, l'e-mail et l'heure de début. Il est
        utile pour planifier des réunions par programmation via l'API de
        HubSpot.
      operationId: post-/scheduler/2026-03/meetings/meeting-links/book
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalMeetingBooking'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalMeetingBookingResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.commercepayments.write
        - oauth2:
            - crm.objects.goals.write
        - oauth2:
            - crm.objects.line_items.write
        - oauth2:
            - crm.objects.contacts.write
        - oauth2:
            - crm.objects.products.write
        - oauth2:
            - crm.objects.projects.write
        - oauth2:
            - crm.objects.projects.sensitive.write
        - oauth2:
            - crm.objects.contacts.sensitive.write.v2
        - oauth2:
            - crm.objects.services.write
        - oauth2:
            - crm.objects.deals.sensitive.write.v2
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - crm.objects.listings.write
        - oauth2:
            - crm.objects.appointments.sensitive.write.v2
        - oauth2:
            - crm.objects.companies.write
        - oauth2:
            - crm.objects.courses.write
        - oauth2:
            - crm.objects.appointments.write
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - crm.objects.deals.write
        - oauth2:
            - crm.objects.projects.highly_sensitive.write
        - oauth2:
            - crm.objects.companies.sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.write.v2
        - oauth2:
            - crm.schemas.meetings.write
components:
  schemas:
    ExternalMeetingBooking:
      required:
        - duration
        - email
        - firstName
        - formFields
        - lastName
        - legalConsentResponses
        - likelyAvailableUserIds
        - slug
        - startTime
      type: object
      properties:
        duration:
          type: integer
          description: Un entier représentant la durée de la réunion en minutes.
          format: int64
        email:
          type: string
          description: L'adresse e-mail de la personne qui réserve la réunion.
        firstName:
          type: string
          description: Le prénom de la personne qui réserve la réunion.
        formFields:
          type: array
          description: >-
            Un tableau de champs de formulaire remplis par le participant,
            chacun contenant un nom et une valeur.
          items:
            $ref: '#/components/schemas/ExternalBookingFormField'
        lastName:
          type: string
          description: Le nom de famille de la personne qui réserve la réunion.
        legalConsentResponses:
          type: array
          description: >-
            Un tableau de réponses de consentement légal, chacune détaillant le
            consentement donné par le participant.
          items:
            $ref: '#/components/schemas/ExternalLegalConsentResponse'
        likelyAvailableUserIds:
          type: array
          description: >-
            Un tableau de chaînes de caractères représentant les identifiants
            d'utilisateurs susceptibles d'être disponibles pour la réunion.
          items:
            type: string
        locale:
          type: string
          description: >-
            Une chaîne de caractères représentant les paramètres régionaux de la
            personne qui réserve la réunion.
        slug:
          type: string
          description: >-
            Une chaîne représentant l'identifiant unique du lien de prise de
            rendez-vous.
        startTime:
          type: string
          description: "L'heure de début de la réunion au format de date et d'heure ISO\_8601."
          format: date-time
        timezone:
          type: string
          description: >-
            Une chaîne représentant le fuseau horaire de la personne qui réserve
            la réunion.
    ExternalMeetingBookingResponse:
      required:
        - bookingTimezone
        - calendarEventId
        - contactId
        - duration
        - end
        - formFields
        - guestEmails
        - isOffline
        - legalConsentResponses
        - start
        - subject
      type: object
      properties:
        bookingTimezone:
          type: string
          description: >-
            Le fuseau horaire dans lequel la réunion a été réservée, représenté
            sous forme de chaîne.
        calendarEventId:
          type: string
          description: >-
            L'identifiant unique de l'événement de calendrier associé à cette
            réunion.
        contactId:
          type: string
          description: L'identifiant unique du contact associé à cette réunion.
        duration:
          type: integer
          description: La durée de la réunion en minutes, représentée par un entier.
          format: int64
        end:
          type: string
          description: "La date et l'heure de fin de la réunion, au format ISO\_8601."
          format: date-time
        formFields:
          type: array
          description: >-
            Un tableau de champs de formulaire validés soumis pendant le
            processus de réservation, chacun représenté par un objet
            ExternalValidatedFormField.
          items:
            $ref: '#/components/schemas/ExternalValidatedFormField'
        guestEmails:
          type: array
          description: Une liste d'adresses e-mail des invités à la réunion.
          items:
            type: string
        isOffline:
          type: boolean
          description: >-
            Un booléen indiquant si la réunion est hors ligne (vrai) ou en ligne
            (faux).
        legalConsentResponses:
          type: array
          description: >-
            Un ensemble de réponses de consentement légal associées à la
            réunion, chacune représentée par un objet
            ExternalLegalConsentResponse.
          items:
            $ref: '#/components/schemas/ExternalLegalConsentResponse'
        locale:
          type: string
          description: >-
            Le paramètre régional de la réunion, représenté sous forme de
            chaîne.
        location:
          type: string
          description: Le lieu de la réunion, représenté sous forme de chaîne.
        start:
          type: string
          description: "La date et l'heure de début de la réunion, au format ISO\_8601."
          format: date-time
        subject:
          type: string
          description: Le sujet ou le titre de la réunion, représenté sous forme de chaîne.
        webConferenceMeetingId:
          type: string
          description: >-
            L'identifiant unique de la réunion de conférence web, le cas
            échéant.
        webConferenceUrl:
          type: string
          description: L'URL de la conférence web associée à la réunion, le cas échéant.
    ExternalBookingFormField:
      required:
        - name
        - value
      type: object
      properties:
        name:
          type: string
          description: >-
            Le nom du champ de formulaire, représenté sous forme de chaîne de
            caractères.
        value:
          type: string
          description: >-
            La valeur associée au champ du formulaire, représentée sous forme de
            chaîne de caractères.
    ExternalLegalConsentResponse:
      required:
        - communicationTypeId
        - consented
      type: object
      properties:
        communicationTypeId:
          type: string
          description: >-
            Une chaîne représentant l'identifiant unique du type de
            communication pour lequel le consentement est enregistré.
        consented:
          type: boolean
          description: >-
            Un booléen indiquant si l'utilisateur a donné son consentement pour
            le type de communication. Il est vrai si le consentement est donné,
            sinon faux.
    ExternalValidatedFormField:
      required:
        - isCustom
        - label
        - name
        - value
      type: object
      properties:
        fieldType:
          type: string
          description: >-
            Le type du champ de formulaire, représenté sous forme de chaîne de
            caractères.
        isCustom:
          type: boolean
          description: >-
            Un booléen indiquant si le champ du formulaire est défini sur
            mesure.
        label:
          type: string
          description: >-
            L'étiquette d'affichage du champ de formulaire, représentée sous
            forme de chaîne de caractères.
        name:
          type: string
          description: Le nom du champ de formulaire, représenté sous forme de chaîne.
        translatedLabel:
          type: string
          description: >-
            L'étiquette traduite du champ de formulaire, représentée sous forme
            de chaîne de caractères.
        value:
          type: string
          description: >-
            La valeur attribuée au champ du formulaire, représentée sous forme
            de chaîne de caractères.
        valueLabel:
          type: string
          description: >-
            Une étiquette pour la valeur du champ, représentée sous forme de
            chaîne.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La catégorie d'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identifiant unique pour la demande. Incluez cette valeur dans
            tous les rapports d'erreurs ou tickets d'assistance
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: informations supplémentaires à propos de l'erreur
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Une carte des noms de liens vers les URI associés contenant de la
            documentation sur l'erreur ou les mesures correctives recommandées
        message:
          type: string
          description: >-
            Un message lisible par la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente une réponse d'erreur renvoyée par l'API lorsqu'une opération
        échoue. Ce composant est utilisé dans divers points de terminaison pour
        fournir des informations détaillées sur l'erreur rencontrée.
      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
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Le code du statut associé au détail de l'erreur
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexte concernant la condition d'erreur
          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 la personne décrivant l'erreur ainsi que les
            mesures correctives possibles, le cas échéant
        subCategory:
          type: string
          description: >-
            Une catégorie spécifique qui contient des détails plus précis sur
            l'erreur
      description: >-
        Représente des informations détaillées sur une erreur survenue dans
        l'API. Ce composant est utilisé pour fournir un contexte et des
        spécificités supplémentaires sur les erreurs, généralement dans le cadre
        d'une réponse d'erreur.
  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.appointments.sensitive.write.v2: ''
            crm.objects.appointments.write: ''
            crm.objects.commercepayments.write: ''
            crm.objects.companies.highly_sensitive.write.v2: ''
            crm.objects.companies.sensitive.write.v2: ''
            crm.objects.companies.write: ''
            crm.objects.contacts.highly_sensitive.write.v2: ''
            crm.objects.contacts.sensitive.write.v2: ''
            crm.objects.contacts.write: ''
            crm.objects.courses.write: ''
            crm.objects.deals.highly_sensitive.write.v2: ''
            crm.objects.deals.sensitive.write.v2: ''
            crm.objects.deals.write: ''
            crm.objects.goals.write: ''
            crm.objects.line_items.write: ''
            crm.objects.listings.write: ''
            crm.objects.products.write: ''
            crm.objects.projects.highly_sensitive.write: ''
            crm.objects.projects.sensitive.write: ''
            crm.objects.projects.write: ''
            crm.objects.services.write: ''
            crm.schemas.meetings.write: ''
            scheduler.meetings.meeting-link.read: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''

````