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

# Create a new calendar event for a meeting

> Créer un nouvel événement de réunion dans votre compte HubSpot. Ce point de terminaison vous permet de spécifier des détails tels que le titre de la réunion, les heures de début et de fin, ainsi que les utilisateurs associés. L'organizerUserId est requis pour identifier l'organisateur de la réunion.

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={[
  'crm.objects.listings.write',
  'crm.objects.companies.write',
  'crm.objects.commercepayments.write',
  'crm.objects.contacts.highly_sensitive.write.v2',
  'crm.objects.contacts.sensitive.write.v2',
  'crm.objects.projects.highly_sensitive.write',
  'crm.objects.appointments.write',
  'crm.objects.services.write',
  'crm.objects.products.write',
  'tickets',
  'crm.objects.deals.sensitive.write.v2',
  'crm.objects.deals.highly_sensitive.write.v2',
  'crm.objects.companies.highly_sensitive.write.v2',
  'tickets.sensitive.v2',
  'crm.objects.deals.write',
  'crm.objects.appointments.sensitive.write.v2',
  'tickets.highly_sensitive.v2',
  'crm.objects.projects.write',
  'crm.objects.projects.sensitive.write',
  'crm.objects.goals.write',
  'crm.objects.companies.sensitive.write.v2',
  'crm.objects.contacts.write',
  'crm.objects.line_items.write',
  'crm.objects.courses.write'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-03/scheduler-meetings-v2026-03.json POST /scheduler/2026-03/meetings/calendar
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/calendar:
    post:
      tags:
        - Advanced
      summary: Créer une réunion
      description: >-
        Créer un nouvel événement de réunion dans votre compte HubSpot. Ce point
        de terminaison vous permet de spécifier des détails tels que le titre de
        la réunion, les heures de début et de fin, ainsi que les utilisateurs
        associés. L'organizerUserId est requis pour identifier l'organisateur de
        la réunion.
      operationId: post-/scheduler/2026-03/meetings/calendar
      parameters:
        - name: organizerUserId
          in: query
          description: >-
            L'identifiant unique de l'utilisateur organisant la réunion. Ce
            paramètre est obligatoire.
          required: true
          style: form
          explode: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalCalendarMeetingEventCreateRequest'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalCalenderMeetingEventResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - tickets
        - 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.contacts.sensitive.write.v2
        - oauth2:
            - crm.objects.services.write
        - oauth2:
            - crm.objects.projects.sensitive.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.deals.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - meetings-write
components:
  schemas:
    ExternalCalendarMeetingEventCreateRequest:
      required:
        - associations
        - emailReminderSchedule
        - properties
        - timezone
      type: object
      properties:
        associations:
          type: array
          description: >-
            Un tableau d'associations liées à l'événement de réunion, chacune
            représentée par un objet ExternalAssociationCreateRequest.
          items:
            $ref: '#/components/schemas/ExternalAssociationCreateRequest'
        emailReminderSchedule:
          $ref: '#/components/schemas/ExternalEmailReminderSchedule'
        properties:
          $ref: '#/components/schemas/ExternalCalendarMeetingEventCreateProperties'
        timezone:
          type: string
          description: >-
            Une chaîne représentant le fuseau horaire dans lequel l'événement de
            réunion est programmé.
    ExternalCalenderMeetingEventResponse:
      required:
        - createdAt
        - id
        - lastUpdatedAt
        - properties
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            La date et l'heure de création de l'événement de réunion du
            calendrier, au format ISO 8601.
          format: date-time
        id:
          type: string
          description: L'identifiant unique de l'événement de réunion du calendrier.
        lastUpdatedAt:
          type: string
          description: >-
            La date et l'heure de la dernière mise à jour de l'événement de
            réunion du calendrier, au format ISO 8601.
          format: date-time
        properties:
          $ref: '#/components/schemas/ExternalCalendarMeetingEventResponseProperties'
    ExternalAssociationCreateRequest:
      required:
        - to
        - types
      type: object
      properties:
        to:
          $ref: '#/components/schemas/PublicObjectId'
        types:
          type: array
          description: >-
            Un tableau de spécifications d'association, détaillant les types
            d'associations à créer. Chaque élément du tableau est un objet qui
            définit le type d'association.
          items:
            $ref: '#/components/schemas/AssociationSpec'
    ExternalEmailReminderSchedule:
      required:
        - reminders
        - shouldIncludeInviteDescription
      type: object
      properties:
        reminders:
          type: array
          description: >-
            Un tableau d'objets ExternalReminder qui spécifient le moment et la
            fréquence des rappels par e-mail.
          items:
            $ref: '#/components/schemas/ExternalReminder'
        shouldIncludeInviteDescription:
          type: boolean
          description: >-
            Un booléen indiquant si la description de l'invitation doit être
            incluse dans le rappel par e-mail.
    ExternalCalendarMeetingEventCreateProperties:
      required:
        - hs_meeting_end_time
        - hs_meeting_outcome
        - hs_meeting_start_time
        - hs_meeting_title
        - hs_timestamp
        - hubspot_owner_id
      type: object
      properties:
        hs_activity_type:
          type: string
          description: >-
            Le type d'activité pour la réunion. Il s'agit d'une valeur de
            chaîne.
        hs_attachment_ids:
          type: array
          description: >-
            Un tableau de chaînes de caractères représentant les identifiants
            des pièces jointes associées à la réunion.
          items:
            type: string
        hs_attendee_owner_ids:
          type: array
          description: >-
            Un tableau de chaînes de caractères représentant les identifiants
            des propriétaires des participants à la réunion.
          items:
            type: string
        hs_internal_meeting_notes:
          type: string
          description: Notes internes pour la réunion. Il s'agit d'une valeur de chaîne.
        hs_meeting_body:
          type: string
          description: >-
            Le contenu ou la description du corps de la réunion. Il s'agit d'une
            valeur de type chaîne.
        hs_meeting_end_time:
          type: string
          description: "L'heure de fin de la réunion, au format ISO\_8601."
          format: date-time
        hs_meeting_location:
          type: string
          description: L'emplacement de la réunion. Il s'agit d'une valeur de chaîne.
        hs_meeting_location_type:
          type: string
          description: "Le type de lieu de la réunion. Les valeurs valides incluent «\_TÉLÉPHONE\_», «\_ADRESSE\_» et «\_PERSONNALISÉ\_»."
          enum:
            - ADDRESS
            - CUSTOM
            - PHONE
        hs_meeting_outcome:
          type: string
          description: Chaîne représentant le résultat de la réunion.
        hs_meeting_start_time:
          type: string
          description: Heure de début de la réunion, au format ISO 8601.
          format: date-time
        hs_meeting_title:
          type: string
          description: Le titre de la réunion. Il s'agit d'une valeur de type chaîne.
        hs_timestamp:
          type: string
          description: >-
            Un horodatage indiquant la date de création de l’événement de
            réunion, au format ISO 8601.
          format: date-time
        hubspot_owner_id:
          type: string
          description: L'identifiant unique du propriétaire HubSpot associé à la réunion.
    ExternalCalendarMeetingEventResponseProperties:
      required:
        - hs_engagement_source
        - hs_engagement_source_id
        - hs_meeting_end_time
        - hs_meeting_outcome
        - hs_meeting_start_time
        - hs_meeting_title
        - hs_timestamp
      type: object
      properties:
        hs_activity_type:
          type: string
          description: Le type d'activité associé à la réunion.
        hs_attachment_ids:
          type: array
          description: >-
            Un tableau d'identifiants uniques pour les pièces jointes associées
            à la réunion.
          items:
            type: string
        hs_attendee_owner_ids:
          type: array
          description: >-
            Un tableau d'identifiants uniques pour les propriétaires des
            participants.
          items:
            type: string
        hs_engagement_source:
          type: string
          description: "La source de l'engagement. Les valeurs valides incluent un large éventail de sources telles que «\_UNKNOWN\_», «\_IMPORT\_», «\_API\_», «\_FORM\_» et bien d'autres."
          enum:
            - ACADEMY
            - ACCEPTANCE_TEST
            - ACTIVITY_AUTO_ASSOCIATE
            - ACTIVITY_LOG_REVERT
            - ADS
            - AI_GROUP
            - ANALYTICS
            - API
            - APPROVALS
            - ASSISTS
            - ASSOCIATIONS
            - AUTO_ASSOCIATE_BY_DOMAIN
            - AUTOMATION_JOURNEY
            - AUTOMATION_PLATFORM
            - AVATARS_SERVICE
            - BATCH_UPDATE
            - BCC_TO_CRM
            - BEHAVIORAL_EVENTS
            - BET_ASSIGNMENT
            - BET_CRM_CONNECTOR
            - BIDEN
            - BILLING
            - BOT
            - BREEZE_AGENT
            - CALCULATED
            - CENTRAL_EXCHANGE_RATES
            - CHATSPOT
            - CLONE_OBJECTS
            - COMMUNICATOR
            - COMPANIES
            - COMPANY_FAMILIES
            - COMPANY_INSIGHTS
            - CONNECTED_ACCOUNT
            - CONTACTS
            - CONTACTS_WEB
            - CONTENT_MEMBERSHIP
            - CONVERSATIONAL_ENRICHMENT
            - CONVERSATIONS
            - CRM_PROCESSES_PLATFORM
            - CRM_UI
            - CRM_UI_BULK_ACTION
            - CUSTOMER_AGENT
            - CUSTOMER_PORTAL
            - DATA_ENRICHMENT
            - DATA_QUALITY
            - DATASET
            - DEALS
            - DEFAULT
            - DELETE_OBJECTS
            - DI_WRITE_TO_CRM
            - EMAIL
            - EMAIL_INBOX_IMPORT
            - EMAIL_INTEGRATION
            - ENGAGEMENTS
            - EXTENSION
            - FILE_MANAGER
            - FLYWHEEL_PRODUCT_DATA_SYNC
            - FORECASTING
            - FORM
            - FORWARD_TO_CRM
            - GMAIL_INTEGRATION
            - GOALS
            - HEISENBERG
            - HELP_DESK
            - HELP_DESK_AI
            - IMPORT
            - INTEGRATION
            - INTEGRATIONS_PLATFORM
            - INTEGRATIONS_SYNC
            - INTENT
            - INTERNAL_PROCESSING
            - LEADIN
            - LEGAL_BASIS_REMEDIATION
            - MARKET_SOURCING
            - MARKETPLACE
            - MARKETS
            - MEETINGS
            - MERGE_COMPANIES
            - MERGE_CONTACTS
            - MERGE_OBJECTS
            - MERGE_REVERT_OBJECTS
            - MICROAPPS
            - MIGRATION
            - MOBILE_ANDROID
            - MOBILE_IOS
            - PAYMENTS
            - PIPELINE_SETTINGS
            - PLAYBOOKS
            - PORTAL_OBJECT_SYNC
            - PORTAL_USER_ASSOCIATOR
            - PRESENTATIONS
            - PRIMARY_AUTOMATION
            - PROPERTY_DEFAULT_VALUE
            - PROPERTY_RESTORE
            - PROPERTY_SETTINGS
            - PROSPECTING_AGENT
            - QUOTAS
            - QUOTES
            - RECYCLING_BIN
            - RESTORE_OBJECTS
            - REVENUE_PLATFORM
            - SALES
            - SALES_MESSAGES
            - SALESFORCE
            - SEQUENCES
            - SETTINGS
            - SIDEKICK
            - SIGNALS
            - SLACK_INTEGRATION
            - SMART_DATA_CAPTURE
            - SOCIAL
            - SUCCESS
            - TALLY
            - TASK
            - UNKNOWN
            - WAL_INCREMENTAL
            - WORK_UI
            - WORKFLOW_CONTACT_DELETE_ACTION
            - WORKFLOWS
        hs_engagement_source_id:
          type: string
          description: L'identifiant unique de la source de l'engagement.
        hs_include_description_in_reminder:
          type: string
          description: >-
            Indique si la description de la réunion doit être incluse dans les
            rappels.
        hs_internal_meeting_notes:
          type: string
          description: Notes internes relatives à la réunion.
        hs_meeting_body:
          type: string
          description: Le corps ou la description de la réunion.
        hs_meeting_end_time:
          type: string
          description: "L'heure de fin de la réunion, au format ISO\_8601."
          format: date-time
        hs_meeting_external_url:
          type: string
          description: L'URL externe associée à la réunion.
        hs_meeting_location:
          type: string
          description: L'emplacement où la réunion a lieu.
        hs_meeting_location_type:
          type: string
          description: "Le type de lieu pour la réunion. Les valeurs valides incluent «\_TÉLÉPHONE\_», «\_ADRESSE\_» et «\_PERSONNALISÉ\_»."
          enum:
            - ADDRESS
            - CUSTOM
            - PHONE
        hs_meeting_outcome:
          type: string
          description: Le résultat de la réunion.
        hs_meeting_start_time:
          type: string
          description: L'heure de début de la réunion, au format ISO 8601.
          format: date-time
        hs_meeting_title:
          type: string
          description: Le titre du rendez-vous.
        hs_timestamp:
          type: string
          description: >-
            Un horodatage indiquant le moment où l'événement de réunion a été
            enregistré, au format ISO 8601.
          format: date-time
        hs_unique_id:
          type: string
          description: Identifiant unique de l'événement de réunion.
        hubspot_owner_id:
          type: string
          description: L'identifiant unique du propriétaire HubSpot associé au rendez-vous.
    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
    PublicObjectId:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: >-
            L'identifiant unique de l'objet public. Il s'agit d'une chaîne de
            caractères qui sert de référence à l'objet au sein de l'API.
      description: Contains the Id of a Public Object
    AssociationSpec:
      required:
        - associationCategory
        - associationTypeId
      type: object
      properties:
        associationCategory:
          type: string
          description: "Une chaîne de caractères indiquant la catégorie de l'association. Les valeurs valides incluent «\_HUBSPOT_DEFINED\_», «\_USER_DEFINED\_», «\_INTEGRATOR_DEFINED\_» et «\_WORK\_»."
          enum:
            - HUBSPOT_DEFINED
            - INTEGRATOR_DEFINED
            - USER_DEFINED
            - WORK
        associationTypeId:
          type: integer
          description: Un entier représentant l'identifiant unique du type d'association.
          format: int32
      description: >-
        Defines the type, direction, and details of the relationship between two
        CRM objects.
    ExternalReminder:
      required:
        - numberOfTimeUnits
        - timeUnit
      type: object
      properties:
        numberOfTimeUnits:
          type: integer
          description: >-
            Le nombre d'unités de temps avant la réunion pendant lequel le
            rappel doit être envoyé. Il s'agit d'une valeur entière.
          format: int32
        timeUnit:
          type: string
          description: "L'unité de temps pour le rappel. Les valeurs valides incluent «\_SEMAINES\_», «\_JOURS\_», «\_HEURES\_» et «\_MINUTES\_»."
          enum:
            - DAYS
            - HOURS
            - MINUTES
            - WEEKS
    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: ''

````