[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# List appointments

> Reads the appointments of the Agenda tab for a date range, for the whole salon or one staff member. Inputs, cURL, Python and Node.js examples and an example response.

Source: https://cotlet.dev/docs/api/planity/list_appointments

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

Reads the appointments of the Agenda tab for a date range, for the whole salon or one staff member.

Planity API: https://cotlet.dev/docs/api/planity.md

`GET https://cotlet.dev/api/v1/planity/appointments`

Access: read.

Returns each appointment with its start and end, client, service, staff member and the status the agenda shows, ordered by start time. Appointments added online and by hand come back together, with a source field. Staff blocks (unavailabilities) are listed separately under blocks, so a free slot is never mistaken for a booking.

## Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `date_from` | string | yes | First day, YYYY-MM-DD, in the salon's local time. |
| `date_to` | string | yes | Last day, YYYY-MM-DD, included. |
| `staff_id` | string | no | Only this staff member (id from list_staff). |
| `client_id` | string | no | Only this client (id from list_clients). |

## Request

**cURL**

```bash
curl "https://cotlet.dev/api/v1/planity/appointments?date_from=date+from&date_to=date+to" \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

**Python**

```python
result = client.call("planity", "list_appointments", {"date_from":"date from","date_to":"date to"})
```

**Node.js**

```js
const result = await cotlet.call('planity', 'list_appointments', {"date_from":"date from","date_to":"date to"});
```

**CLI**

```bash
cotlet call planity list_appointments --data '{"date_from":"date from","date_to":"date to"}'
```

## Example response

```json
{
  "date_from": "2026-10-26",
  "date_to": "2026-10-26",
  "appointments": [
    {
      "appointment_id": "a_9120",
      "start": "2026-10-26T09:30:00",
      "end": "2026-10-26T10:30:00",
      "client": {
        "client_id": "c_1042",
        "name": "Léa Martin"
      },
      "service": "Coupe femme",
      "staff": {
        "staff_id": "st_01",
        "name": "Amélie"
      },
      "status": "confirmed",
      "source": "online"
    },
    {
      "appointment_id": "a_9124",
      "start": "2026-10-26T11:00:00",
      "end": "2026-10-26T12:30:00",
      "client": {
        "client_id": "c_0877",
        "name": "Noah Petit"
      },
      "service": "Couleur",
      "staff": {
        "staff_id": "st_03",
        "name": "Inès"
      },
      "status": "confirmed",
      "source": "salon"
    }
  ],
  "blocks": []
}
```

Next: [Get appointment](https://cotlet.dev/docs/api/planity/get_appointment.md)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
