zenly/Documentação
Buscar na documentação
Português
API referenceCalendar

Sessions in a window

GET/v1/calendar

Every session between from and to, computed by expanding each schedule's recurrence rule. Enough to put a class timetable on your own site. It does not report who is booked: that is member data a timetable does not need.

Authorization

Any active key, sent as a bearer token. Keys are owner-equivalent, so there are no scopes to grant and nothing to configure per endpoint. See Authentication.

Parameters
fromstring (date-time)queryREQUIRED

Window start, inclusive (RFC3339). Send any UTC offset you like; the window is resolved as an instant.

tostring (date-time)queryREQUIRED

Window end, exclusive (RFC3339). At most 366 days after from.

locationIdstring (uuid)queryOPTIONAL
serviceTypeIdstring (uuid)queryOPTIONAL

Edit any field above and the request updates as you type. Empty fields are left out.

Response fields
dataarray of OccurrenceBody
10 fields per item
bookedCountinteger (int32)

Seats taken. A seat stays taken once the member arrives, since checking in records attendance rather than giving it back.

capacityinteger (int32)
endAtstring (date-time)

UTC

idstringOPTIONAL

Absent for a session that has not been booked, cancelled or moved yet

locationIdstring

Render the times below on this location's timezone

resourceIdsarray of stringOPTIONAL

Who or what runs this session: the instructor, the room, the court

scheduleIdstringOPTIONAL
serviceTypeIdstring
startAtstring (date-time)

UTC

statusstring (enum)
totalinteger (int64)

Sessions returned. Not paginated: the window is the bound.

Errors

These apply to every endpoint on the API, not just this one. Errors covers the body shape.

401
Unauthorized

No bearer token, or a token that is unknown, revoked or expired. All four answer identically on purpose, so a caller probing tokens learns nothing about which is which.

402
Payment Required

The organization’s plan does not include the public API. It is available on Pro and above, and the check runs on every request, so a downgrade stops keys that were minted earlier.

403
Forbidden

The organization is not active.

429
Too Many Requests

The key is over its rate limit. Back off and retry.

500
Internal Server Error

Something failed on our side. The body carries a short sentence and never an internal error string, so quote your own request timestamp when reporting one.

stays in this tab
cURL
curl "https://api.zenly.app.br/v1/calendar?from=2026-01-31T09%3A00%3A00Z&to=2026-01-31T09%3A00%3A00Z" \
  -H "Authorization: Bearer $ZENLY_API_KEY"
Response200 OK
{
  "data": [
    {
      "bookedCount": 0,
      "capacity": 0,
      "endAt": "2026-01-31T09:00:00Z",
      "id": "string",
      "locationId": "string",
      "resourceIds": [
        "string"
      ],
      "scheduleId": "string",
      "serviceTypeId": "string",
      "startAt": "2026-01-31T09:00:00Z",
      "status": "scheduled"
    }
  ],
  "total": 0
}