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

# Retrieve meeting link slug

> Obtenha detalhes sobre as informações iniciais necessárias para um agendador de reuniões.

export const ScopesList = ({scopes = [], description = "Esta API requer um dos seguintes escopos:"}) => {
  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: "Produtos suportados",
    description: "Requer um dos seguintes produtos ou superior.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Grátis",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  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/{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/{slug}:
    get:
      tags:
        - Basic
      summary: Listar informações de agendamento
      description: >-
        Obtenha detalhes sobre as informações iniciais necessárias para um
        agendador de reuniões.
      operationId: get-/scheduler/2026-03/meetings/meeting-links/book/{slug}
      parameters:
        - name: slug
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: timezone
          in: query
          description: ''
          required: true
          style: form
          explode: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalBookingInfo'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - scheduler.meetings.meeting-link.read
components:
  schemas:
    ExternalBookingInfo:
      required:
        - allUsersBusyTimes
        - customParams
        - isOffline
        - linkId
        - linkType
      type: object
      properties:
        allUsersBusyTimes:
          type: array
          items:
            $ref: '#/components/schemas/ExternalUserBusyTimes'
        brandingMetadata:
          $ref: '#/components/schemas/ExternalBrandingMetadata'
        customParams:
          $ref: '#/components/schemas/ExternalMeetingsLinkSettings'
        isOffline:
          type: boolean
          description: >-
            Indica se a reunião foi agendada offline, ou seja, se nenhum evento
            de calendário associado foi criado.
        linkAvailability:
          $ref: '#/components/schemas/ExternalLinkAvailability'
        linkId:
          type: string
          description: O identificador exclusivo do link da reunião.
        linkType:
          type: string
          description: >-
            O tipo de link de reunião. Os valores aceitos são: GROUP_CALENDAR,
            PERSONAL_LINK, ROUND_ROBIN_CALENDAR.
          enum:
            - GROUP_CALENDAR
            - PERSONAL_LINK
            - ROUND_ROBIN_CALENDAR
    ExternalUserBusyTimes:
      required:
        - busyTimes
        - isOffline
        - meetingsUser
      type: object
      properties:
        busyTimes:
          type: array
          items:
            $ref: '#/components/schemas/ExternalTimeRange'
        isOffline:
          type: boolean
          description: Indica se o usuário está offline.
        meetingsUser:
          $ref: '#/components/schemas/ExternalMeetingsUser'
    ExternalBrandingMetadata:
      required:
        - logoAltText
        - showMarketingAd
        - showSalesAd
      type: object
      properties:
        accent2Color:
          type: string
          description: A cor de destaque secundária usada no branding.
        accentColor:
          type: string
          description: A cor de destaque principal usada no branding.
        companyAddressLine1:
          type: string
          description: A primeira linha do endereço da empresa.
        companyAddressLine2:
          type: string
          description: A segunda linha do endereço da empresa.
        companyAvatar:
          type: string
          description: O URL da imagem de avatar da empresa.
        companyCity:
          type: string
          description: A cidade onde a empresa está localizada.
        companyCountry:
          type: string
          description: O país onde a empresa está localizada.
        companyDomain:
          type: string
          description: O domínio do site da empresa.
        companyName:
          type: string
          description: O nome da empresa.
        companyState:
          type: string
          description: O estado onde a empresa está localizada.
        companyZip:
          type: string
          description: O CEP da localização da empresa.
        logoAltText:
          type: string
          description: O texto alternativo do logotipo atual.
        logoHeight:
          type: integer
          description: A altura do logotipo em pixels.
          format: int32
        logoUrl:
          type: string
          description: O URL de uma imagem de logotipo personalizada.
        logoWidth:
          type: integer
          description: A largura do logotipo em pixels.
          format: int32
        primaryColor:
          type: string
          description: A cor principal usada no branding.
        secondaryColor:
          type: string
          description: A cor secundária usada no branding.
        showMarketingAd:
          type: boolean
          description: Indica se os anúncios do Marketing Hub são exibidos.
        showSalesAd:
          type: boolean
          description: Indica se os anúncios do Sales Hub são exibidos.
    ExternalMeetingsLinkSettings:
      required:
        - availability
        - durations
        - formFields
        - legalConsentEnabled
        - meetingBufferTime
        - ownerPrioritized
        - startTimeIncrementMinutes
        - weeksToAdvertise
      type: object
      properties:
        availability:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExternalClosedRange'
          description: >-
            Uma matriz que contém a disponibilidade em intervalo fechado para um
            link de reunião. Os horários de intervalo fechado são fornecidos
            como deslocamentos em minutos a partir da meia-noite (por exemplo,
            540 corresponde às 9h).
        customAvailabilityEndDate:
          type: integer
          description: >-
            A data de término do período de disponibilidade personalizado de um
            link de reunião, representada em tempo Unix em milissegundos.
          format: int64
        customAvailabilityStartDate:
          type: integer
          description: >-
            A data de início do período de disponibilidade personalizado de um
            link de reunião, representada em tempo Unix em milissegundos.
          format: int64
        displayInfo:
          $ref: '#/components/schemas/ExternalLinkDisplayInfo'
        durations:
          type: array
          items:
            type: integer
            format: int64
        formFields:
          type: array
          items:
            $ref: '#/components/schemas/ExternalLinkFormField'
        guestSettings:
          $ref: '#/components/schemas/ExternalGuestSettings'
        language:
          type: string
          description: A configuração de idioma usada para o link da reunião.
        legalConsentEnabled:
          type: boolean
          description: >-
            Indica se a caixa de seleção de consentimento legal é exibida
            durante o agendamento da reunião.
        legalConsentOptions:
          $ref: '#/components/schemas/ExternalLegalConsentOptions'
        locale:
          type: string
          description: >-
            A configuração de localidade usada para formatar datas e horas no
            link da reunião.
        location:
          type: string
          description: O local físico ou virtual onde a reunião ocorrerá.
        meetingBufferTime:
          type: integer
          description: >-
            O tempo mínimo de intervalo, em milissegundos, entre reuniões
            consecutivas.
          format: int64
        ownerPrioritized:
          type: boolean
          description: >-
            Indica se o proprietário da reunião tem prioridade durante o
            agendamento. Aplica-se apenas a links do tipo ROUND_ROBIN.
        redirectUrl:
          type: string
          description: >-
            O URL para o qual o usuário será redirecionado após o agendamento de
            uma reunião.
        startTimeIncrementMinutes:
          type: string
          description: >-
            O incremento para os horários de início disponíveis para as
            reuniões, escrito por extenso (por exemplo, um incremento de 15
            minutos corresponde a "FIFTEEN"). "MEETING_DURATION" também é um
            valor válido.
          enum:
            - FIFTEEN
            - FIVE
            - FORTY_FIVE
            - MEETING_DURATION
            - NINETY
            - ONE_HUNDRED_TWENTY
            - SIXTY
            - TEN
            - THIRTY
            - TWENTY
        weeksToAdvertise:
          type: integer
          description: >-
            Propriedade antiga que indica o número de semanas de antecedência em
            que a disponibilidade é anunciada. Pode estar desatualizada ou ter
            sido substituída por outras propriedades.
          format: int32
        welcomeScreenInfo:
          $ref: '#/components/schemas/ExternalMeetingsWelcomeScreenInfo'
    ExternalLinkAvailability:
      required:
        - hasMore
        - linkAvailabilityByDuration
      type: object
      properties:
        hasMore:
          type: boolean
          description: >-
            Se há mais horários de reunião disponíveis além dos horários
            definidos.
        linkAvailabilityByDuration:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ExternalLinkAvailabilityForDuration'
          description: >-
            Horários disponíveis para agendamento de reunião, agrupados por
            duração.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação. Inclua este valor em
            relatórios de erro ou tickets de suporte
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: mais informações sobre o erro
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou as etapas de correção recomendadas
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      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: >-
            O horário de término do intervalo de tempo, representado em tempo
            Unix em milissegundos.
          format: int64
        start:
          type: integer
          description: >-
            O horário de início do intervalo de tempo, representado em tempo
            Unix em milissegundos.
          format: int64
    ExternalMeetingsUser:
      required:
        - calendarProvider
        - id
        - isSalesStarter
        - userId
        - userProfile
      type: object
      properties:
        calendarProvider:
          type: string
          description: >-
            O provedor de calendário associado ao usuário. Os valores aceitos
            são: GOOGLE, OFFICE365, EXCHANGE, UNKNOWN.
          enum:
            - EXCHANGE
            - GOOGLE
            - OFFICE365
            - UNKNOWN
        id:
          type: string
          description: O ID do usuário da reunião. Esse valor é diferente do userId.
        isSalesStarter:
          type: boolean
          description: Indica se o usuário possui uma licença do Sales Starter.
        userId:
          type: string
          description: O ID do usuário.
        userProfile:
          $ref: '#/components/schemas/ExternalUserProfile'
    ExternalClosedRange:
      required:
        - end
        - start
      type: object
      properties:
        end:
          type: integer
          description: >-
            O valor final do intervalo fechado, representado como um número
            inteiro.
          format: int64
        start:
          type: integer
          description: >-
            O valor inicial do intervalo fechado, representado como um número
            inteiro.
          format: int64
    ExternalLinkDisplayInfo:
      type: object
      properties:
        avatar:
          type: string
          description: O URL da imagem de avatar personalizada que o usuário carregou.
        companyAvatar:
          type: string
          description: O URL da imagem de avatar da empresa.
        headline:
          type: string
          description: Campo obsoleto, sem impacto na exibição das informações do link.
        publicDisplayAvatarOption:
          type: string
          description: >-
            Opção para determinar qual avatar exibir na página de agendamento.
            Os valores aceitos são: PROFILE_IMAGE, COMPANY_LOGO, CUSTOM_AVATAR,
          enum:
            - COMPANY_LOGO
            - CUSTOM_AVATAR
            - PROFILE_IMAGE
    ExternalLinkFormField:
      required:
        - fieldType
        - isCustom
        - isRequired
        - label
        - name
        - options
        - type
      type: object
      properties:
        fieldType:
          type: string
          description: >-
            O tipo de campo específico do formulário. Corresponde aos tipos de
            propriedade (por exemplo, "select", "radio", "date" etc.).
        isCustom:
          type: boolean
          description: Indica se o campo do formulário é um campo personalizado.
        isRequired:
          type: boolean
          description: Indica se o campo do formulário é obrigatório.
        label:
          type: string
          description: O rótulo de texto do campo do formulário.
        name:
          type: string
          description: O identificador do nome do campo de formulário.
        options:
          type: array
          items:
            $ref: '#/components/schemas/ExternalOption'
        type:
          type: string
          description: >-
            O tipo de dados que o campo de formulário aceita (por exemplo,
            "date", "enumeration" etc.)
    ExternalGuestSettings:
      required:
        - canAddGuests
        - maxGuestCount
      type: object
      properties:
        canAddGuests:
          type: boolean
          description: Indica se é possível adicionar convidados à reunião.
        maxGuestCount:
          type: integer
          description: O número máximo de convidados que podem ser adicionados à reunião.
          format: int32
    ExternalLegalConsentOptions:
      required:
        - communicationConsentCheckboxes
        - communicationConsentText
        - isLegitimateInterest
        - legitimateInterestSubscriptionTypes
        - privacyPolicyText
        - processingConsentCheckboxLabel
        - processingConsentFooterText
        - processingConsentText
        - processingConsentType
      type: object
      properties:
        communicationConsentCheckboxes:
          type: array
          items:
            $ref: '#/components/schemas/ExternalCommunicationConsentCheckbox'
        communicationConsentText:
          type: string
          description: >-
            O texto que descreve as preferências de consentimento para
            comunicações.
        isLegitimateInterest:
          type: boolean
          description: >-
            Indica se a base jurídica para o processamento é o interesse
            legítimo.
        legitimateInterestLegalBasis:
          type: string
          description: >-
            A base jurídica para o processamento mediante o interesse legítimo.
            Os valores aceitos são: LEGITIMATE_INTEREST_PQL,
            LEGITIMATE_INTEREST_CLIENT, PERFORMANCE_OF_CONTRACT,
            CONSENT_WITH_NOTICE, NON_GDPR, PROCESS_AND_STORE,
            LEGITIMATE_INTEREST_OTHER.
          enum:
            - CONSENT_WITH_NOTICE
            - LEGITIMATE_INTEREST_CLIENT
            - LEGITIMATE_INTEREST_OTHER
            - LEGITIMATE_INTEREST_PQL
            - NON_GDPR
            - PERFORMANCE_OF_CONTRACT
            - PROCESS_AND_STORE
        legitimateInterestSubscriptionTypes:
          type: array
          items:
            type: integer
            format: int64
        privacyPolicyText:
          type: string
          description: >-
            O texto que descreve a política de privacidade do processamento de
            dados.
        processingConsentCheckboxLabel:
          type: string
          description: >-
            O rótulo da caixa de seleção usada para obter o consentimento para o
            processamento de dados.
        processingConsentFooterText:
          type: string
          description: >-
            O texto de rodapé que acompanha o consentimento com o processamento
            de dados. Este campo não é utilizado pela plataforma de reuniões e
            estará sempre vazio.
        processingConsentText:
          type: string
          description: >-
            O texto que descreve o consentimento para o processamento de dados
            pessoais.
        processingConsentType:
          type: string
          description: >-
            O tipo de consentimento necessário para o processamento. Os valores
            aceitos são: IMPLICIT, REQUIRED_CHECKBOX.
          enum:
            - IMPLICIT
            - REQUIRED_CHECKBOX
    ExternalMeetingsWelcomeScreenInfo:
      type: object
      properties:
        description:
          type: string
          description: Uma breve descrição exibida na tela de boas-vindas abaixo do título.
        logoUrl:
          type: string
          description: >-
            O URL da imagem do logotipo a ser exibida na tela de boas-vindas;
            usado somente se "useCompanyLogo" for falso.
        showWelcomeScreen:
          type: boolean
          description: >-
            Propriedade obsoleta. O valor pode ser ignorado, mas será sempre
            falso.
        title:
          type: string
          description: O título principal exibido na tela de boas-vindas.
        useCompanyLogo:
          type: boolean
          description: Se o logotipo da empresa deve ser exibido na tela de boas-vindas.
    ExternalLinkAvailabilityForDuration:
      required:
        - availabilities
        - meetingDurationMillis
      type: object
      properties:
        availabilities:
          type: array
          items:
            $ref: '#/components/schemas/ExternalMeetingAvailability'
        meetingDurationMillis:
          type: integer
          description: A duração da reunião em milissegundos.
          format: int64
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: O código de status associado ao detalhe do erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: O nome do campo ou parâmetro no qual o erro foi encontrado.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
    ExternalUserProfile:
      required:
        - email
      type: object
      properties:
        email:
          type: string
          description: O endereço de e-mail do usuário.
        firstName:
          type: string
          description: O nome do usuário.
        fullName:
          type: string
          description: O nome completo do usuário.
        lastName:
          type: string
          description: O sobrenome do usuário.
    ExternalOption:
      required:
        - description
        - displayOrder
        - doubleData
        - hidden
        - label
        - readOnly
        - value
      type: object
      properties:
        description:
          type: string
          description: Uma breve descrição da opção.
        displayOrder:
          type: integer
          description: A ordem em que a opção deve ser exibida.
          format: int32
        doubleData:
          type: number
          description: Propriedade obsoleta. Será sempre 0.
        hidden:
          type: boolean
          description: Indica se a opção deve ser ocultada do usuário.
        label:
          type: string
          description: O rótulo de texto para a opção.
        readOnly:
          type: boolean
          description: Se a opção é somente leitura.
        value:
          type: string
          description: O valor associado à opção.
    ExternalCommunicationConsentCheckbox:
      required:
        - communicationTypeId
        - label
        - required
      type: object
      properties:
        communicationTypeId:
          type: string
          description: >-
            O ID do formulário de consentimento de comunicação que está sendo
            registrado.
        label:
          type: string
          description: O rótulo de texto que descreve o consentimento que está sendo dado.
        required:
          type: boolean
          description: Se a caixa de seleção de consentimento é obrigatória.
    ExternalMeetingAvailability:
      required:
        - endMillisUtc
        - startMillisUtc
      type: object
      properties:
        endMillisUtc:
          type: integer
          description: >-
            O horário de término da disponibilidade da reunião, representado em
            tempo Unix em milissegundos.
          format: int64
        startMillisUtc:
          type: integer
          description: >-
            O horário de início da disponibilidade da reunião, representado em
            tempo Unix em milissegundos.
          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: ''

````