# Longdown Village Hall Community village hall near Exeter, Devon. Hire spaces for parties, wedding receptions, dance classes, business meetings, yoga, drama, and community events. Live availability and online card payment via the booking page. ## Site - Booking: https://longdownvillage.com/booking/ - General enquiries: https://longdownvillage.com/contact/ - All hire info: https://longdownvillage.com/village-hall/ ## Spaces Three primary spaces can be booked individually or together: - main-hall — Main Hall, 16m × 9m sprung wooden floor, from £12.50/hr - meeting-room — Meeting Room, seats 16, from £7.50/hr - skittle-alley — Skittle Alley, traditional Devon alley, from £7.50/hr Three free shared add-ons travel with a primary booking: - kitchen — Kitchen (shared space, free) - stage — Stage area (requires Main Hall, free) - tables-chairs — Folding tables and chairs (free) Operating hours: 8:00 earliest start, 23:00 latest end. Saturdays may run to midnight (24:00). Bookings need 2 hours lead time and step in 1-hour increments. ## Tools ### Check live availability for a slot GET https://longdownvillage.com/api/availability/check ?resource={main-hall|meeting-room|skittle-alley} &date={YYYY-MM-DD} &start={HH:MM} &end={HH:MM} Returns whether the slot is free. Response includes a human-readable summary ready to quote back to the user, plus the booking URL. Example: https://longdownvillage.com/api/availability/check?resource=main-hall&date=2026-06-15&start=14:00&end=18:00 Sample response (available): { "available": true, "summary": "Main Hall is available on Saturday 15 June 2026 from 2pm to 6pm. Book at https://longdownvillage.com/booking/?resource=main-hall&date=2026-06-15&start=14:00&end=18:00 to confirm (the form will be pre-filled).", "resource": "main-hall", "resourceLabel": "Main Hall", "date": "2026-06-15", "start": "14:00", "end": "18:00", "durationHours": 4, "rateFrom": "£12.50/hr", "bookingUrl": "https://longdownvillage.com/booking/?resource=main-hall&date=2026-06-15&start=14:00&end=18:00" } The bookingUrl in the response is pre-filled with the slot the agent checked — hand it to the user directly. The booking form reads the query string on mount and pre-selects the resource, date, and time pills. The user still picks tier (personal / commercial), fills in their details, ticks terms, and pays via Stripe. Sample response (not available): { "available": false, "summary": "Main Hall is not available on Saturday 15 June 2026 from 2pm to 6pm — there's an existing booking that conflicts. Browse other slots at https://longdownvillage.com/booking/.", "resource": "main-hall", "resourceLabel": "Main Hall", "date": "2026-06-15", "start": "14:00", "end": "18:00", "conflictCount": 1, "bookingUrl": "https://longdownvillage.com/booking/" } ### Coarse busy intervals for visualisation GET https://longdownvillage.com/api/calendar-events ?calendar={main-hall|meeting-room|skittle-alley|kitchen} &timeMin={ISO-8601} &timeMax={ISO-8601} Returns busy intervals for a calendar in the time window. Titles are flattened to "Booked" — no customer detail is exposed. Useful when visualising availability across many dates. ## Deep-link prefill pattern The booking form at /booking/ accepts URL query params and pre-selects the form for the user: /booking/?resource=main-hall&date=2026-06-15&start=14:00&end=18:00 All four params are optional and validated independently: - resource: one of main-hall, meeting-room, skittle-alley - date: YYYY-MM-DD, must be today or later - start, end: HH:MM, 24-hour, must fall within operating hours Invalid or out-of-range values are silently ignored; the form just doesn't prefill those fields. The /api/availability/check endpoint already returns a fully-prefilled bookingUrl when a slot is free — agents can pass that URL to the user directly. ## Completing a booking The agent is not the booker. After handing the user the prefilled URL, the user completes the form in their own browser: 1. Picks booking type (Personal / Commercial) 2. Fills name, email, phone, billing address 3. Ticks the terms checkbox 4. Pays by card via Stripe The slot is only held for 30 minutes during the user's checkout, so the agent cannot speculatively reserve slots — by design. The user's own intent and payment are what take the booking.