Complete manual

The complete manual

Everything in one place. It covers setting up, running your classes day to day, customers, payments, connecting other tools, reports and fixing problems.

What this manual covers

FullClass™ works in a few simple steps. You set up your business, create your classes and put them on dates. Customers book and pay, FullClass keeps them and your staff informed, and reports show you how things are going. Nearly every feature is on for every account. Waitlists are the exception. They start off, and you turn them on under Settings → Features.

Each section below is the short version. It links to the article that covers the same ground in more detail.

Business setup and settings

Your account holds everything for your business. That includes settings, branding, customers, users, bookings, reports and payments.

General settings

  • Set your business name, booking page address, website, currency, contact details, timezone and the date your financial year ends.
  • Legal business name (optional): your registered company name. It is shown on receipts and in the note customers agree to when they book (for example "You are booking with and paying Acme Inc."). Leave it blank to use your business name.
  • Sales tax registration number (optional): your GST or HST number in Canada, or your VAT number in the EU. Business customers usually need it to claim the tax back, so FullClass prints it on your receipts. That means booking and course receipts, gift card and class pass receipts, and private event quotes, invoices and receipts. A Quebec studio can enter both numbers on one line. In the US you can usually leave it blank. In Australia, enter your ABN, and it is printed as "ABN". A booking, course or class pass receipt, or a private event invoice, that charges GST is then titled "Tax invoice", as the ATO requires. A balance gift card's receipt is never titled that way, because no GST is charged when a gift card is sold.
  • Tax note on receipts (optional): one line of your own, up to 200 characters. It is printed under your tax details, right after your sales tax registration number if you have one. It appears on booking receipts, on private event quotes, invoices and receipts, and on private event payment receipt emails. Use it for a statement the law asks you to show. For example, a French micro-entreprise that is not registered for VAT must print "TVA non applicable, art. 293 B du CGI". Leave it blank if you don't need one.
  • Billing email and billing address: where FullClass sends your subscription receipts. The billing address is also printed on those receipts, and FullClass keeps it the same in Stripe. Start typing to search for an address, or leave it blank. If you enter an address, choose its Country too. Picking a suggestion fills it in for you. The country also sets the paper size of your receipts and quotes (Letter in the US and Canada, A4 elsewhere). If you type the address out instead of picking a suggestion, FullClass looks it up when you save. If it cannot confirm it, you are asked for the city and postal code.
  • Choose a booking page address customers will recognize. It appears in your booking page and customer portal links.
  • Check when your financial year ends before you rely on yearly reports.

Branding

  • Upload your main logo and a small square Thumbnail. Your booking page and receipts show the main logo, so use artwork that is easy to see on white. The logo in your emails is set separately under Settings → Email.
  • Choose your brand color (a hex code such as #7C3AED). You can also choose your booking page's background, surface and border colors. Emails put white or dark text on your brand color, whichever is easier to read. They also darken headings in your color until they are easy to read on white. You can choose an admin color too, which replaces the brand color inside the admin only. Use it when your brand color is too light to see on white, or leave it blank to use the brand color.
  • Check how your branding looks on your booking page, the customer portal, your emails and the widget on your website.

Emails FullClass sends

  • FullClass sends automatic emails for you. These include booking confirmations, alerts to your team, reminders, class lists for instructors, review requests after a class, sign-in links, password resets and unsubscribe pages.
  • Review requests ask attendees for a Google review a few hours after a class ends. To use them, paste your Google review link under Settings → Email (leave it blank to turn them off). Then turn them on for each class under Reminders & notifications. If your referral program is on, the email also shares the customer's referral link.
  • Settings → Email → Email appearance sets what the email header shows. You can pick an email logo you upload there, your main logo, or your business name. You also set the colors of the header, background, text and buttons, and a live preview of a sample email updates as you change them. Header and button text switches between white and dark by itself, so it stays readable. A text color too light to read on the white card is not accepted.
  • Check who receives each email, and your reminder settings, before you launch.
  • Settings → Email Logs lists every email FullClass has sent for your studio, with its recipient, subject and status. Open an entry to see the exact message that was delivered, with a link to the matching entry in the Activity feed.

Classes, events, locations and calendar

Feature What it is for How to set it up
Bulk import Set up locations, classes, a whole term's schedule, customers, gift cards and upcoming bookings from one spreadsheet. Go to Settings → Import from a spreadsheet. Download the template, fill in the sheets you need, and upload the whole file. FullClass reads the sheets in order (Locations, Classes, Schedule, Customers, Gift cards, then Bookings). So each sheet can refer to the ones above it by name, spelled exactly as you typed it. Write dates as YYYY-MM-DD HH:MM, which is read as local time at the venue. Day-first dates like 03/04/2026 are refused, because they mean different days in different countries. Write prices as plain numbers like 89.25 in your own currency. The Schedule sheet needs only the class name and start time. Price, length, spots and venue come from the class. Customers are matched by email. Nothing is saved until you have seen a preview. It shows what will be added and updated, plus any problem rows with their row number and column. Fix those and upload the same file again. This updates what is already there rather than adding copies. Gift cards and bookings are the exception, because one that is already here is left exactly as it is. The Bookings sheet brings across upcoming bookings from another platform. It needs Customer Email, Class and Starts At, and can also take Location, Seats and Notes. Each imported booking holds the customer's spots with no payment recorded. So it stays out of revenue and tax reports, and any refund of what they paid is made on the old platform. Only the person who bought is named, and a row that would overbook the class is refused. Importing never emails customers. Files must be .xlsx (open an older .xls in Excel and save it again). A single .csv works for one sheet if you name the file after that sheet. Sheet names and column headings stay in English in every language, because that is how FullClass matches up the file. Only owners and admins can import.
Classes The things you sell, set up once and reused for every date. Each class holds its name, description, product code, ages, length, default price and default group prices. It also holds the default spots, default instructor and location, the most spots one booking can take, a color and pictures. Pictures can be JPEG, PNG, WebP or GIF, up to 15MB each, and you drag them to reorder on the class form. You can also attach terms, waivers and a cancellation policy. Other settings cover a prompt for booking notes, the booking window, arrival time, when the instructor gets the class list, tax exemption, whether the class is private or hidden, reminders and add-ons. Removing a class deletes it, with its add-ons, waivers and pictures, if it has no events. If it has events, it is archived instead. That hides it from customers and keeps its history, and you can restore it anytime. To make a near-identical copy, choose Duplicate from the class's row actions menu. The copy has "(Copy)" at the end of its name and carries over all settings, add-ons, waivers, categories and pictures. Its product code is left blank so you can give it a new one.
Events The dates and times customers can book. For each event, check the class, the instructor and the location (required, in person or online). Also check the start and end time, spots, price, group prices (discounts for booking several spots) and the most spots one booking can take. You can change the booking window, arrival time, instructor email, tax exemption and whether the event shows publicly. You can also pause booking, which stops new bookings without cancelling or hiding the event. An event can also be made private or be cancelled.
Locations Where events happen (in person or online), and which tax rates and timezone apply. An in-person location has a full address, with a map preview, timezone, region, postal code, country and district or suburb. An online location has a meeting link (Zoom, Google Meet or Teams), and its timezone starts as your account's. Both can have optional arrival or joining details. These could be parking and directions, or a meeting ID, passcode and dial-in number. Customers see them under the address or meeting link in confirmation and reminder emails, in the portal and through the booking API. You can also set a maximum capacity. If an event's spots go over it, FullClass warns you, and you can go ahead anyway. Each location also has its own tax rates.
Calendar Your whole schedule at a glance. Check what is coming up, spot gaps, avoid booking an instructor or a location twice, and open any event quickly.
Roster Your class-day list, and a sheet you can print. Before the event starts, check attendee names, how many spots each has, customer notes, waivers and booking status. Choose Actions → View roster on any event to open a clean sheet you can print, with a tick box beside each attendee. It is always there, whether or not attendance check-in is turned on. Download CSV there saves one row for each person, the list to send a governing body or insurer. A course has the same download in its Manage menu, for everyone enrolled.
Mark attendance A check-in list for the day, saved as you go. On the event's roster, tap each attendee's Present box. It saves straight away, and a live count shows how many are checked in. Checking someone in sets their booking to Attended, and unticking sets it back to Confirmed. The same Mark attended and Mark not attended action is on each row of the event's bookings list. If booking QR codes are turned on, tap Scan QR codes on the roster. This opens the device camera so you can check people in by scanning. Each scan shows a confirmation on screen with a beep and a vibration, then the camera is ready for the next one. Instructors teaching the event can use it. You can turn the whole feature (check-in, QR codes and the attendance report) off under Settings → Features. The roster and its printable sheet stay, because that switch does not cover them.
Waitlist Lets customers line up for sold-out events and courses, and offers freed spots automatically. It is off until you turn it on under Settings → Features. Sold-out events and courses show a Join Waitlist button on the booking page. When someone joins, they get an email with their place in line. When a spot frees up, FullClass emails the first person in line a booking link. They have 24 hours to book before the offer passes to the next person. You can change that to anything from 1 to 48 hours under Settings → Waitlists. An offer does not hold the spot, so whoever books first gets it. The event and course pages list everyone in line with their status (Waiting, Offered, Booked or Expired), and you can remove anyone. See Waitlists.
Courses A series of linked sessions sold together as one prepaid pack, for one fixed total. Set the name, total price, spots, location, instructor, cancellation policy, color, tax setting, the most spots one booking can take, a notes prompt and any required waivers. Build the schedule from days, times and a date range. FullClass makes one session for each matching date. Then you pick a class for each session on a review step, and sessions can use different classes. These sessions can only be booked as part of the course. One purchase books the customer into every session and holds a spot in each. Staff can book a course for a customer from the admin. They can apply a promo code and balance gift cards there, just as a customer can at checkout. You cannot lower the spots below the number already booked. The most spots per booking cannot be more than the course's spots either. A session always has the course's spots, so change them on the course, not on the session's event. Cancelling a purchase cancels all of its sessions that are still confirmed and frees those spots. Refunds follow the cancellation policy. Archive a course to stop new purchases, and restore it to sell it again. Removing a course deletes it and its sessions if it has no bookings. If it has bookings, it is archived instead, so purchase and payment history is kept.
Rule of thumb. Put rules that stay the same on the class. Only change an event's details when that one date needs a different setup, price, number of spots or message.
Not sure a class is running? Use Booking pause on the event rather than hiding it or setting its spots to zero. A paused event stays on your booking page with a Booking Paused badge and no Book button. It still runs for everyone already booked and still sends their reminders. You can keep adding bookings yourself from the admin. Hiding the event looks to customers like a cancellation, and zero spots looks like Sold Out. See Classes & events.

Where customers book

Your booking page

Your booking page lives at /b/{your-booking-page-address}. It is the quickest way to start taking bookings. It uses your branding, lists the events customers can book, and links to the customer portal.

  • Test with it first when you launch. It skips the extra steps of putting the widget on your own website.
  • Check how it shows events that are private, hidden, sold out, not yet open for booking, or closed for booking.
  • Embed on your own website: go to Settings → Booking Widget and open Add the widget to your website. It shows code ready to paste, with your public booking key already filled in. FullClass manages that key for you. It can only show classes and take bookings, and you can see or cancel it under API Keys. Paste the code into any page that allows custom HTML (WordPress, Wix, Squarespace and most site builders). The linked install guide has the steps for each platform.
  • WordPress plugin: in WordPress, go to Plugins → Add New Plugin and install FullClass Booking. Paste your Booking Widget code under Settings → FullClass Booking. Then add the FullClass Booking block, or the [fullclass_booking] shortcode, to a page. You can choose a category and a list or calendar view for each page.
  • Where generated links point: under Settings → Booking Widget, Where our links send customers decides where every link FullClass builds for you goes. That covers the Copy booking link buttons on your dashboard, gift card QR codes and emails, class pass links and links to unlisted events. Choose My FullClass booking page, or choose A page on my own website and enter its address. The card shows where links go now.
  • Category tabs: if you put classes in categories (Settings → Categories), customers get tabs above the schedule to filter by category. The schedule itself is grouped by day. Each card shows the class photo, the instructor's picture and the price per spot.
  • Moving between checkout steps: customers can click the Details, Your Info and Review bar across the top of the booking window. This lets them jump back to change how many spots they want, or fix a typo, without going back one screen at a time. Steps that need the customer's agreement are never skipped. If they click Review before accepting a waiver, terms or cancellation policy, they are taken to that document instead. If details are still missing, the fields that need filling in are marked. The bar shows on computers and tablets. It is hidden on phones, where customers use the Back and Continue buttons.
  • Pay on site: under Settings → Booking Widget, How customers pay can offer "Pay on site". Customers then reserve without paying online. Their booking is held as payment pending and does not expire. When they pay, use Record on-site payment on the booking. For a course, use it on the course purchase, where one payment covers every session. Reserved spots count toward your plan whether or not the person turns up. Rosters mark each person Paid or Unpaid.
  • Required customer details: the Required customer details checkboxes under Settings → Booking Widget set whether customers must give a phone number and answer "How did you hear about us?" to book. Both start on. Turn either off to make it optional. This applies to your booking page and to the widget on your website.
  • Instructor display: the Instructor display checkboxes under Settings → Booking Widget control what customers see about instructors. Show instructor name shows or hides the name and picture on each class card. Show instructor bio shows or hides the "About Your Instructor" section in the booking window, which only appears when the instructor has a bio. Both start on, and each works on its own. They apply to your booking page and to the widget on your website.
  • Page header: the Hosted page header checkboxes under Settings → Booking Widget control the header at the top of your booking page. Show website link and Show Contact (email) button start on. Show call button starts off. It adds a link customers can tap to phone your business. Set your website and phone number under Settings → General. The Contact button emails your reply-to address, which you set under Settings → Email. This is for your booking page only, not the widget on your website.
  • Add to home screen: customers can save your booking page to their phone's home screen. The icon is your thumbnail (or your main logo) on your widget surface color, labeled with your business name. If you have uploaded neither, it is a square in your brand color showing the first letter of your business name. Tapping it opens the page in the browser, so checkout works as usual. This is for your booking page only.
  • Appearance: Settings → Widget Appearance sets the booking widget colors. These are background, surface, borders, buttons, button text, accent, date block and text. It also sets the font and the corner style. A live preview shows your changes, and you can reset to the defaults. The look applies to your booking page, the widget on your website and the customer portal.

Widget for your website

The widget puts your booking page inside your own website. For developers, it loads from /sdk/v1/booking.min.js and starts with a public API key that is safe to use in a browser.

  • Use pk_ (public) keys, not sk_ (secret) keys.
  • Give the key the permissions (scopes) it needs, such as events:read and bookings:write.
  • List the exact website addresses (origins) allowed to use the key, including the protocol, subdomain and port where they apply.
  • You can change the language, wording, theme colors and CSS variables. You can also change what shows while loading, when there is nothing to list, or after an error, or use bare mode.
  • Your booking page can offer more than one language. Set your main language in your Booking Widget settings and tick any others under Also offer. Customers then get a language switcher in the page header. Add ?lang=en to your booking page address to link straight to a language. Your own class names, descriptions and policies are never translated. Confirmation emails always use your main language.
  • Display options are set in your Booking Widget settings and apply to every copy of the widget, not to each one separately. They cover remaining spots, the "Only N left" warning, instructor name and bio, class photos and gift card sales.

Developer API

For developers building a custom website, an agency site or their own server tools.

  • Sign in to the API with a bearer API key that has only the scopes it needs.
  • Use an idempotency key when you create a booking.
  • Never trust prices, totals, account IDs or tax amounts sent from the customer's browser.
  • Keep sk_ keys on your own trusted servers only.

Webhooks

Webhooks send booking and payment events to your own systems as they happen. A developer sets them up under Settings → Webhooks (owner only).

  • Add up to 10 https:// endpoints. Each one gets its own set of events.
  • Every message is signed. The signing secret is shown once, when you create the endpoint. You can rotate it, and the old secret stops working straight away.
  • The secret itself is never sent, so don't compare it like a password. Check the FullClass-Signature: t=<unix>,v1=<hex> header instead. v1 is HMAC-SHA256 over <t>.<raw body>, keyed with the whole whsec_... string as plain text. Compare in constant time, check the raw bytes before parsing the JSON, and reject a t more than 5 minutes from your clock. Retries are signed again, so skip duplicates using FullClass-Event-Id. Node and Python examples are in Integrations → Verifying the signature.
  • Include the gift card code starts off. A gift card sale always reports the sale, the buyer and the amount. Anyone holding the code can spend it, so the code itself is only sent to endpoints where you tick this box.
  • Failed deliveries are retried automatically. Each endpoint's page shows its delivery log, where you can see what was sent and choose "Send again".
  • An endpoint that keeps failing is paused automatically. Turn it back on once the receiving system is fixed.

Zapier

Zapier connects FullClass to thousands of other apps with no code. Paste a secret API key into the FullClass app in Zapier, then build Zaps (automations) there.

  • A Zap can start on a new booking, a cancelled booking, a new customer, a payment received or a waitlist spot offered. The one thing a Zap can do in FullClass is create a customer.
  • Zapier cannot create a booking. A booking takes a payment, and we do not let an automation charge someone's card.
  • The New Customer trigger has two consent fields. Filter on Marketing Subscribed, which says whether you may email the person now. Do not use Marketing Opt-In, which only shows what they chose the day they signed up. The two can differ even for a new customer, if their email address unsubscribed from you before.
  • Each live Zap shows under Settings → Webhooks with a Managed by Zapier badge. Turn a Zap off in Zapier rather than deleting its row here. Deleting the row stops the events, but Zapier still thinks it is connected.

Bookings, payments, refunds and cancellations

A booking holds spots on one event. It records who bought and who is coming. It also records the amount, whether it is paid or cancelled, add-ons, tax, discounts, gift cards used, waivers and policies accepted, and notes.

Task Details
Booking online The customer picks an event and how many spots they want. They enter their contact details, accept any required terms, choose add-ons and apply a promo code or gift card. Then they pay if payment is needed, and get a confirmation.
Booking from the admin You choose an event and pick an existing or new customer. You can fill in how they heard about you and referral details, add notes, check promo codes and gift cards, and confirm waivers and policies. Then choose add-ons and how they are paying. You can go over the spot limit on purpose when you need to.
Bookings list By event lists events in date order, with the people booked on each and a bar showing how full it is. It shows 10 events a page and the first 8 bookings for each, and the rest are on the event page. Upcoming shows the soonest first, and Past shows the most recent first. All bookings is a table you can sort, with one row per booking.
Square Make sure your Square settings use the same mode (test or live) as your Square account. Check that the card went through, and that the Square payment reference, amount, customer and payment notes are right.
Stripe Check the payment amount and status in Stripe. Before you launch, test a card that asks for the extra bank check some cards need. Real cards (including Apple Pay) are declined while your account is in test mode. Switch to live keys to accept real payments.
Apple Pay and Google Pay Available through Square or Stripe. Add each website address where customers pay under Settings → Payments → Wallet payment domains. Stripe also needs a check file on your website at /.well-known/apple-developer-merchantid-domain-association. Square does that check for you. See Bookings & payments for how it all works.
Hand-recorded or free Free events can skip online payment. When you record a payment by hand, add a clear note, for example cash, invoice, comp (free) or paid somewhere else.
Cancellations Follow the cancellation policy for timing and refunds. Record why it was cancelled, the refund amount and reference, any gift card balance put back, and any promo code change. A partial refund amount must be a plain number, with a dot or a comma for the decimal (10.50 or 10,50). It cannot be more than the booking (or, when you cancel a whole event, more than any booking on it). Anything else is refused with the reason, and nothing is cancelled. The amount is never rounded down to zero or raised to the full amount.
Resend confirmation If a customer never got their confirmation, open the booking and choose Resend confirmation email from the Manage menu. It sends the same message again, with the receipt PDF, calendar invite and check-in QR code, to the address on the booking. If the address is mistyped, edit the booking first. The action is hidden once a booking is cancelled, and each resend is recorded in the activity log. A course purchase has the same Resend confirmation email action, with one calendar invite per session. A private event has Resend link and Resend receipt. To send the quote from your own inbox instead, use Email link. It opens your email app with the message already written. The message has the review and pay link, the deposit and its due date, and the balance and its due date (or the full amount when the quote asks for no deposit). It is written in your booking page's language, not the language you use the admin in. A private event also has a Scheduled emails panel. It lists the automatic payment emails still to come, with switches to pause them for the customer, for your staff, or both.
Stripe receipts Stripe can email the customer an extra receipt of its own for the card payment. This starts off, so customers get only the FullClass confirmation and its itemized receipt. To turn it on, go to Settings → Payments and use Also send Stripe's own receipt. It only appears if you take payments with Stripe. Turning Successful payments off in your Stripe dashboard does not stop Stripe's receipt. Only the FullClass setting does. Square never sends a receipt for online bookings.
Payment safety. Take care with amounts that don't match, bookings submitted twice, and bookings that failed after the payment went through. To sort them out, look at your Stripe or Square dashboard, the booking details, your reports and the activity log together.

Customers, customer records and the portal

  • Customer records: each record holds the customer's name, email, phone, marketing choice, how they heard about you and referral details. It also shows their booking history, the waivers they accepted and any gift cards they bought.
  • Internal notes: a note about the customer that only staff can see. Edit it on the customer's Edit page. It shows on their bookings and on the printed roster, and customers never see it.
  • Imports: add customers on the Customers sheet of Settings → Import from a spreadsheet. They are matched by email. Search before you add a customer by hand, so you don't create duplicates.
  • Email linking: a booking is linked to an existing customer by email. So correct spelling matters for their history and for signing in to the portal.
  • Customer portal: customers sign in to your portal with a sign-in link sent to their email. They can see their booking history and booking details, and cancel bookings where your policy allows. They can also see and copy their referral link and change their name and phone. They can change their email too, and the change takes effect once they open the confirmation link sent to the new address.
  • Your own display settings: the Display card in My Profile sets the language you read the admin in (English, French, Spanish, Italian or German). It also sets your date and time format, for example Mar 14 or 14 Mar, and 3:04 PM or 15:04. Both are just for you, and neither changes what your staff or customers see. "English (UK)" is no longer a language option, because it never changed any words. British dates are now a format choice, and British English is still a booking page language.
  • Privacy: the portal sign-in must not reveal whether an email address has an account. Before you discuss someone's account details, check who they are from the admin.

More features

Feature Details
Waivers Waivers cover things like liability, safety, photo release, health or consent. Each can be active or inactive, and FullClass keeps every version. Attach waivers to classes, and see who accepted them in the waiver report.
Terms & conditions Terms you write once and attach to any class or course, just like waivers. They can be active or inactive, and FullClass keeps every version. Customers accept each set when they book. FullClass records which version they accepted, with a fingerprint of its exact text.
Cancellation policies Each policy has a name, a description and refund tiers. A tier is set by how many hours before the start someone cancels. It gives a full refund, a partial refund (with a percentage) or no refund. A policy also covers credit and no-shows. Attach policies to classes.
Gift cards Gift cards can hold a money balance or be class passes. Each card has the buyer's and recipient's details, a message, a code, the dates it is valid and an expiry date. A card can be limited to one class, and each class has an "Accept class passes" switch. Every card keeps a record of its activity. Customers can use a card at checkout. You can also apply one to a booking that is already paid, which refunds the covered amount to the original card. Cards can be refunded or have their balance put back. Class passes can carry tax rates. Separate switches decide whether your booking page sells money cards and which class passes it shows. You can print one card as an A4 PDF, or a whole batch sized for a plastic card printer. The How many field gives away up to 100 identical free cards at once. These have no charge, no custom code and no email addresses, because each of those belongs to a single card. You can export the codes of the cards you tick as a spreadsheet file to take to a print shop. Treat that file like cash, because anyone who has it can spend the cards, and every download is logged. Codes work with or without dashes and capitals, wherever they are typed. Resend email sends the recipient their code again. Two optional checkout limits are under Settings → Booking Widget → Payments & checkout. One allows only one gift card per booking. The other stops a promo code being used with a gift card. Both start off and only apply when customers book for themselves. Buyers are added to your Customers list, linked to the card. If your booking widget shows the marketing opt-in, a new buyer who ticks it is subscribed to your marketing emails. Giving away more than one card, or a large one, asks you to confirm the total first.
Promo codes Promo codes take a percentage or a fixed amount off. You can set the most uses in total and per customer (for example 1, so each customer can use it once). You can also limit a code to existing customers, to certain dates or to one event, and link it to a customer for referrals. FullClass records each use and adjusts it if the booking is cancelled. You can also apply a code to a booking afterwards from the booking's payment panel. This reprices the booking and gives back the discount plus the tax charged on it. It comes off anything still owing first, and the rest is refunded. Only one discount works per booking, and codes cannot be used on course bookings. If you save a code with no total limit, or one that takes half the price or more, FullClass asks you to confirm first. That is because codes get shared beyond the people you give them to.
Add-ons Extras you sell with a class. Each has a name, description, price, currency and an on or off state. Each also has a limit (one per guest, one per booking, or no limit).
Instructors One instructor per event, and you can show them on your booking page. They can connect their own Google Calendar to see the classes they teach. FullClass does not plan shifts, track hours or handle pay.

Users, staff and security

Roles

  • Owner: for people you trust with business settings, billing, payments, API keys, your subscription and big decisions.
  • Admin: runs classes, events, bookings, customers, reports, staff and the day to day.
  • Staff: limited access to schedules, rosters, their own profile, the events they are assigned and support tasks.
  • Guardrails. Only an owner can create an owner or make someone an owner. The last owner cannot be demoted or deleted, so the account always has at least one owner.
  • Area access. A new admin starts with only bookings and customers. They can't reach the rest of the app until an owner decides they should. Owners set the defaults for each role at Settings → Roles & permissions. Then they can fine-tune each person on that user's edit page, choosing Inherit, Allow or Deny for each area. A choice for one person overrides the role default. Owners can also turn off features the business doesn't use, under Settings → Features. A feature turned off there is hidden for the whole team, whatever the role and personal settings say.
  • Data visibility. A separate switch in the same place controls whether someone sees customer contact details (email, phone and address) on pages they can already open. It starts off for admins and staff. Turn it on for a role or a person as needed.

Keeping accounts safe

  • Give everyone their own account rather than sharing a login.
  • Resend setup emails when someone needs a new one.
  • The link in a new user's welcome email asks for a first name, a last name and a password before it finishes, so no account starts without a name. Once someone has signed in, a forgotten-password link asks for a password only.
  • Remove or reduce someone's access promptly when their role changes or they leave.
  • Turn on two-factor authentication (2FA) under My Profile → Security with an authenticator app, and save the one-time recovery codes. Require it for owners and admins. You can type a recovery code in upper or lower case, with or without the dash.
  • Add a passkey under My Profile → Passkeys to sign in with Face ID, Touch ID or your device PIN. A passkey counts as two-factor on its own and is the easiest option on phones. To use it, choose Sign in with a passkey on the sign-in page.
  • Change your own password under My Profile → Security → Password. If you can't sign in, use Forgot password on the sign-in page. A new password needs eight or more characters. It also can't be one of the few thousand passwords that turn up in every list of leaked passwords. A password you already use keeps working until you change it.
  • Any role can correct their own name and change the email they sign in with, under My Profile → Account. Changing your email asks for your current password, then sends a confirmation link to the new address. Nothing changes until you use that link, and the old address keeps working until you do. Your role is set by an owner under Settings → Users, not here.
  • The Security card shows where each item stands. It shows whether two-factor is on or off, how many passkeys you have, and when you last set your password.
  • FullClass sends you a security alert email whenever your sign-in details change. That means your password, two-factor, or a passkey added, renamed or removed. If you get one you didn't expect, reset your password straight away and contact the studio.

Keeping keys safe

  • Public keys start with pk_. Each one needs permissions (scopes) and a list of the websites allowed to use it.
  • Secret keys start with sk_. Never put them in website code, public code repositories, screenshots or support tickets.
  • Replace your keys when you change suppliers, agencies or staff.

Reports and activity

Reports help you run the business, keep your accounts and meet legal rules. Before you export or check figures, look at the date range, timezone and financial year. Also check which statuses are included, and how refunds and hand-recorded payments are counted.

  • Revenue: booking income, payment status, refunds, the payment details from Stripe or Square, and bookings that were free or paid by hand.
  • Tax: the tax you owe, by rate and location, with tax lines and tax exemptions. Class pass use is worked out separately. Tax you charged when a pass sold is paid over once. Tax on a pass that sold without tax (imported, or turned into a pass from a gift card) is paid over when the pass is used. Tax on a pass you gave away is not paid over at all.
  • Complimentary: everything you gave away in the period. This includes free bookings, with full comps at their list price before tax and partial waivers at the amount waived (labeled "Partial waiver"). It also includes gift cards issued without payment, 100%-off promo codes, and a snapshot of what your gift cards are still worth. It has its own CSV export and is not part of the full data export ZIP.
  • Bookings and schedule: booking activity, how many people are coming, schedules and planning.
  • Attendance: spots booked compared with spots checked in for each event, with the no-show rate. It is built from check-ins.
  • Booking insights: how your own customers book. Lead time, group sizes, repeat customers, when bookings are made, cancellations, how full your classes run, and the share of private events and gift cards, each with the bookings behind it.
  • Customers: your customer list, booking history, marketing details and contact details ready to export.
  • Referral sources: how customers heard about you, ranked by count for the period.
  • Gift cards and promo codes: value issued, value left, cards and codes used, and how each campaign did.
  • Abandoned checkouts: people who reached the payment step but did not end up with a booking. It shows their contact details, what they tried to book, how many times they tried and what happened. A declined card with several tries is a sale worth following up. Records are kept for 180 days after the last try. The … menu on each line lets you add a follow-up note saying what you did. It also archives a finished line off the list without deleting it, and Show archived brings them back. Notes and archived lines both appear in the CSV export.
  • Waivers: who accepted which waiver, by customer, event, class and waiver version.
  • Outstanding balances: money customers still owe on bookings, course purchases and private events as of today, with what they paid and what is left. Quotes still waiting for a deposit are listed separately from the total owed.
  • Activity log: a record of who did what and when. When you look into a problem, search by time, booking number, event name, customer email or staff member.
  • Full data export: Settings → Data export downloads every report above at once, except the complimentary report, with no date filter. You get one ZIP of CSV files plus a README. Only owners can use it, and each download is logged. It contains customers' personal details, so store it safely and delete it when you are done. Use it to move to another system, hand over to your accountant, or keep your own backup.

Integrations and technical setup

  • Widget install: this is for whoever builds your website. Add the script, add a container for the widget, and start it with a public API key. Then check the browser console and network tabs for errors.
  • API scopes: scopes limit what an API key can do. Common ones are events:read, bookings:write, bookings:read, bookings:cancel, customers:write, giftcards:read and giftcards:write.
  • Public API: the API lets a developer build their own booking pages. It can list events and show event details, and fetch waivers and add-ons. It can create, read and cancel bookings, and check promo codes. It can also sell, look up and redeem gift cards, register customers, and fetch your business settings when that is turned on.
  • Gift cards sold elsewhere: if you sold a gift card through your own checkout, a developer can create it in FullClass without charging the buyer again. Your server posts an external_purchase block to /v1/giftcards with a secret key. The payment reference you send stops the same card being issued twice. The amount you collected is recorded as the sale, so the card counts as sold rather than given away.
  • AI assistants (MCP): ask an AI assistant about your schedule, fill rates, bookings, revenue and attendance in plain language. Connect Claude (find FullClass in its connector directory), ChatGPT (in its developer mode) or another MCP client to /mcp. The connection can only read, never change anything. It never returns customer names, emails, phone numbers, payment records or online-class join links. Approve it from the Claude app, or connect a different tool with a secret API key. See and remove connections under Settings → Connected apps. See Integrations → AI assistants.
  • Marketing tracking: measure your ads and visits by entering tag IDs under Settings → Tracking, and FullClass builds the tags for you. You can use GA4 (G-XXXXXXXX), Google Tag Manager (GTM-XXXXXX), Google Ads (conversion ID AW-XXXXXXXXX plus its purchase label, both required) and a Meta pixel for Facebook and Instagram (plain digits, from Meta Events Manager). Each works on its own, so it is normal to fill in one and leave the rest blank. Your studio is the data controller for what a Meta pixel collects. See Integrations → Tracking.
  • Google Calendar: each user can connect or disconnect their own calendar from their profile. Connecting also adds the upcoming classes they are already assigned to.
  • Calendar subscription: owners and admins can turn on a private calendar feed (.ics) from their profile. It adds the whole schedule to Google, Apple or Outlook calendar, and it can only be read. To stop the old link working, make a new one. Staff use the Google Calendar connection for the classes assigned to them.
  • Email problems: when you ask support about an email, give the email type, the recipient, the event, the booking number and the time it was sent.

Subscription and billing

FullClass charges your business a flat fee for its plan. Every feature is on for every account, and no plan limits features, users or locations. Plans differ only in how many spots you can schedule each month. A spot is one place on an event you schedule, so a class with twelve seats is twelve spots, whether or not they sell. Spots are counted across all your locations. The fee is the same in a quiet month or a busy one, and going over your plan's spot limit never blocks a booking. If you pay yearly, you get two months free.

Plan Monthly price (USD) Spots you can schedule each month
Lite $5 Up to 100 spots.
Starter $20 Up to 600 spots.
Growth $59 Up to 2,000 spots.
Pro $129 Up to 5,000 spots.
Enterprise Custom More than 5,000 spots. Please contact sales.

Your spots are counted across all the events you schedule in a calendar month. If a month would go over your plan, you are asked to move up a plan when you create the event, never when a customer books. The billing page shows your current plan, its status and recent invoices. It also lets you fix a payment method that failed, cancel at the end of the period, and undo a cancellation.

New studios start on monthly billing. It costs $0 during the 30-day trial, so nothing is committed up front. A few days before the trial ends, a reminder email offers you the option to switch to annual billing and get two months free. You can switch between monthly and annual at any time under Settings → Billing → Billing interval. A switch to annual is charged that day, less the unused part of your current month. A switch to monthly starts that day, and the unused part of your year pays your next monthly invoices. Your plan and features stay the same.

If your card will have expired by your next payment, the billing contact gets an email about 30 days before that payment (once per card). Settings → Billing shows the same warning under the card. Add the new card with Manage payment method.

Before an annual charge. On annual billing, we email the billing contact before every full-year charge. That is a week before your free trial ends, and 30 days before each yearly renewal. The email names the plan, the amount, the date and the card we will charge. It links to Settings → Billing, where you can change plan, update the card or cancel. Cancel before that date and you are not charged.

To cancel, go to Settings → Billing (owner only). Cancelling takes effect at the end of the period you have already paid for, not straight away. If you cancel during the 30-day free trial, you pay nothing, and the subscription ends when the trial does. The owner and the billing contact are emailed the end date, with a link to undo it. On that date your booking page goes offline and the admin locks. Your records are kept for 30 days after the subscription ends, and subscribing again within that time brings everything back. After that they are deleted from our systems, and backup copies are erased within a further 60 days. The owner and billing contact are emailed the deletion date before it happens.

VAT in the EU and the UK. Our prices do not include tax, as the Terms of Service explain. Studios in the EU and the UK are billed under the reverse charge, so you account for the VAT yourself. An EU studio must give a valid VAT number, and sign-up asks for it. A UK studio's number is optional. Your invoices show your VAT number and the words "reverse charge". To add or change it, go to Settings → Billing (owner only). We check an EU number with the EU's VIES register and a UK one with HMRC, and show the result next to it. If the register does not recognize the number, check it and save it again. Your account keeps working, and a banner reminds you until the number is fixed.

Closing the account

Go to Settings → Delete account (owner only). This is not the same as cancelling. Cancelling stops billing and keeps your records for 30 days after the subscription ends. Deleting closes the business now and removes your records 30 days later. To confirm, you type the business name exactly. This cancels the subscription, takes the booking page offline and locks the admin straight away, but nothing is deleted for 30 days. During those 30 days the owner can undo it from the same page and can still download a data export. The owner and billing contact are emailed the deletion date, with a link to undo it. After the 30 days, every booking, customer, class, gift card, waiver and report is deleted from our systems, and backup copies are erased within a further 60 days. It cannot be undone or recovered, by you or by support. We keep our own record of what we billed you, as the law requires. See Closing your account for what to do about customers with upcoming bookings.

Checklists for launch and changes

Before you go live

  • Your business name, details and branding are correct.
  • Locations, tax rates, users, classes, events, policies, waivers, add-ons and your Stripe or Square account are all set up.
  • Each event's public, private and hidden settings match your launch plan.

Test a booking

  • Book a public event from your booking page or the widget.
  • Test a paid booking, a free or hand-recorded one, a promo code, a gift card, an add-on, a waiver, tax and a cancellation.
  • Check the booking details, the customer record, the spots left, the emails, the reports and the activity log.

What to send support

  • Send your booking page address, the exact page address, the class, the event date and time, the booking number, the customer's email and the payment reference. Add the time it happened with its timezone, screenshots, and what you expected compared with what happened.
  • Mention any recent changes to settings, website embed code, API keys, Stripe or Square keys, or which events are shown.