Skip to content
ActivityObject

Fields

idID!
businessBusiness
nameString!
descriptionString
priceInt!

Configured reminders for this activity's sessions, ordered by lead time (soonest-before-session last). Empty when no reminders are configured.

taxCodeString

Stripe tax code (e.g. txcd_20030000 for in-person services) used when computing tax for a registration. Null falls back to the business default; txcd_99999999 marks it as non-taxable.

startDateString
endDateString
scoreEntryModeLeagueScoreEntryMode!

How a reported league match result is confirmed (only meaningful for league activities). immediate applies + counts at once (opponent may dispute); adminApproval holds the result pending until staff approval.

divisions[Division!]!
teams[Team!]!

Individual session instances generated from this activity. Only populated for activities with structure: class. Cursor-paginated; sort defaults to startAt ASC, id ASC — pass sort: startDesc to flip to most-recent first. Pair with starting to scope the window to upcoming/past/from-date, and filter to narrow by lifecycle status (only the status field of ActivitySessionFilter is applied here; activity/staff/time-of-day/query are server-side no-ops for this field).

Arguments (5)
upcomingSessionCountInt!

Number of upcoming sessions for this activity — sessions whose endAt is in the future (or whose startAt is in the future when endAt is null) and whose status is scheduled or active.

hasCompletedSessionsBoolean!

Whether this activity has at least one completed session.

isRecurringBoolean!

Whether the activity repeats. True even when no specific schedule is set (i.e. "recurring, schedule TBD").

recurrenceScheduleRecurrenceSchedule

The recurrence rule describing how sessions are generated. Null when the activity has no specific schedule (either single-session, or recurring without a set schedule).

durationInt

Default duration of each session in minutes.

pricingRulesForIndividualRegistration[PricingRule!]!

Pricing rules that apply to individual registrations for this activity. Business-side access only; returns an empty list for public callers.

pricingRulesForTeamRegistration[PricingRule!]!

Pricing rules that apply to team registrations for this activity. Business-side access only; returns an empty list for public callers.

effectiveIndividualRegistrationPriceInt!

The effective individual-registration price for the current user after applying pricing rules. Falls back to the base price when the user is anonymous or not a participant at the business.

effectiveTeamRegistrationPriceInt!

The effective team-registration price for the current user after applying pricing rules. Falls back to the base price when the user is anonymous or not a participant at the business.

registrationBlocks[RegistrationBlock!]!

Custom form blocks shown during registration, configured by the business.

individualRegistrationsActivityRegistrationConnection!

Confirmed registrations across all sessions of this activity, ordered by createdAt ASC, id ASC. Cursor-paginated; default page size 50, clamped to [1, 100].

Arguments (2)
firstInt= 50
afterString
waitlistRegistrationsActivityRegistrationConnection!

All waitlisted registrations for this activity, ordered by waitlistPosition ASC, id ASC. Cursor-paginated; default page size 50, clamped to [1, 100].

Arguments (2)
firstInt= 50
afterString
availableLocations[Location!]!
bookableFacilities[Facility!]!

Facilities (rooms/courts) that can fulfill this activity. Only meaningful for structure: booking with fulfilledBy: facility.

bookingModeBookingMode!

How a customer books this activity — only meaningful when structure is booking. instant runs the normal registration + checkout; request creates a pending request a staff member approves before it confirms.

fulfilledByResourceKind

Which kind of resource fulfills a structure: booking activity (staff, facility, or location). Null for non-booking activities.

slotIncrementMinutesInt

Bookable time increment in minutes (the slot grid step) for a booking activity. Null for non-booking activities.

minIncrementsInt

Minimum / maximum number of increments a single booking may span. Null = unbounded. Only meaningful for booking activities.

maxIncrementsInt
bookingPricePerIncrementInt

Price in cents per booked increment (total = this × increments booked), or null / 0 when the booking is free. Only meaningful for booking activities.

bookingPaymentResolutionPaymentResolution

How the current viewer can pay for a booking of this activity — the booking-checkout counterpart to ActivitySession.paymentResolution. Surfaces the viewer's covering passes/memberships (a pass spends the activity's creditCost, default 1, per booked increment), buyable passes, and card. price is the per-increment rate (bookingPricePerIncrement); a pass covers the booking when it has enough sessions for creditCost × increments (checked at booking time, since the range isn't known here). Null for non-booking activities and for signed-out viewers with no guest-checkout.

bookingTimezoneTimezone

IANA timezone the booking windows are interpreted in (null inherits the business default).

bookingWindows[AvailabilityBlock!]!

Weekly open windows for a booking activity (the availability grid).

bookingExceptions[AvailabilityException!]!

Date-specific overrides on a booking activity's weekly windows.

Staff members assigned to this activity. Individual sessions inherit these assignments unless overridden.

effectiveCancellationPolicyActivityCancellationPolicy!

Resolved cancellation policy for this activity — composes the per-activity override over the business default. Always non-null; unconfigured fields fall back to platform defaults (no cutoff, 100% in window, 0% out of window).

cancellationPolicyOverrideActivityCancellationPolicyOverride!

The raw per-activity cancellation override values. Each field is null when this activity inherits the business default for it. Use this (not effectiveCancellationPolicy) to populate the activity editor, where null means "inherit". Always non-null as an object.

metadataString

Returns the first value of the named metadata key, or null if not set. Names use reverse-DNS format, e.g. sessions.website.spotify.playlist.id; the $. shorthand ($.skill-level) is accepted as an alias for the sessions. namespace. For list-valued fields, prefer metadataValues.

Arguments (1)
nameString!
metadataValues[String!]!

Returns every value stored for the named metadata key, in order. A scalar field yields a one-element list; an unset key yields an empty list. Accepts the same key forms as metadata.

Arguments (1)
nameString!
metadataEntries[MetadataEntry!]!

All metadata stored on this activity, one entry per key (each carrying its ordered list of values). Powers the Metafields-style editor.

createdAtDateTime!
calendarCalendarUrl!

Used in

Activity