Bookings
Calendar view of all bookings for your club.
Loading...
Loading club data...
Payments
Payment history for your club.
Loading...
No past due payments.
| Date | Court | Player | Type | Action |
|---|---|---|---|---|
| {{ formatDate(p.bookingDate) }} | {{ p.courtName }} | {{ p.playerFirstName ? p.playerFirstName + ' ' + p.playerLastName : (p.bookingComments ? p.bookingComments.replace(' - playtomic', '') : 'Blocking') }} | Playtomic Match Blocking Event Training Other | Saving... — |
Loading...
No upcoming payments.
| Date | Court | Player | Type | Action |
|---|---|---|---|---|
| {{ formatDate(p.bookingDate) }} | {{ p.courtName }} | {{ p.playerFirstName ? p.playerFirstName + ' ' + p.playerLastName : (p.bookingComments ? p.bookingComments.replace(' - playtomic', '') : 'Blocking') }} | Playtomic Match Blocking Event Training Other | Saving... — |
Loading...
No payments found.
| Booking date | Court | Player | Amount | Type | Marked by | Paid at | Action |
|---|---|---|---|---|---|---|---|
| {{ formatDate(p.bookingDate) }} | {{ p.courtName }} | {{ p.playerFirstName ? p.playerFirstName + ' ' + p.playerLastName : (p.bookingComments ? p.bookingComments.replace(' - playtomic', '') : '—') }} | {{ p.paymentMethod === 'vip' ? '0.00 ' + (p.currency || 'RON').toUpperCase() : (p.amount ? (p.amount / 100).toFixed(2) + ' ' + (p.currency || '').toUpperCase() : '—') }} | Playtomic Refund Paid Manual 💵 Manual 💳 VIP 👑 Manual | {{ p.markerFirstName ? p.markerFirstName + ' ' + p.markerLastName : '—' }} | {{ formatDate(p.paidAt) }} |
Balance
Stripe balance and payout status for your club.
Loading...
No Stripe account connected.
Pending Payouts
| Amount | Expected Arrival | Status |
|---|---|---|
| {{ (p.amount / 100).toFixed(2) }} {{ p.currency.toUpperCase() }} | {{ new Date(p.arrival_date * 1000).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }) }} | {{ p.status }} |
In Transit
| Amount | Expected Arrival | Status |
|---|---|---|
| {{ (p.amount / 100).toFixed(2) }} {{ p.currency.toUpperCase() }} | {{ new Date(p.arrival_date * 1000).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }) }} | {{ p.status }} |
Payout History
| Amount | Arrival Date | Created |
|---|---|---|
| {{ (p.amount / 100).toFixed(2) }} {{ p.currency.toUpperCase() }} | {{ new Date(p.arrival_date * 1000).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }) }} | {{ new Date(p.created * 1000).toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }) }} |
Players
Players who have bookings at your club.
Edit Player
Loading...
{{ playersSearch ? 'No players match your search.' : 'No players found.' }}
| Player {{ sortArrow('name') }} | Phone | Level | Points {{ sortArrow('points') }} | Type | Matches {{ sortArrow('matchCount') }} | Last Active {{ sortArrow('lastPlayed') }} |
|---|---|---|---|---|---|---|
|
{{ (p.firstName?.[0] || '') + (p.lastName?.[0] || '') }}
{{ p.firstName }} {{ p.lastName }}
{{ p.gender === 0 ? 'Male' : 'Female' }}
|
{{ p.phone || '—' }} | {{ Math.floor(p.points / 100) + 1 }} | {{ p.points }} | {{ playerTypeName(p.type) }} | {{ p.matchCount }} | {{ formatDateShort(p.lastPlayed) }} |
Club Details
Edit your club information and manage courts.
Loading...
Club Images
Courts
Club Prices
Manage court pricing rules.
{{ editingTierKey ? 'Edit Price Tier' : 'Add Price Tier' }}
Loading...
No prices configured yet.
| Courts | Days | Hours | Price / 30 min | Price / hour |
|---|---|---|---|---|
| {{ g.courtIds.map(id => courtName(id)).join(', ') }} | {{ g.days.map(d => dayName(d)).join(', ') }} | {{ formatHour(g.startHour) }} - {{ formatHour(g.endHour) }} | {{ (g.price / 100).toFixed(2) }} {{ clubCurrency }} | {{ (g.price * 2 / 100).toFixed(2) }} {{ clubCurrency }} |
Calendar Colors
Define keyword-based colors for bookings in the calendar. When a booking's comments contain a keyword, it will be displayed in the matching color.
Loading...
{{ colorForm.id ? 'Edit Color' : 'Add Color' }}
| Color | Keyword | Booking Type | Actions |
|---|---|---|---|
|
{{ color.hex }}
|
{{ color.keyword }} | {{ matchTypeName(color.matchType) }} |
Stripe Connect
Connect your club to Stripe to accept online payments.
Loading...
No Stripe account connected
Connect a Stripe account to start accepting online payments for bookings.
Account Status
Send Push Notification
Send a push notification to players at this club.
Filter Recipients
Notification Content
Backoffice Users
Manage who has access to this club's backoffice.
Invite User
Loading...
No users found.
| Name | Role | ||
|---|---|---|---|
| {{ u.name }} | {{ u.email }} | {{ u.role }} (you) |
Mobile App Admins
Manage which mobile app users have admin privileges for this club.
Add App Admin
Loading...
No app admins for this club.
| Name | Phone | |
|---|---|---|
| {{ (a.firstName || '') + ' ' + (a.lastName || '') }} | {{ a.phone }} |
Playtomic Sync
Configure two-way sync with Playtomic for this club.
Loading...