+ Create a one-off booking slot +
++ Manual slots are independent of slot definitions and won't be affected + by the materializer's automatic slot generation or cleanup. +
+{error.title}
+{error.detail}
+{slot.court_name}
++ This slot has {slot.booked_count} active booking(s) +
++ Time changes are disabled to protect existing bookings. +
+{error.title}
+{error.detail}
++ {error.detail} +
++ Error code: {error.code} +
+ ++ View and manage individual booking slots +
+Timezone: {timezone}
+Loading slots...
++ There are no slot instances for {displayDate}. + {!showCancelled && ' Try showing cancelled slots or selecting a different date.'} +
+ +{courtSlots.length} slot{courtSlots.length !== 1 ? 's' : ''}
+| Time | +Duration | +Status | +Bookings | +Origin | +Reason | +Actions | +
|---|---|---|---|---|---|---|
| + + {formatSlotTime(slot.starts_at)} - {formatSlotTime(slot.ends_at)} + + | ++ + {formatSlotDuration(slot.starts_at, slot.ends_at)} + + | ++ + {slot.display_status} + + | ++ 0 ? 'text-blue-600' : 'text-slate-500'}`}> + {slot.booked_count} / {slot.capacity} + + | ++ + {getOriginLabel(slot.origin_kind)} + + | ++ {slot.reason ? ( + + {slot.reason} + + ) : ( + - + )} + | +
+
+
+ {canCancelSlot(slot) && slot.status !== 'cancelled' && (
+
+ )}
+ {canDeleteSlot(slot) && (
+
+ )}
+
+ |
+