Calendly embed

Drop any public Calendly link into your app — inline iframe or popup button — with theme-aware colors.

Paste any public Calendly link (event type, team, or one-off). Press Enter or blur the field to load it.

Installation
$Terminal
npx shadcn@latest add https://sdk-components.thesqd.com/r/calendly-embed.json
Usage
Pass any public Calendly link as `url`. The widget assets load on demand.
TSImport
import {
  CalendlyEmbed,
  CalendlyPopupButton,
} from "@/components/blocks/calendly-embed";
TSExample
import { CalendlyEmbed } from "@/components/blocks/calendly-embed";

export function BookingSection() {
  return (
    <CalendlyEmbed
      url="https://calendly.com/your-team/intro"
      height={720}
      hideGdprBanner
    />
  );
}
Composition
Two exports — an inline iframe widget and a popup-button trigger.
CalendlyEmbed         — inline iframe widget for any public Calendly link
CalendlyPopupButton   — button that opens the scheduling flow as a modal popup

Calendly's widget.js + widget.css are loaded on demand the first time either
component mounts (inline) or is clicked (popup). No <Script> tag setup needed.
The inline embed uses Calendly.initInlineWidget({ resize: true }) so the iframe
height auto-fits the booking widget's content.
Inline
Drop the embed into any container — pass your Calendly URL and a height.

Paste any public Calendly link (event type, team, or one-off). Press Enter or blur the field to load it.

Themed
Pass `primaryColor`, `backgroundColor`, and `textColor` to match your brand.

Paste any public Calendly link (event type, team, or one-off). Press Enter or blur the field to load it.

API Reference
Props for each Calendly embed export.

CalendlyEmbed

PropTypeDefaultDescription
urlstringAny public Calendly link (event type, team, or one-off).
heightnumber700With `resize` enabled this is the minimum height; otherwise a fixed height in pixels.
resizebooleantrueAuto-resize the iframe to fit the booking widget's content (Calendly's official `resize` flag).
primaryColorstringHex accent color (with or without `#`).
backgroundColorstringHex background color (with or without `#`).
textColorstringHex text color (with or without `#`).
hideEventTypeDetailsbooleanfalseHide the event-type details panel.
hideGdprBannerbooleantrueHide the GDPR cookie banner.
hideLandingPageDetailsbooleanfalseHide team-link landing-page details.

CalendlyPopupButton

PropTypeDefaultDescription
urlstringAny public Calendly link to open in the popup.
labelReactNode"Schedule time"Button label.
prefillobjectCalendly prefill payload (name, email, customAnswers, …).
utmobjectUTM params attached to the booking session.