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

# Add the services you offer

> Build your appointment services catalogue by hand, or apply a specialty starter set from the setup checklist.

export const StillStuck = ({topic}) => <div className="ck-callout ck-callout--note" role="note">
    <p className="ck-callout__body">
      <strong>Still stuck{topic ? ` with ${topic}` : ''}?</strong>{' '}
      Check <a href="/platform/help/troubleshooting">Troubleshooting</a> first —
      it covers the failures we see most often. If that does not resolve it,{' '}
      <a href="/platform/help/contact-support">contact support</a> and include
      your workspace name and the time the problem happened, so we can find the
      matching entry in your audit log.
    </p>
  </div>;

export const TaskHeader = ({before, time, after}) => <div className="ck-task">
    {before ? <div className="ck-task__cell">
        <div className="ck-task__title">Before you start</div>
        <p className="ck-task__body">{before}</p>
      </div> : null}

    {time ? <div className="ck-task__cell">
        <div className="ck-task__title">Takes about</div>
        <p className="ck-task__body">{time}</p>
      </div> : null}

    {after ? <div className="ck-task__cell">
        <div className="ck-task__title">When you're done</div>
        <p className="ck-task__body">{after}</p>
      </div> : null}
  </div>;

export const Path = ({steps = []}) => <span className="ck-path">
    {steps.map((s, i) => <span key={i} className="ck-path__step">
        {i > 0 ? <span className="ck-path__sep" aria-hidden="true">
            ›
          </span> : null}
        {s}
      </span>)}
  </span>;

export const Availability = ({editions = ['all'], plans, roles, note}) => {
  const list = editions.includes('all') ? ['clinic', 'pharmacy', 'lims'] : editions;
  return <div className="ck-avail" role="note" aria-label="Feature availability">
      <span className="ck-avail__label">Available in</span>

      {list.map(e => <span key={e} className={`ck-pill ck-pill--${e}`}>
          {EDITION_LABELS[e] || e}
        </span>)}

      {plans ? <span className="ck-avail__label">Plan</span> : null}
      {plans ? <span className="ck-pill ck-pill--plan">{plans}</span> : null}

      {roles ? <span className="ck-avail__label">Who</span> : null}
      {roles ? <span className="ck-pill ck-pill--role">{roles}</span> : null}

      {note ? <span className="ck-avail__note">{note}</span> : null}
    </div>;
};

<Availability editions={['clinic']} plans="Solo and Team" roles="Owner, Manager" />

Step 4 of the [setup checklist](/practice/get-started). A service is a bookable thing you do — an appointment, a procedure, a therapy session — with a price and a duration. Your booking page lists them, your appointment sheet prices from them, and your invoices bill from them, so this is worth doing before [publishing the booking page](/practice/get-started/booking-page).

<Path steps={['Sidebar', 'Settings', 'Appointment Services']} />

<TaskHeader before="Nothing" time="3 minutes for one service; under a minute for a starter set" after="A services catalogue you can book, price and publish from" />

## The fast way — a starter set

The **Add your first service** card on Get Started has a second action under the main button: **Use a starter set**.

<Steps>
  <Step title="Open the dialog">
    Select **Use a starter set**. The dialog reads "Pick a specialty and we'll pre-fill your services catalogue. Edit anything afterwards from the Services page."
  </Step>

  <Step title="Pick a specialty">
    Four sets: **General Practice**, **Behavioural Health**, **Pediatrics** and **Dental**. Selecting one shows a **What you'll get** preview listing the first few services and their prices, plus how many services and categories the set contains.
  </Step>

  <Step title="Apply it">
    Select **Apply starter set** (the button reads **Applying…**). You then get a confirmation — "\{Specialty} starter set applied" — with **Done** and **Review services**.
  </Step>
</Steps>

<Note>
  A starter set is a starting point, not a commitment. Its prices are generic placeholders — open **Review services** and set your own before anyone books from your public page.
</Note>

## The manual way — one service at a time

<Steps>
  <Step title="Open the services list">
    Go to **Settings › Appointment Services** — "Manage services available for appointment booking". Select **Add Service**, which opens the **Add New Service** form.
  </Step>

  <Step title="Fill in Basic Information">
    **Service Name** and **Category** are required. **Sub-category (Optional)**, **Procedure Code (Optional)** and **Description (Optional)** are not.
  </Step>

  <Step title="Set the price and duration">
    Under **Pricing & Duration**, **Price** is labelled with your clinic's own currency — **Price (USD)**, **Price (NGN)** and so on, taken from **Settings › Billing**. **Duration (minutes)** is required and accepts 1 to 480; the preset buttons cover **15m** to **120m**.
  </Step>

  <Step title="Choose where it can happen">
    **Available Venues** is required — tick at least one of **In-Person**, **Telemedicine**, **Home Visit** or **Mobile Clinic**. This is what decides whether the service can be booked as a video visit.
  </Step>

  <Step title="Set the switches">
    **Active Service** ("Enable/disable this service for booking") controls whether the service can be booked at all — leave it on. **Requires Preparation** reveals a **Preparation Instructions** box for fasting, arrival times and similar.
  </Step>

  <Step title="Choose who can deliver it">
    Under **Providers**, tick the staff who may perform this service. "Leave all unchecked to offer it with any available provider" — which is what you want unless the service is genuinely restricted, because an empty list of ticked providers plus a restriction is what produces "No provider configured for this service" at booking time.
  </Step>

  <Step title="Save it">
    Select **Create Service**. The toast reads **Service created successfully** and the service appears in the list.
  </Step>
</Steps>

## Check it worked

* The service is listed under **Appointment Services** and searchable there.
* It appears in the **Select clinic service** picker on the appointment sheet, with its price filled in as the **Fee**.
* The **Get Started** checklist ticks **Add your first service**.

## If something goes wrong

<AccordionGroup>
  <Accordion title="I cannot find a colour, deposit or buffer field">
    There are none on the service form. Appointment colour is set per appointment on the booking sheet, and deposits are set on the booking page under **Payment Settings** — see [Publish your booking page](/practice/get-started/booking-page).
  </Accordion>

  <Accordion title="A service will not delete">
    "If this service is being used by any appointments, you will not be able to delete it. Consider deactivating it instead." Turn **Active Service** off — it disappears from booking without breaking the appointments and invoices that already reference it.
  </Accordion>

  <Accordion title="The service is not on my booking page">
    Creating a service does not publish it. Open **Settings › Booking Page Designer › Services** and select **Add to Page** on the ones you want public.
  </Accordion>

  <Accordion title="The starter set prices are wrong for my country">
    They are placeholders in your clinic's currency. Edit each service's **Price** from the services list — the starter set only saves you the typing, not the pricing decision.
  </Accordion>

  <Accordion title="I applied a starter set twice">
    Applying again adds the services again. Delete or deactivate the duplicates from the services list.
  </Accordion>
</AccordionGroup>

<StillStuck topic="services" />

Ongoing catalogue management, including how services drive invoicing, is in [Services](/clinic/revenue/services).
