Building blocksConfigure

Calendar-only and compact

Two ways to trim the widget when your own page already shows the doctor.

If your site already lists doctors with photos and bios, you don't want the widget repeating that. There are two options for trimming it, and they remove different amounts.

OptionDoctor profile panelDoctor picker & filtersHeaders
(default)shownshownshown
compact: truehiddenshownshown
calendarOnly: truehiddenhiddenhidden

Both are booleans, both default to false, and both go at the top level of init(). compact is the gentler of the two — it only takes the profile panel away.

compact — drop the profile panel

Hides the doctor's bio and qualifications card and renders a single calendar-focused column. The header and the step flow stay put.

MedosBooking.init({
  apiKey: "mk_your_publishable_key",
  externalMemberId: "your-doctor-external-id",
  compact: true,
});

Reach for this when your page already introduces the doctor and you just want the booking column, but you still want the normal chrome around it.

calendarOnly — strip it back to the calendar

Goes much further than compact. As well as the profile panel it removes:

  • the doctor-selection strip, so the patient can't switch doctors
  • the location and specialization filters
  • the hero header above the calendar, including its language selector
  • the header inside each step card

What's left is essentially the calendar and the booking steps. Reach for it when your page is providing all the surrounding context itself — a doctor's own page, or a reception kiosk.

MedosBooking.init({
  apiKey: "mk_your_publishable_key",
  mode: "modal",
  calendarOnly: true,
  externalMemberId: "your-doctor-external-id",
});

Pair either one with externalMemberId

Both options are about layout. Neither one chooses the doctor. If you hide the picker with calendarOnly but don't pass externalMemberId, the patient has no way to pick a doctor at all.

One button per doctor

<div class="doctor-card">
  <h3>Dr. Sharma</h3>
  <button onclick="bookWith('doctor-a-external-id')">Book</button>
</div>

<script>
  MedosBooking.init({ apiKey: "mk_your_publishable_key", mode: "modal" });

  function bookWith(externalMemberId) {
    MedosBooking.open({ calendarOnly: true, externalMemberId });
  }
</script>

When to leave both off

If your workspace has several doctors and the patient hasn't chosen one yet, keep the defaults — browsing and picking inside the widget is the smoother path, and the profile panel is doing useful work.

On narrow screens

The profile panel is hidden on mobile regardless of these options, so compact changes nothing on a phone. Test on a desktop width to see the difference.

On this page