Classes and schedules
A weekly schedule with filters, class cards with places left, trainers, memberships, a free trial and today’s timeline.
Switch category
Marketing
- Hero17
- Features15
- Logo clouds8
- Stats8
- Pricing11
- Testimonials11
- Call to action11
- FAQ7
- Newsletter12
- Banners9
- Popups and consent7
- Services7
- Use cases6
- Security and trust7
- Changelog and roadmap6
- Launch and waitlist6
- Product tour6
- Press and awards10
- AI features6
- App download5
- Donations and support4
- Problem and solution5
- Objections5
- Calculators10
- Quiz and product finder5
- Free trial5
- Referral and partners10
- Community5
- Open source5
- Manifesto5
- Offer5
- Lead magnet4
- Scroll stories20
- Scroll journeys13
- Scroll effects13
- Scroll reveals and transitions15
Content
- Blog16
- Gallery7
- Team8
- About11
- Content8
- Process7
- Contact8
- Comparison5
- Integrations5
- Error pages5
- Careers7
- Case studies6
- Portfolio6
- Events and webinars6
- Help center6
- Legal pages5
- Documentation4
- Search results5
- Resources and downloads4
- Podcast4
- Editorial15
- Authors and interviews10
- Glossary5
- Recipes5
- Data stories10
- Long reads5
- Surveys and feedback14
- Form states12
- Request forms16
- Applications and sign-ups13
- Address, payment and consent12
App
- Authentication9
- Dashboards6
- Tables6
- Settings5
- AI and chat16
- Calendar5
- Inbox and messages5
- Notifications6
- Files6
- Projects6
- Profiles6
- Onboarding6
- Billing and usage10
- Developer settings15
- Security and access10
- Import, export and history15
- Automation and builders14
- AI answers18
- AI writing and creation13
- AI setup14
- AI assistants9
E-Commerce
Industries
- Menus7
- Appointments6
- Listings6
- Courses6
- Rooms and stays5
- Classes and schedules6
- Medical practice5
- Law firm5
- Salon and spa5
- Automotive5
- Travel5
- Sports club5
- Coworking5
- Museum5
- Cinema5
- School5
- Trades5
- Insurance5
- Banking5
- Personal brand15
- Speakers and media kits10
- Creators15
- Coaching and consulting10
- Artists and musicians15
- Dental practice5
- Veterinary practice5
- Therapy practice5
- Weddings and events5
- Architecture studio5
- Tax advisor5
- Estate agent5
- Florist5
- Winery5
- Daycare5
- Driving school5
- Care services5
- Festival5
Elements
- Buttons20
- Forms and inputs22
- Pickers and selections21
- Special input fields20
- Cards10
- Overlays21
- Navigation elements15
- Menu bars and switchers14
- Data display15
- Progress and states13
- Lists, trees and timelines17
- Charts22
- Comparison charts22
- Statistical charts20
- KPI, live and map charts22
- Text effects15
- Text accents16
- Backgrounds19
- Beams, particles and motion18
- Media19
- Code and JSON8
- Panels and splitters4
Classes and schedules
Details
What Classes and schedules brings along, read from the registry and the source.
- Area
- Industries
- Variants
- 6
- Version
- 1.0.1 · since 1.0.0
- File
- components/ui/fitness.tsx
- npm packages
- None
- Languages
- English and German, 46 texts of its own
- Studio
- Adjust in code
- Build with AI
- Over MCP in Claude, Cursor, Copilot and Codex
Props
The FitnessProps interface from components/ui/fitness.tsx, with the comments from the code.
variantoptionalFitnessVariantscheduleclass-cardstrainersmembershipstrialtoday
eyebrowoptionalReact.ReactNodetitleoptionalReact.ReactNodedescriptionoptionalReact.ReactNodeclassesoptionalFitnessClass[]trainersoptionalFitnessTrainer[]plansoptionalFitnessPlan[]includedoptional{ icon: IconName; label: string }[]memberships: one line per thing that every plan includes
joiningFeeoptionalnumbermemberships: joining fee for monthly notice
goalsoptional{ id: string; label: string; icon: IconName }[]trial: goals to pick from
benefitsoptionalstring[]trial: what a trial includes
mediaoptionalReact.ReactNodetrial: the picture
dayoptionalnumberclass-cards, today: the day to show, 0 is Monday. Defaults to today in the browser.
nowoptionalstringtoday: the time to measure against, HH:MM. Defaults to the browser clock.
currencyoptionalstringonBookoptional(data: Record<string, string>) => void
Built-in texts
Classes and schedules writes these texts itself. The language follows the KitProvider, the labels prop replaces single ones.
Show all 46 texts
| Key | English | German |
|---|---|---|
| days | English Mon,Tue,Wed,Thu,Fri,Sat,Sun | German Mo,Di,Mi,Do,Fr,Sa,So |
| daysLong | English Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday | German Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag |
| week | English Week | German Woche |
| categories | English Categories | German Kategorien |
| all | English All | German Alle |
| min | English {n} min | German {n} Min. |
| freeN | English {n} of {total} free | German {n} von {total} frei |
| full | English Full | German Ausgebucht |
| few | English Few places | German Wenige Plätze |
| book | English Book a place | German Platz buchen |
| booked | English Booked | German Gebucht |
| waitlist | English Join the waitlist | German Auf die Warteliste |
| onWaitlist | English On the waitlist | German Auf der Warteliste |
| noClasses | English No classes this day. | German An diesem Tag gibt es keine Kurse. |
| intensity | English Intensity {n} of 3 | German Intensität {n} von 3 |
| with | English with {name} | German mit {name} |
| monthly | English Monthly notice | German Monatlich kündbar |
| yearly | English 12 months | German 12 Monate |
| save | English save {n} | German {n} sparen |
| perMonth | English / month | German / Monat |
| joining | English One-time joining fee {price}, waived for a 12 month term. | German Einmalige Aufnahmegebühr {price}, entfällt bei 12 Monaten Laufzeit. |
| allPlans | English In every membership | German In jeder Mitgliedschaft |
| popular | English Most chosen | German Am häufigsten gewählt |
| goal | English What would you like to reach? | German Was möchtest du erreichen? |
| when | English When suits you best? | German Wann passt es dir am besten? |
| morning | English Mornings | German Morgens |
| noon | English Lunchtime | German Mittags |
| evening | English Evenings | German Abends |
| weekend | English Weekends | German Am Wochenende |
| name | English Name | German Name |
| English Email | German E-Mail | |
| phone | English Phone | German Telefon |
| required | English Please fill in this field. | German Bitte fülle dieses Feld aus. |
| invalidEmail | English Please enter a valid email address. | German Bitte gib eine gültige E-Mail-Adresse ein. |
| goalRequired | English Please pick a goal. | German Bitte wähle ein Ziel. |
| send | English Book a free trial | German Kostenloses Probetraining buchen |
| sent | English See you on the mat | German Bis bald auf der Matte |
| sentText | English We will call you within a day to find a time. Bring sports clothes and a towel, we have the rest. | German Wir rufen dich innerhalb eines Tages an und finden einen Termin. Bring Sportsachen und ein Handtuch mit, den Rest haben wir. |
| again | English Book for someone else | German Für jemand anderen buchen |
| live | English Live now | German Läuft gerade |
| next | English Next | German Als Nächstes |
| later | English Later today | German Später heute |
| done | English Over | German Vorbei |
| today | English Today in the studio | German Heute im Studio |
| optional | English optional | German optional |
| level | English Level | German Niveau |
Accessibility
Read from the source of the component.
- Sets aria-describedby, aria-label, aria-live, aria-pressed, aria-selected, aria-valuemax, aria-valuemin and aria-valuenow, so screen readers announce purpose and state.
- Uses the roles group, progressbar, radiogroup, status, tab, tablist and tabpanel.
- Announces changes through a live region without moving focus.
- Every field has a label, visible or for screen readers.
- Adds text for screen readers where icons and graphics stand alone.
- Shows a visible focus ring when used with the keyboard.
- The server renders the starting state in full, JavaScript only adds the interaction.
Motion
- Rises in briefly the first time it comes into view (kit-rise, useInView).
- Moves with the scroll, its progress follows the position on the page.
- Brings animations of its own, calmly timed and without wobble.
- With reduced motion (prefers-reduced-motion) it stays still. 16 places in the code switch motion off then.
Frequent questions
How do I install Classes and schedules?
With aiw add @ai-website/fitness. The command puts components/ui/fitness.tsx into your project, the code is yours from then on. It brings along button, icon, section, reveal and input. It needs no further npm packages.
Which variants does Classes and schedules have?
6 variants, Weekly schedule, Class cards, Trainers, Memberships, Free trial and Today. You pick one with the variant prop, for example variant="class-cards".
Can I translate the texts of Classes and schedules?
Yes. Classes and schedules carries 46 texts of its own in English and German, such as “Mon,Tue,Wed,Thu,Fri,Sat,Sun”, “Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday” and “Week”. The language follows the KitProvider, single texts change through the labels prop.
Can an AI assistant build with Classes and schedules?
Yes. Through the MCP server of the aiw CLI, Claude, Cursor, GitHub Copilot, Windsurf, Codex and Gemini find Classes and schedules with aiw_components and install it with aiw_add @ai-website/fitness. Name the variant in your prompt, for example variant="schedule", and the assistant writes your content straight into the props.
Similar components, Often combined with
Similar components
More from Industries, the same area of the kit.
- Rooms and staysHotels, rentals and availability.
- Medical practiceServices, doctors, consultation hours, insurance and online booking for practices.
- CoursesCurricula, lessons and learning progress.
- Law firmAreas of law, lawyers, first consultation, results and fees.
- All of IndustriesReady sections for practices, restaurants, trades, hotels, schools, clubs and creators.
Often combined with
Sections that usually sit next to Classes and schedules on a page.
Loading the source