Date-only fields
Balance expiries, birthdays, and registration dates use ISO 8601 calendar dates:validTo, validToDate, clientBirthday,
registrationDate, and lastBookingCompletedDate all use this format.
Query ranges
The schedule endpoints requiredateFrom and dateTo, both YYYY-MM-DD and
both inclusive:
dateTo=2026-03-31 covers that whole day up to local midnight, so a 22:00 class
in Prague is included even though it is 21:00 UTC.
Both values must be real calendar dates, and dateFrom must be on or before
dateTo. A malformed or impossible date returns 400.
The range is required, and it may span at most 366 days, counting both ends.
A wider range returns 400. Together these stop a single call from loading a
studio’s entire history — fetch a long period as a few sequential calls.
Event times
Every class and workshop reports its start and end three ways, so you never have to reconstruct a time zone yourself.start and end are always UTC with a Z suffix. localTimeStart and
localTimeEnd are the same instants in the studio’s zone, always with a numeric
offset — +00:00 rather than Z, even for a UTC studio.
timezone is an IANA identifier. A studio that never set one reports UTC.
Grant validity
When granting credits or entry passes you do not send an expiry date. You send a duration, and Zenamu computes the expiry from the moment of the grant:validityTimeUnit is day, week, month, or year. Each unit has a ceiling:
Exceeding the ceiling fails validation with
400. The response returns the
resulting validTo as a plain date.
