# Practice day: staff as lanes (Medicine & practice example)

> WestCoast Charts 1.1.5, release, public Core release, on npm. HTML: https://westcoast-charts.com/gallery/medical/schedule-staff/ · Index for agents: https://westcoast-charts.com/llms.txt

The same model with lanes: "people": one lane per person; an appointment with two people (doctor + assistant) shows in both lanes.

- Chart type: `schedule` (Schedule)
- Collection: Medicine & practice · Medicine & practice
- Raw configuration: https://westcoast-charts.com/gallery-src/medical/schedule-staff.js
- Standalone example: https://westcoast-charts.com/embed/samples/wcc/premium/medical.html?only=schedule-staff&lang=en#v-schedule-staff

## Setup

```js
import WestCoastCharts from 'west-coast-charts'
import types from 'west-coast-charts/types'
import premium from 'west-coast-charts/premium'
import vitals from 'west-coast-charts/layers/vitals'
import schedule from 'west-coast-charts/layers/schedule'

WestCoastCharts.use(types).use(premium).use(vitals).use(schedule)
const WestCoastChartsPremium = premium
const WestCoastChartsLayer_vitals = vitals
const WestCoastChartsLayer_schedule = schedule
WestCoastCharts.setLicenseKey(LICENCE_KEY) // paid production licence; localhost evaluation needs no key
```

## Options

```js
const options = {
  "chart": {
    "type": "schedule",
    "height": "auto"
  },
  "series": [

  ],
  "plotOptions": {
    "schedule": {
      "date": "2026-10-26",
      "range": "day",
      "timeZone": "Europe/Berlin",
      "now": 1793009100000,
      "resources": [
        {
          "id": "R1",
          "name": "Room 1"
        },
        {
          "id": "R2",
          "name": "Room 2"
        },
        {
          "id": "R3",
          "name": "Room 3"
        },
        {
          "id": "LAB",
          "name": "Lab"
        },
        {
          "id": "SONO",
          "name": "Sono",
          "kind": "device"
        },
        {
          "id": "EKG",
          "name": "ECG",
          "kind": "device"
        }
      ],
      "people": [
        {
          "id": "D1",
          "name": "Dr. Adler",
          "role": "doctor"
        },
        {
          "id": "D2",
          "name": "Dr. Brandt",
          "role": "doctor"
        },
        {
          "id": "D3",
          "name": "Dr. Çelik",
          "role": "doctor"
        },
        {
          "id": "M1",
          "name": "MFA Ruiz",
          "role": "MFA"
        },
        {
          "id": "M2",
          "name": "MFA Novak",
          "role": "MFA"
        }
      ],
      "items": [
        {
          "id": "A1101",
          "resource": "R1",
          "start": "2026-10-26T06:40:00.000Z",
          "end": "2026-10-26T07:05:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-8919",
          "label": "Aftercare",
          "status": "done"
        },
        {
          "id": "A1102",
          "resource": "R1",
          "start": "2026-10-26T07:10:00.000Z",
          "end": "2026-10-26T07:30:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-7838",
          "label": "Acute",
          "status": "done"
        },
        {
          "id": "A1103",
          "resource": "R1",
          "start": "2026-10-26T07:40:00.000Z",
          "end": "2026-10-26T08:05:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-6757",
          "label": "First visit",
          "status": "done"
        },
        {
          "id": "A1104",
          "resource": "R1",
          "start": "2026-10-26T08:10:00.000Z",
          "end": "2026-10-26T08:30:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-5676",
          "label": "Vaccination",
          "status": "done"
        },
        {
          "id": "A1105",
          "resource": "R1",
          "start": "2026-10-26T08:35:00.000Z",
          "end": "2026-10-26T09:00:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-4595",
          "label": "Results",
          "status": "done"
        },
        {
          "id": "A1106",
          "resource": "SONO",
          "start": "2026-10-26T09:10:00.000Z",
          "end": "2026-10-26T09:30:00.000Z",
          "people": [
            "D1",
            "M2"
          ],
          "patient": "P-3514",
          "label": "Ultrasound",
          "status": "done"
        },
        {
          "id": "A1107",
          "resource": "R1",
          "start": "2026-10-26T09:35:00.000Z",
          "end": "2026-10-26T09:55:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-2433",
          "label": "Vaccination",
          "status": "done"
        },
        {
          "id": "A1108",
          "resource": "R1",
          "start": "2026-10-26T10:05:00.000Z",
          "end": "2026-10-26T10:25:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-1352",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1109",
          "resource": "R1",
          "start": "2026-10-26T10:25:00.000Z",
          "end": "2026-10-26T10:55:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-9271",
          "label": "Acute",
          "status": "done"
        },
        {
          "id": "A1110",
          "resource": "R1",
          "start": "2026-10-26T11:00:00.000Z",
          "end": "2026-10-26T11:20:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-8190",
          "label": "Acute",
          "status": "tentative"
        },
        {
          "id": "A1111",
          "resource": "R1",
          "start": "2026-10-26T12:40:00.000Z",
          "end": "2026-10-26T13:05:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-7109",
          "label": "Aftercare",
          "status": "cancelled"
        },
        {
          "id": "A1112",
          "resource": "R1",
          "start": "2026-10-26T13:10:00.000Z",
          "end": "2026-10-26T13:40:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-6028",
          "label": "Results",
          "status": "confirmed"
        },
        {
          "id": "A1113",
          "resource": "SONO",
          "start": "2026-10-26T13:55:00.000Z",
          "end": "2026-10-26T14:15:00.000Z",
          "people": [
            "D1",
            "M2"
          ],
          "patient": "P-4947",
          "label": "Ultrasound",
          "status": "confirmed"
        },
        {
          "id": "A1114",
          "resource": "R1",
          "start": "2026-10-26T14:25:00.000Z",
          "end": "2026-10-26T14:45:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-3866",
          "label": "Check-up",
          "status": "confirmed"
        },
        {
          "id": "A1115",
          "resource": "R1",
          "start": "2026-10-26T14:55:00.000Z",
          "end": "2026-10-26T15:25:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-2785",
          "label": "Vaccination",
          "status": "confirmed"
        },
        {
          "id": "A1116",
          "resource": "R1",
          "start": "2026-10-26T15:30:00.000Z",
          "end": "2026-10-26T15:50:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-1704",
          "label": "Check-up",
          "status": "tentative"
        },
        {
          "id": "A1117",
          "resource": "SONO",
          "start": "2026-10-26T16:00:00.000Z",
          "end": "2026-10-26T16:25:00.000Z",
          "people": [
            "D1",
            "M2"
          ],
          "patient": "P-9623",
          "label": "Ultrasound",
          "status": "tentative"
        },
        {
          "id": "A1118",
          "resource": "R2",
          "start": "2026-10-26T06:45:00.000Z",
          "end": "2026-10-26T07:10:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-8542",
          "label": "Vaccination",
          "status": "done"
        },
        {
          "id": "A1119",
          "resource": "R2",
          "start": "2026-10-26T07:20:00.000Z",
          "end": "2026-10-26T07:50:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-7461",
          "label": "Acute",
          "status": "done"
        },
        {
          "id": "A1120",
          "resource": "R2",
          "start": "2026-10-26T07:50:00.000Z",
          "end": "2026-10-26T08:20:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-6380",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1121",
          "resource": "R2",
          "start": "2026-10-26T08:20:00.000Z",
          "end": "2026-10-26T08:50:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-5299",
          "label": "Results",
          "status": "done"
        },
        {
          "id": "A1122",
          "resource": "EKG",
          "start": "2026-10-26T09:05:00.000Z",
          "end": "2026-10-26T09:35:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-4218",
          "label": "ECG",
          "status": "done"
        },
        {
          "id": "A1123",
          "resource": "R2",
          "start": "2026-10-26T09:40:00.000Z",
          "end": "2026-10-26T10:10:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-3137",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1124",
          "resource": "R2",
          "start": "2026-10-26T10:15:00.000Z",
          "end": "2026-10-26T10:35:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-2056",
          "label": "Aftercare",
          "status": "done"
        },
        {
          "id": "A1125",
          "resource": "R2",
          "start": "2026-10-26T10:35:00.000Z",
          "end": "2026-10-26T11:00:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-9975",
          "label": "Vaccination",
          "status": "done"
        },
        {
          "id": "A1126",
          "resource": "R2",
          "start": "2026-10-26T11:00:00.000Z",
          "end": "2026-10-26T11:25:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-8894",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1127",
          "resource": "R2",
          "start": "2026-10-26T12:40:00.000Z",
          "end": "2026-10-26T13:10:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-7813",
          "label": "Check-up",
          "status": "done"
        },
        {
          "id": "A1128",
          "resource": "R2",
          "start": "2026-10-26T13:10:00.000Z",
          "end": "2026-10-26T13:30:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-6732",
          "label": "Results",
          "status": "confirmed"
        },
        {
          "id": "A1129",
          "resource": "EKG",
          "start": "2026-10-26T13:40:00.000Z",
          "end": "2026-10-26T14:00:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-5651",
          "label": "ECG",
          "status": "confirmed"
        },
        {
          "id": "A1130",
          "resource": "R2",
          "start": "2026-10-26T14:05:00.000Z",
          "end": "2026-10-26T14:30:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-4570",
          "label": "Results",
          "status": "confirmed"
        },
        {
          "id": "A1131",
          "resource": "R2",
          "start": "2026-10-26T14:35:00.000Z",
          "end": "2026-10-26T14:55:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-3489",
          "label": "Acute",
          "status": "confirmed"
        },
        {
          "id": "A1132",
          "resource": "R2",
          "start": "2026-10-26T14:55:00.000Z",
          "end": "2026-10-26T15:25:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-2408",
          "label": "Vaccination",
          "status": "confirmed"
        },
        {
          "id": "A1133",
          "resource": "R2",
          "start": "2026-10-26T15:25:00.000Z",
          "end": "2026-10-26T15:45:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-1327",
          "label": "Follow-up",
          "status": "confirmed"
        },
        {
          "id": "A1134",
          "resource": "EKG",
          "start": "2026-10-26T15:47:00.000Z",
          "end": "2026-10-26T15:57:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-9246",
          "label": "ECG",
          "status": "confirmed"
        },
        {
          "id": "A1135",
          "resource": "R2",
          "start": "2026-10-26T16:02:00.000Z",
          "end": "2026-10-26T16:22:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-8165",
          "label": "Aftercare",
          "status": "confirmed"
        },
        {
          "id": "A1136",
          "resource": "R2",
          "start": "2026-10-26T16:22:00.000Z",
          "end": "2026-10-26T16:52:00.000Z",
          "people": [
            "D2"
          ],
          "patient": "P-7084",
          "label": "Aftercare",
          "status": "confirmed"
        },
        {
          "id": "A1137",
          "resource": "R3",
          "start": "2026-10-26T06:50:00.000Z",
          "end": "2026-10-26T07:10:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-6003",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1138",
          "resource": "R3",
          "start": "2026-10-26T07:15:00.000Z",
          "end": "2026-10-26T07:35:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-4922",
          "label": "Aftercare",
          "status": "done"
        },
        {
          "id": "A1139",
          "resource": "R3",
          "start": "2026-10-26T07:40:00.000Z",
          "end": "2026-10-26T08:10:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-3841",
          "label": "Aftercare",
          "status": "done"
        },
        {
          "id": "A1140",
          "resource": "R3",
          "start": "2026-10-26T08:10:00.000Z",
          "end": "2026-10-26T08:30:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-2760",
          "label": "Follow-up",
          "status": "done"
        },
        {
          "id": "A1141",
          "resource": "R3",
          "start": "2026-10-26T08:35:00.000Z",
          "end": "2026-10-26T09:05:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-1679",
          "label": "Check-up",
          "status": "done"
        },
        {
          "id": "A1142",
          "resource": "R3",
          "start": "2026-10-26T09:05:00.000Z",
          "end": "2026-10-26T09:30:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-9598",
          "label": "Check-up",
          "status": "done"
        },
        {
          "id": "A1143",
          "resource": "R3",
          "start": "2026-10-26T09:30:00.000Z",
          "end": "2026-10-26T10:00:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-8517",
          "label": "Check-up",
          "status": "done"
        },
        {
          "id": "A1144",
          "resource": "R3",
          "start": "2026-10-26T10:05:00.000Z",
          "end": "2026-10-26T10:30:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-7436",
          "label": "First visit",
          "status": "done"
        },
        {
          "id": "A1145",
          "resource": "R3",
          "start": "2026-10-26T10:30:00.000Z",
          "end": "2026-10-26T10:50:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-6355",
          "label": "Acute",
          "status": "done"
        },
        {
          "id": "A1146",
          "resource": "R3",
          "start": "2026-10-26T10:50:00.000Z",
          "end": "2026-10-26T11:20:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-5274",
          "label": "Aftercare",
          "status": "tentative"
        },
        {
          "id": "A1147",
          "resource": "R3",
          "start": "2026-10-26T12:30:00.000Z",
          "end": "2026-10-26T12:55:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-4193",
          "label": "Results",
          "status": "done"
        },
        {
          "id": "A1148",
          "resource": "R3",
          "start": "2026-10-26T12:55:00.000Z",
          "end": "2026-10-26T13:25:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-3112",
          "label": "Check-up",
          "status": "done"
        },
        {
          "id": "A1149",
          "resource": "R3",
          "start": "2026-10-26T13:30:00.000Z",
          "end": "2026-10-26T13:55:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-2031",
          "label": "First visit",
          "status": "confirmed"
        },
        {
          "id": "A1150",
          "resource": "R3",
          "start": "2026-10-26T14:00:00.000Z",
          "end": "2026-10-26T14:30:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-9950",
          "label": "Acute",
          "status": "confirmed"
        },
        {
          "id": "A1151",
          "resource": "R3",
          "start": "2026-10-26T14:35:00.000Z",
          "end": "2026-10-26T14:55:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-8869",
          "label": "Vaccination",
          "status": "confirmed"
        },
        {
          "id": "A1152",
          "resource": "R3",
          "start": "2026-10-26T14:55:00.000Z",
          "end": "2026-10-26T15:15:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-7788",
          "label": "First visit",
          "status": "confirmed"
        },
        {
          "id": "A1153",
          "resource": "R3",
          "start": "2026-10-26T15:15:00.000Z",
          "end": "2026-10-26T15:40:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-6707",
          "label": "Vaccination",
          "status": "confirmed"
        },
        {
          "id": "A1154",
          "resource": "R3",
          "start": "2026-10-26T15:45:00.000Z",
          "end": "2026-10-26T16:15:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-5626",
          "label": "Aftercare",
          "status": "confirmed"
        },
        {
          "id": "A1155",
          "resource": "R3",
          "start": "2026-10-26T16:25:00.000Z",
          "end": "2026-10-26T16:45:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-4545",
          "label": "Follow-up",
          "status": "confirmed"
        },
        {
          "id": "A1156",
          "resource": "LAB",
          "start": "2026-10-26T06:30:00.000Z",
          "end": "2026-10-26T06:40:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-3464",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1157",
          "resource": "LAB",
          "start": "2026-10-26T06:50:00.000Z",
          "end": "2026-10-26T07:00:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-2383",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1158",
          "resource": "LAB",
          "start": "2026-10-26T07:10:00.000Z",
          "end": "2026-10-26T07:20:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-1302",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1159",
          "resource": "LAB",
          "start": "2026-10-26T07:30:00.000Z",
          "end": "2026-10-26T07:40:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-9221",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1160",
          "resource": "LAB",
          "start": "2026-10-26T07:50:00.000Z",
          "end": "2026-10-26T08:00:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-8140",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1161",
          "resource": "LAB",
          "start": "2026-10-26T08:10:00.000Z",
          "end": "2026-10-26T08:20:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-7059",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1162",
          "resource": "LAB",
          "start": "2026-10-26T08:30:00.000Z",
          "end": "2026-10-26T08:40:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-5978",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1163",
          "resource": "LAB",
          "start": "2026-10-26T08:50:00.000Z",
          "end": "2026-10-26T09:00:00.000Z",
          "people": [
            "M1"
          ],
          "patient": "P-4897",
          "label": "Blood draw",
          "status": "done"
        },
        {
          "id": "A1164",
          "resource": "LAB",
          "start": "2026-10-26T09:40:00.000Z",
          "end": "2026-10-26T09:55:00.000Z",
          "people": [
            "D1"
          ],
          "patient": "P-3816",
          "label": "Results talk",
          "status": "confirmed"
        },
        {
          "id": "A1165",
          "resource": "R2",
          "start": "2026-10-26T14:00:00.000Z",
          "end": "2026-10-26T14:20:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-2735",
          "label": "Cover",
          "status": "tentative"
        },
        {
          "id": "A1166",
          "resource": "R3",
          "start": "2026-10-26T16:55:00.000Z",
          "end": "2026-10-26T17:15:00.000Z",
          "people": [
            "D3"
          ],
          "patient": "P-1654",
          "label": "Acute",
          "status": "confirmed"
        }
      ],
      "hours": {
        "open": "07:30",
        "close": "18:00",
        "days": [
          1,
          2,
          3,
          4,
          5
        ],
        "breaks": [
          [
            "12:30",
            "13:30"
          ]
        ]
      },
      "rules": {
        "minTransfer": "5min"
      },
      "snap": 5,
      "view": "auto",
      "lanes": "people"
    }
  }
}

const chart = new WestCoastCharts(document.querySelector('#chart'), options)
await chart.render()
```

## Verify

- Text check (Library 1.1.5): load `west-coast-charts/agent/describe` and call `chart.describe({ format: "json" })` for the actual drawn state. The live reader is on this example’s HTML page.
- Command line (Public agent tools 0.2.3, tested with Library 1.1.5; available from the versioned GitHub release and npm, https://westcoast-charts.com/docs/cli/index.md): `wcc chart export medical-schedule-staff.json --out medical-schedule-staff.svg --with-table` (save the options above as JSON first)
