splitforms.com
HOSPITALITY · CONTACT FORM TEMPLATE

Event Venue Booking Inquiry Form

Venue inquiries are date-driven — Saturdays in June, Friday corporate Q4, December holiday parties all peak together. The form captures date and headcount to check availability instantly.

1,000/mo free·no card·works on any host
form.htmlhtml54 lines
01<form action="https://splitforms.com/api/submit" method="POST">
02 <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
03 <input type="hidden" name="subject" value="New venue inquiry">
04
05 <label for="name">Full name *</label>
06 <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
07 <label for="email">Email *</label>
08 <input id="email" type="email" name="email" placeholder="marie@example.com" required>
09 <label for="phone">Phone *</label>
10 <input id="phone" type="tel" name="phone" placeholder="+1 555 0142" required>
11 <label for="event_type">Event type *</label>
12 <select id="event_type" name="event_type" required>
13 <option value="">Choose…</option>
14 <option>Wedding</option>
15 <option>Engagement / rehearsal dinner</option>
16 <option>Birthday</option>
17 <option>Corporate</option>
18 <option>Bar/bat mitzvah</option>
19 <option>Anniversary</option>
20 <option>Funeral / memorial</option>
21 <option>Other</option>
22 </select>
23 <label for="event_date">Preferred date *</label>
24 <input id="event_date" type="date" name="event_date" required>
25 <label for="guests">Expected guests *</label>
26 <select id="guests" name="guests" required>
27 <option value="">Choose…</option>
28 <option>Under 50</option>
29 <option>50–100</option>
30 <option>100–150</option>
31 <option>150–250</option>
32 <option>250+</option>
33 </select>
34 <label for="budget">Budget</label>
35 <select id="budget" name="budget">
36 <option value="">Choose…</option>
37 <option>Under $5k</option>
38 <option>$5k–$10k</option>
39 <option>$10k–$25k</option>
40 <option>$25k–$50k</option>
41 <option>$50k+</option>
42 </select>
43 <label for="details">Vision for the event</label>
44 <textarea id="details" name="details" placeholder="Indoor/outdoor, sit-down/cocktail, AV needs, catering preferences…"></textarea>
45
46 <!-- honeypot — bots fill every field -->
47 <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
48
49 <button type="submit">Send</button>
50</form>
51
52<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
53 Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
54</p>
1,000
submissions / mo, free
8
fields, ready to ship
5
code outputs
60s
from copy to inbox
Event Venue Booking Inquiry Form — example splitforms template with submissions inbox
§ 01Why it mattersthe qualifying-fields argument

Venues sell calendar dates, not products. The single most important field on the form is the requested date — a Saturday in October at a popular wedding venue is sold 12-18 months out. The form needs date, headcount, event type, and budget. The venue manager checks the calendar in 30 seconds and either offers the date, suggests an alternative, or routes the lead to the wait-list. Skip date and the back-and-forth burns three days. Add catering / bar / coordinator preferences and the proposal writes itself.

✦ at a glance
  • Event venue booking inquiry · 8 fields
  • HTML, JS, React, PHP, cURL outputs
  • One POST endpoint, no SDK
  • Honeypot + classifier, no CAPTCHA
§ 02Live previewinteractive · sandboxed · no key required

See exactly what your visitors see — and you’ll receive.

Left: the rendered form, fully interactive in a sandboxed iframe. Right: the email and dashboard view that lands the moment a visitor submits.

preview · event-venue-contact-formlocalhost:3000
✦ what you’ll see in your inbox

Every submission becomes an email plus a dashboard row. The fields below are the exact payload your form will send. Reply-to is wired to the visitor’s email so hitting reply goes back to them.

dashboard · new submission14ms · 200 OK
SUBJECT · New venue inquiry
Full name
Maya Iyer
Email
maya@studio71.co
Phone
+1 415 555 0142
Event type
Wedding
Preferred date
2026-05-15
Expected guests
Under 50
Budget
$650k — $850k
Vision for the event
Loved your last open house in Hayes — looking for similar with parking. Pre-approved through Wells Fargo.

Iframe is sandboxed — submit doesn’t actually fire. Get your access key to wire it up live.

§ 03Three steps3 steps · ~60 seconds

Generate, embed, receive.

Three actions stand between you and your first lead. None of them require a backend, a database, or a CAPTCHA library.

STEP 01GENERATE

Capture date and headcount

Required: event date (or window if flexible), headcount estimate, event type (wedding / corporate / party / conference / fundraiser). Optional alternate dates.

Create your form
key=sk_live_••••••••
STEP 02EMBED

Check calendar instantly

Webhook the date to your venue calendar (Google Calendar / Allseated / Tripleseat). Auto-respond if available; route to manager if alternative dates needed.

snippethtml
<form action="https://splitforms.com/api/submit" method="POST">
  …
</form>
STEP 03RECEIVE

Send the proposal

For available dates, follow up with the package menu, site visit booking link, and a 14-day soft hold. Most venues use Honeybook or Tripleseat to manage from this point.

inbox · 1 newjust now
FROM contact@yoursite.com
New venue inquiry
Maya Iyer maya@studio71.co
Loved your last open house in Hayes — looking for similar with parking. Pre-approved through Wells Fargo.
§ 04Copy & ship5 languages · same endpoint

Five outputs. One backend.

HTML by default. Click open the language you ship in — every variant POSTs to the same /api/submit endpoint.

01HTMLform.html54 lines
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
  <input type="hidden" name="subject" value="New venue inquiry">

  <label for="name">Full name *</label>
  <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
  <label for="email">Email *</label>
  <input id="email" type="email" name="email" placeholder="marie@example.com" required>
  <label for="phone">Phone *</label>
  <input id="phone" type="tel" name="phone" placeholder="+1 555 0142" required>
  <label for="event_type">Event type *</label>
  <select id="event_type" name="event_type" required>
    <option value="">Choose…</option>
    <option>Wedding</option>
    <option>Engagement / rehearsal dinner</option>
    <option>Birthday</option>
    <option>Corporate</option>
    <option>Bar/bat mitzvah</option>
    <option>Anniversary</option>
    <option>Funeral / memorial</option>
    <option>Other</option>
  </select>
  <label for="event_date">Preferred date *</label>
  <input id="event_date" type="date" name="event_date" required>
  <label for="guests">Expected guests *</label>
  <select id="guests" name="guests" required>
    <option value="">Choose…</option>
    <option>Under 50</option>
    <option>50–100</option>
    <option>100–150</option>
    <option>150–250</option>
    <option>250+</option>
  </select>
  <label for="budget">Budget</label>
  <select id="budget" name="budget">
    <option value="">Choose…</option>
    <option>Under $5k</option>
    <option>$5k–$10k</option>
    <option>$10k–$25k</option>
    <option>$25k–$50k</option>
    <option>$50k+</option>
  </select>
  <label for="details">Vision for the event</label>
  <textarea id="details" name="details" placeholder="Indoor/outdoor, sit-down/cocktail, AV needs, catering preferences…"></textarea>

  <!-- honeypot — bots fill every field -->
  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">

  <button type="submit">Send</button>
</form>

<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
  Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
</p>
02JavaScriptform.js70 lines
<form id="lf-form">
  <label for="name">Full name *</label>
  <input id="name" type="text" name="name" placeholder="Marie Dubois" required>
  <label for="email">Email *</label>
  <input id="email" type="email" name="email" placeholder="marie@example.com" required>
  <label for="phone">Phone *</label>
  <input id="phone" type="tel" name="phone" placeholder="+1 555 0142" required>
  <label for="event_type">Event type *</label>
  <select id="event_type" name="event_type" required>
    <option value="">Choose…</option>
    <option>Wedding</option>
    <option>Engagement / rehearsal dinner</option>
    <option>Birthday</option>
    <option>Corporate</option>
    <option>Bar/bat mitzvah</option>
    <option>Anniversary</option>
    <option>Funeral / memorial</option>
    <option>Other</option>
  </select>
  <label for="event_date">Preferred date *</label>
  <input id="event_date" type="date" name="event_date" required>
  <label for="guests">Expected guests *</label>
  <select id="guests" name="guests" required>
    <option value="">Choose…</option>
    <option>Under 50</option>
    <option>50–100</option>
    <option>100–150</option>
    <option>150–250</option>
    <option>250+</option>
  </select>
  <label for="budget">Budget</label>
  <select id="budget" name="budget">
    <option value="">Choose…</option>
    <option>Under $5k</option>
    <option>$5k–$10k</option>
    <option>$10k–$25k</option>
    <option>$25k–$50k</option>
    <option>$50k+</option>
  </select>
  <label for="details">Vision for the event</label>
  <textarea id="details" name="details" placeholder="Indoor/outdoor, sit-down/cocktail, AV needs, catering preferences…"></textarea>
  <button type="submit">Send</button>
</form>

<p style="margin-top:12px;font-size:11px;color:#888;text-align:right">
  Powered by <a href="https://splitforms.com" style="color:#888;text-decoration:none" target="_blank" rel="noopener">splitforms</a>
</p>

<script>
  document.getElementById('lf-form').addEventListener('submit', async (e) => {
    e.preventDefault();
    const data = new FormData(e.target);
    data.set('access_key', 'YOUR_ACCESS_KEY');
    data.set('subject', 'New venue inquiry');

    const res = await fetch('https://splitforms.com/api/submit', {
      method: 'POST',
      body: data,
      headers: { Accept: 'application/json' },
    });

    const json = await res.json();
    if (json.success) {
      e.target.reset();
      alert('Sent!');
    } else {
      alert('Error: ' + (json.message || 'Try again'));
    }
  });
</script>
03React / Next.jsForm.tsx85 lines
'use client';

import { useState, type FormEvent } from 'react';

export default function EventVenueBookingForm() {
  const [status, setStatus] = useState<'idle' | 'sending' | 'sent' | 'error'>('idle');

  async function onSubmit(e: FormEvent<HTMLFormElement>) {
    e.preventDefault();
    setStatus('sending');

    const data = new FormData(e.currentTarget);
    data.set('access_key', 'YOUR_ACCESS_KEY');
    data.set('subject', 'New venue inquiry');

    const res = await fetch('https://splitforms.com/api/submit', {
      method: 'POST',
      body: data,
      headers: { Accept: 'application/json' },
    });

    const json = await res.json();
    setStatus(json.success ? 'sent' : 'error');
    if (json.success) e.currentTarget.reset();
  }

  if (status === 'sent') return <p>Thanks — we&rsquo;ll be in touch.</p>;

  return (
    <>
    <form onSubmit={onSubmit}>
      <label htmlFor="name">Full name *</label>
      <input id="name" type="text" name="name" placeholder="Marie Dubois" required />
      <label htmlFor="email">Email *</label>
      <input id="email" type="email" name="email" placeholder="marie@example.com" required />
      <label htmlFor="phone">Phone *</label>
      <input id="phone" type="tel" name="phone" placeholder="+1 555 0142" required />
      <label htmlFor="event_type">Event type *</label>
      <select id="event_type" name="event_type" required>
        <option value="">Choose…</option>
        <option>Wedding</option>
        <option>Engagement / rehearsal dinner</option>
        <option>Birthday</option>
        <option>Corporate</option>
        <option>Bar/bat mitzvah</option>
        <option>Anniversary</option>
        <option>Funeral / memorial</option>
        <option>Other</option>
      </select>
      <label htmlFor="event_date">Preferred date *</label>
      <input id="event_date" type="date" name="event_date" required />
      <label htmlFor="guests">Expected guests *</label>
      <select id="guests" name="guests" required>
        <option value="">Choose…</option>
        <option>Under 50</option>
        <option>50–100</option>
        <option>100–150</option>
        <option>150–250</option>
        <option>250+</option>
      </select>
      <label htmlFor="budget">Budget</label>
      <select id="budget" name="budget">
        <option value="">Choose…</option>
        <option>Under $5k</option>
        <option>$5k–$10k</option>
        <option>$10k–$25k</option>
        <option>$25k–$50k</option>
        <option>$50k+</option>
      </select>
      <label htmlFor="details">Vision for the event</label>
      <textarea id="details" name="details" placeholder="Indoor/outdoor, sit-down/cocktail, AV needs, catering preferences…" />

      <button type="submit" disabled={status === 'sending'}>
        {status === 'sending' ? 'Sending…' : 'Send'}
      </button>

      {status === 'error' && <p>Something went wrong. Try again.</p>}
    </form>

      <p style={{ marginTop: 12, fontSize: 11, color: '#888', textAlign: 'right' }}>
        Powered by <a href="https://splitforms.com" target="_blank" rel="noopener" style={{ color: '#888', textDecoration: 'none' }}>splitforms</a>
      </p>
    </>
  );
}
04PHPsubmit.php28 lines
<?php
// Drop into a PHP page. Receives a form POST and proxies it to splitforms.com.
// Useful when you want to add server-side validation or rate limiting.

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $allowed = ['name', 'email', 'phone', 'event_type', 'event_date', 'guests', 'budget', 'details'];
    $payload = ['access_key' => 'YOUR_ACCESS_KEY'];
    $payload['subject'] = 'New venue inquiry';

    foreach ($allowed as $f) {
        if (isset($_POST[$f])) $payload[$f] = $_POST[$f];
    }

    $ch = curl_init('https://splitforms.com/api/submit');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Accept: application/json']);
    $response = curl_exec($ch);
    $status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    header('Content-Type: application/json');
    http_response_code($status);
    echo $response;
    exit;
}
?>
05cURLtest.sh12 lines
curl -X POST https://splitforms.com/api/submit \
  -H "Accept: application/json" \
  -d "access_key=YOUR_ACCESS_KEY" \
  -d "subject=New venue inquiry" \
  -d "name=Jane Builder" \
  -d "email=jane@example.com" \
  -d "phone=+15555555555" \
  -d "event_type=Wedding" \
  -d "event_date=2026-05-15" \
  -d "guests=Under 50" \
  -d "budget=Under $5k" \
  -d "details=Hello from cURL" 

Replace YOUR_ACCESS_KEY with the key from your dashboard. That’s the only edit.

§ 06FAQ4 answered

Things people ask before they ship.

Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.

01Should I show full pricing on the venue site?
Show 'starting at' rentals plus headcount minimums. Wedding venue pricing is shopped exhaustively; full transparency builds trust and filters out budget mismatches. Hiding price entirely is a 2010 strategy that drops modern conversion.
02Can I integrate with Tripleseat / Honeybook / Perfect Venue?
Yes — webhook the JSON. All three accept inbound webhooks via Zapier or native APIs. Lead lands in your booking CRM with date, headcount, and event type pre-filled, ready for the proposal.
03How do I handle date conflicts?
Auto-respond with the next 3 available alternate dates if the primary is booked. Most couples have a window of 4-6 weeks they'd accept. Offering alternatives in the first reply saves 50% of would-be losses to competitors.
04Do I need separate forms for weddings vs corporate?
One form with an event-type dropdown is enough — but the auto-responder copy should branch (weddings get romantic language and the wedding-coordinator referral list; corporate gets the AV setup specs and the team-event package). Same form, two voices.
✻ ✻ ✻

Ship your event venue booking inquiry form in 60 seconds.

1,000 free submissions per month. No credit card. Copy the snippet, paste your access key, watch leads land in your inbox.

Get free access key →Browse all 60 templates →
v0.1 · founders pricing locked in · early access open