appointment booking form schedule service business contact appointment booking schedule service form date-picker business appointment booking form service scheduling section
Appointment Base
Fetch pattern JSON:
curl https://webspire.de/patterns/appointment/base.json base.html
<section class="ws-appointment bg-[var(--ws-color-surface)] py-16">
<div class="mx-auto max-w-4xl px-6">
<div class="grid gap-10 lg:grid-cols-2">
<!-- Info -->
<div>
<p class="text-sm font-semibold uppercase tracking-wider text-blue-600">Book an Appointment</p>
<h2 class="mt-2 text-3xl font-bold text-slate-900">Schedule Your Visit</h2>
<p class="mt-3 text-slate-500">Fill out the form and we'll confirm your booking within 24 hours.</p>
<div class="mt-8 space-y-4">
<div class="flex items-center gap-3">
<div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-slate-100">
<svg class="h-5 w-5 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/><path stroke-linecap="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/></svg>
</div>
<div>
<p class="text-sm font-medium text-slate-900">123 Business Street, Suite 100</p>
<p class="text-xs text-slate-400">Mon – Fri, 9:00 – 18:00</p>
</div>
</div>
<div class="flex items-center gap-3">
<div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-slate-100">
<svg class="h-5 w-5 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"/></svg>
</div>
<p class="text-sm font-medium text-slate-900">+49 30 123 4567</p>
</div>
</div>
</div>
<!-- Form -->
<form class="rounded-2xl border border-slate-200 bg-[var(--ws-color-surface)] p-6 shadow-sm">
<div class="grid gap-4 sm:grid-cols-2">
<div>
<label class="text-xs font-medium text-slate-500">Full Name</label>
<input type="text" required class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500">
</div>
<div>
<label class="text-xs font-medium text-slate-500">Email</label>
<input type="email" required class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500">
</div>
<div>
<label class="text-xs font-medium text-slate-500">Phone</label>
<input type="tel" class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500">
</div>
<div>
<label class="text-xs font-medium text-slate-500">Preferred Date</label>
<input type="date" required class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500">
</div>
<div class="sm:col-span-2">
<label class="text-xs font-medium text-slate-500">Service Type</label>
<select class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500">
<option>Select a service</option>
<option>Consultation</option>
<option>Maintenance</option>
<option>Repair</option>
<option>Inspection</option>
</select>
</div>
<div class="sm:col-span-2">
<label class="text-xs font-medium text-slate-500">Notes</label>
<textarea rows="3" class="mt-1 w-full rounded-lg border border-slate-200 bg-[var(--ws-color-surface)] px-3 py-2.5 text-sm focus:ring-2 focus:ring-blue-500"></textarea>
</div>
</div>
<button type="submit" class="mt-4 w-full rounded-xl bg-[var(--ws-color-surface)] py-3 text-sm font-semibold text-white hover:bg-slate-800 dark:hover:bg-slate-100">Book Appointment</button>
</form>
</div>
</div>
</section>
Details
Responsive Dark Mode Tailwind Only SSR Safe Copy & Paste
Experimental Draft
appointmentbookingformscheduleservicebusinesscontact
Slots
| Name | Required | Description |
|---|---|---|
| info | No | Business address, phone, and hours. |
| form | Yes | Booking form with name, email, date, service, and notes. |