booking-engine
Implement appointment/reservation booking for local businesses — data model, availability, conflict prevention, notifications, and staff-facing management.
Skill by DevJanidu
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/devjanidu-booking-engine
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/booking-engine
What's inside
- Skill name
booking-engine- Description
- Implement appointment/reservation booking for local businesses — data model, availability, conflict prevention, notifications, and staff-facing management. Use whenever booking a service or table is a primary or secondary conversion (salons, clinics, trades, restaurants with reservations), and as the foundation for an ERP/management-tier project.
- License
- MIT
- Instructions
- 41 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Booking Engine ## Data model - `services` — name, duration, price, category. - `staff` — name, bio, photo, specialties. - `availability` — recurring working hours per staff member, plus one-off exceptions (time off, holidays). - `appointments` — service, staff, customer, start/end time, status (pending, confirmed, cancelled, completed). - `customers` — name, contact details, notes. Normalize rather than duplicating service/staff data onto each appointment row. Index `appointments.starts_at` and `appointments.staff_id` — availability queries filter on both constantly. ## Conflict prevention Compute available slots server-side as: staff working hours, minus existing appointments, minus time-off exceptions, minus any configured buffer time between bookings. Never trust a client-submitted slot as valid — re-check for conflicts inside a database transaction at submission time so two customers can't win the same slot in a race condition. A failed re-check should return the customer to slot selection with a clear message, not a generic error. Store timestamps in UTC and convert using the salon's configured IANA timezone. Calculate the appointment end from the authoritative service duration, never a client value. Treat pending appointments as slot-blocking only for a defined expiry window. Enforce conflict safety with both a transaction/lock and a database constraint or equivalent overlap strategy where the database supports it; an application-only pre-check is race-prone. Define before launch: minimum notice, maximum advance window, buffers, cancellation/reschedule window, no-show handling, deposit behavior, taxes, and whether staff selection is optional. Do not guess these policies. ## Interactive booking UI Drive a 4-step flow — service → stylist/staff (skippable if irrelevant) → date/time → customer details — with a Livewire component (or Alpine.js plus a small JSON availability endpoint if Livewire isn't already in the stack) so slots update live as the customer narrows their choice, with no full-page reload between steps. Because this is a public conversion path, ensure a no-JS fallback works: a plain multi-step Blade form that posts and re-renders server-side still completes a booking. ## Notifications Send booking confirmation immediately on-screen, then follow up with a Laravel Notification (mail, and SMS via a documented-but-optional channel) plus a reminder before the appointment. Dispatch both as queued jobs, not inline — note in the project's setup docs that a queue worker (`php artisan queue:work`, or a supervisor/systemd entry in production) must be running or these notifications silently never send. ## Admin / staff management Default to Filament for the staff-facing side — appointments calendar/list, staff CRUD, services CRUD — unless the host project already has an established admin pattern, in which case preserve that instead (per `../website-director/SKILL.md`'s rule to preserve existing conventions). When the project type is ERP/management rather than plain booking, treat this admin surface as the primary deliverable, not a secondary add-on — staff scheduling, service catalog, and appointment oversight are core to the build. Add inventory, reporting, or other modules only if the brief specifically asks for them; don't invent ERP scope beyond what's requested. ## Testing Write a PHPUnit feature test that attempts to double-book the same staff member/slot and asserts the second attempt is rejected — this is the one part of the domain that's easy to get subtly wrong (off-by-one buffer math, timezone handling, race conditions) and cheap to pin down with a test. Also test adjacent slots, buffers, time off, daylight-saving/timezone conversion when relevant, expired pending holds, cancellation releasing a slot, authorization for staff/admin actions, and notification retries. For deposits, use provider webhooks as the payment source of truth and make webhook processing idempotent.
From DevJanidu/curb-appeal, MIT.
More from DevJanidu/curb-appeal
- 0.479score
project-detector
DevJanidu
Classify a workspace as new, or an existing Astro, Next.js, React/Vite, Laravel Blade, Laravel Livewire, Laravel Inertia React, Vue, Svelte, static site…
SkillCFreshness: CClaude Code +9 - 0.479score
editorial-luxury-theme
DevJanidu
Apply the "Sharp Editorial Luxury" visual system — zero-radius cards/buttons, espresso/taupe/gold palette, Poppins, uppercase letter-spaced labels with…
SkillCFreshness: CClaude Code +9 - 0.474score
image-pipeline
DevJanidu
Source, optimize, and verify real images for every image slot — search business-provided assets first, then Unsplash/Pexels/Pixabay; convert to modern…
SkillCFreshness: CClaude Code +9 - 0.474score
business-blueprints
DevJanidu
Choose the right information architecture, conversions, pages, trust signals, schema type, and content rules per vertical — salon/beauty, barbershop, spa…
SkillCFreshness: CClaude Code +9 - 0.471score
form-integrations
DevJanidu
Wire contact and inquiry forms to a real, working target — never a form that fakes success.
SkillCFreshness: CClaude Code +9 - 0.471score
art-direction
DevJanidu
Create an original premium visual system for a local-business website, including typography, color, spacing, imagery, layouts, components, and restrained…
SkillCFreshness: CClaude Code +9 - 0.471score
client-handoff
DevJanidu
Produce a plain-language handoff document for a non-technical owner — what was built, how to edit content/services/images, how forms and booking work, what…
SkillCFreshness: CClaude Code +9 - 0.471score
design-system
DevJanidu
Produce a deterministic visual system before building pages — a three-word direction, color/type roles, scales, spacing, radius, shadows, component styles…
SkillCFreshness: CClaude Code +9 - 0.471score
accessibility-audit
DevJanidu
Verify a site meets WCAG 2.2 AA — semantics, keyboard operation, focus management, labels/errors, contrast, alt text, reduced motion, touch sizes, zoom, and…
SkillCFreshness: CClaude Code +9 - 0.471score
frontend-craft
DevJanidu
Implement production-quality responsive local-business websites — React, Astro, Vue, Svelte, Laravel/Blade, or plain HTML/CSS.
SkillCFreshness: CClaude Code +9 - 0.471score
performance-audit
DevJanidu
Check and improve Core Web Vitals and load performance against practical Lighthouse gates — LCP, CLS, fonts, images, unused JS, third parties, caching, and…
SkillCFreshness: CClaude Code +9 - 0.471score
project-recommender
DevJanidu
Recommend the project type and technology by asking outcome questions, not framework questions.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 18, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/DevJanidu/curb-appeal
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from DevJanidu
- 0.479score
project-detector
DevJanidu
Classify a workspace as new, or an existing Astro, Next.js, React/Vite, Laravel Blade, Laravel Livewire, Laravel Inertia React, Vue, Svelte, static site…
SkillCFreshness: CClaude Code +9 - 0.479score
editorial-luxury-theme
DevJanidu
Apply the "Sharp Editorial Luxury" visual system — zero-radius cards/buttons, espresso/taupe/gold palette, Poppins, uppercase letter-spaced labels with…
SkillCFreshness: CClaude Code +9 - 0.474score
business-blueprints
DevJanidu
Choose the right information architecture, conversions, pages, trust signals, schema type, and content rules per vertical — salon/beauty, barbershop, spa…
SkillCFreshness: CClaude Code +9 - 0.474score
image-pipeline
DevJanidu
Source, optimize, and verify real images for every image slot — search business-provided assets first, then Unsplash/Pexels/Pixabay; convert to modern…
SkillCFreshness: CClaude Code +9 - 0.471score
accessibility-audit
DevJanidu
Verify a site meets WCAG 2.2 AA — semantics, keyboard operation, focus management, labels/errors, contrast, alt text, reduced motion, touch sizes, zoom, and…
SkillCFreshness: CClaude Code +9 - 0.471score
design-system
DevJanidu
Produce a deterministic visual system before building pages — a three-word direction, color/type roles, scales, spacing, radius, shadows, component styles…
SkillCFreshness: CClaude Code +9
Cite this page
booking-engine skill. Agent Mart. https://agentmart.dev/skills/devjanidu-booking-engine (last updated 2026-10-24)