Skip to content

Business

Fields

idID!
nameString!

Resolved for the given locale, falling back to English. Defaults to the viewer's locale.

Arguments (1)
localeLocale
handleString!

URL-safe handle used as the first path segment in public and admin URLs (e.g. still-water-yoga-demo).

Staff members of this business. Cursor-paginated; default page size 50, clamped to [1, 100]. Sort order is name ASC, id ASC. Passing filter.query matches the staff member's name.

Arguments (3)
bookableActivities[Activity!]!

Booking activities (structure: booking) that currently accept online bookings — those with availability windows configured. Drives the public booking calendar's chooser. Empty when the appointments feature is off or the business has no booking activities.

Activities offered by this business. Cursor-paginated; default page size 50, clamped to [1, 100]. Sort order is createdAt DESC, id ASC. filter.query matches the activity's name (case-insensitive). The array filters (types, structures, registrationStatuses) AND together — passing two structures returns activities matching either one; passing both a structure and a type returns activities matching both. startAfter / endBefore filter on the activity's startDate / endDate columns directly.

Arguments (3)
firstInt
afterString
scheduledSessionsActivitySessionConnection!

Cursor-paginated sessions across all activities in this business, for the all-sessions admin list. Supports the same starting filter as sessions, plus filters for activity, staff member, time-of-day, and a free-text query against session/activity name.

Order defaults to startAt ASC, id ASC; pass sort: startDesc to return the most recent sessions first. Default page size 50, clamped to [1, 100].

Arguments (5)
recommendedScheduleViewScheduleView!

The calendar view this business's schedule should open on by default, derived from upcoming session density over the next ~4 weeks (in the business's local timezone): DAY when there are generally more than two sessions on the days that have sessions, else WEEK when there are generally more than two per week on weeks that have sessions, else MONTH. Anonymous-queryable — used for the public schedule's SSR default, the <sessions-schedule view="auto"> embed, and the copy-pasteable embed snippet baked in the admin + developer docs.

Products sold by this business — passes, memberships, gift cards, and physical products in a single mixed list. Cursor-paginated; default page size 50, clamped to [1, 100]. Sort order is products.createdAt DESC, products.id ASC so newly-created products surface first regardless of subtype.

filter.query matches the product's display name across all subtype tables (case-insensitive). filter.types restricts the result to one or more product subtypes — pass null or omit for the union.

By default the list only contains products available to the current viewer — intro offers drop out once the viewer has purchased from this business — so shopper-facing surfaces can't surface offers the viewer isn't allowed to buy. Management surfaces pass availability: all.

Arguments (4)
firstInt
afterString
availabilityProductAvailability!

Brand configuration including icon and computed theming tokens.

emailMarketingBusinessEmailMarketing!

Email-marketing consent collection settings. Off by default; governs whether the standardized opt-in is presented on registration and checkout.

viewerEmailMarketingConsentEmailMarketingConsentStatus

The signed-in viewer's own marketing-consent status with this business, or null when they are signed out, have no participant record, or were never asked. Lets the registration / checkout opt-in hide itself once the viewer has already subscribed. Only ever the viewer's own status — never another participant's.

Localization configuration. Anchors all calendar-relevant rendering (schedule strip, week boundaries, session times, registration close-time math, exports, calendar feeds) to a canonical timezone so SSR HTML and client first paint agree regardless of the visitor's browser timezone.

taxAddedAtCheckoutBoolean!

Whether prices shown on this business's public surfaces are pre-tax amounts that will have sales tax added at checkout. True when tax collection is effectively enabled, prices display tax-exclusively, and (on the sessions engine) the business holds at least one collecting registration. A soft display hint only — the checkout preview remains the authority on whether a given sale is actually taxed, since taxability also depends on the item's category and the sale's jurisdiction. Leaks nothing beyond "prices may not be final".

hasOpenLeaguesBoolean!

Whether this business has at least one league currently open for registration (an open, non-full division accepting teams or individuals). Query-driven — unlike onboarding structures, it stays correct when a classes-first business later adds a league, so the public home page can surface the leagues section. Always false when the leagues feature is off.

Used in