Medos Booking Docs

How the widget adapts

One widget, three flows. Here's how the widget decides which UI to show.

The Medos Booking widget supports three booking system types. Which one the patient sees depends on the doctor they choose — you never pick manually.

The three system types

SCHEDULED

The classic appointment flow. Patients see:

  1. A doctor list (unless calendarOnly is enabled)
  2. A calendar with available dates
  3. Time slots for the selected date
  4. Phone OTP + patient details
  5. A confirmation screen with the appointment ID

SCHEDULED_WITH_PACKAGES

Same as SCHEDULED, but patients can also apply an active session pack (pre-paid consultation bundles). If the patient has remaining sessions with the doctor, the widget offers to use one instead of creating a new paid appointment.

QMS (Queue Management System)

Token-based, live queue booking. Patients see:

  • A queue stats banner above the calendar (current queue length, approximate wait time)
  • A shorter flow — no time-slot picking
  • A confirmation screen with a token number, queue position, and estimated wait time

How the widget decides

The widget reads the doctor's setting from the workspace API and applies this fallback chain:

Doctor-level appointmentSystemType — the source of truth. If set, it wins.

Workspace-level appointmentSystemType — used if the doctor doesn't have one set.

Inferred SCHEDULED_WITH_PACKAGES — if neither level has a value but the workspace exposes active session packs that apply to the doctor.

Default SCHEDULED — if none of the above apply.

Why auto-detection matters

A workspace can mix system types across doctors. Dr. Smith might use QMS for walk-in clinics while Dr. Patel runs scheduled appointments. The widget handles both without any configuration change on your side.

Confirmation payload differs per type

The onSuccess callback receives a different shape depending on which flow completed:

  • SCHEDULED / SCHEDULED_WITH_PACKAGES{ appointmentId: number }
  • QMS → a full QueueToken object (token number, position, wait time)

See the Callbacks & Events page for the exact shapes.

On this page