Booking Agent
The Problem
Section titled “The Problem”Managing bookings (whether for appointments, classes, events, or services) involves repetitive back-and-forth: checking availability, suggesting times, confirming details. An AI agent can handle the drafting and logic, leaving you to finalize.
What we’re building: An agent that processes booking requests against a schedule of available slots, suggests options, and drafts confirmation messages.
The Approach
Section titled “The Approach”Our booking agent will:
- Maintain awareness of available time slots (provided by you)
- Process incoming booking requests
- Suggest available options that match the request
- Draft confirmation messages ready to send
Build It
Section titled “Build It”Step 1: Prepare your availability
Section titled “Step 1: Prepare your availability”Create a simple availability schedule. You can type it or paste from a spreadsheet:
Availability - Photography StudioWeek of March 17-21
Monday: 9:00-12:00, 14:00-17:00Tuesday: 10:00-12:00, 13:00-16:00Wednesday: FULLY BOOKEDThursday: 9:00-11:00, 15:00-18:00Friday: 9:00-17:00Saturday: 10:00-14:00Sunday: Closed
Session types:- Portrait (1 hour): $50- Family (2 hours): $120- Event coverage (4 hours): $300- Mini session (30 min): $30Step 2: Set up your system prompt
Section titled “Step 2: Set up your system prompt”Create a Project on claude.ai and paste both the system prompt and your availability as project knowledge.
Use Custom Instructions (Settings > Personalization > Custom Instructions) or paste the system prompt and availability at the start of a new conversation at chatgpt.com.
If you have a paid plan (Plus, Team, or Enterprise), you can also create a Custom GPT with these instructions for reuse.
Go to gemini.google.com and paste the system prompt and availability at the start of a new conversation.
If you have Gemini Advanced, you can also create a Gem with these instructions for reuse.
Create a Modelfile that includes the availability in the system prompt:
FROM llama3.2SYSTEM """<system prompt + availability below>"""Run: ollama create booking-agent -f Modelfile
Paste both the system prompt and availability into the System Prompt field.
The system prompt (include your availability after this):
You are a booking assistant for a small business. You help manage appointmentrequests by checking availability and drafting responses.
When you receive a booking request:
1. UNDERSTAND the request: - What service/session type are they looking for? - What date and time do they prefer? - Any special requirements?
2. CHECK availability: - Look at the provided schedule - Find matching open slots - If the requested time isn't available, suggest the 2-3 closest alternatives
3. DRAFT a response that includes: - Confirmation of availability (or alternatives) - Service details and pricing - What the client should bring or prepare - A clear call-to-action to confirm
4. If a booking is confirmed, GENERATE: - A confirmation message for the client - An internal note with all booking details - A reminder message to send 24 hours before
Tone: Professional, friendly, and helpful.Always include pricing. Never double-book a time slot.When a slot is booked, note it as unavailable for future requests in this conversation.
If a client needs to reschedule, suggest the next 3 available slots.If cancelling, confirm the cancellation and note the slot is now available.If all requested times are fully booked, offer the closest available alternatives.
[PASTE YOUR AVAILABILITY SCHEDULE HERE]Step 3: Test with booking requests
Section titled “Step 3: Test with booking requests”Try this request:
Hi, I'd like to book a family photo session. We're a family of 5 withtwo small kids. Ideally sometime Thursday afternoon or Saturday morning.Do you have anything available?The agent should check the schedule, find matching slots, and draft a response with options and pricing.
Then try a follow-up:
Saturday at 10am works! Please confirm.The agent should generate a confirmation message and mark that slot as taken.
Test It
Section titled “Test It”Try these scenarios:
- A request for a time that’s fully booked (agent should suggest alternatives)
- Multiple bookings in one conversation (agent should track what’s been booked)
- A request with special requirements (“we need wheelchair access”)
- A cancellation request
Make It Better
Section titled “Make It Better”- Update availability weekly: paste a fresh schedule at the start of each week
- Add policies: cancellation policy, deposit requirements, rescheduling rules
- Create templates: save the best confirmation messages as templates
- Multi-language: add a rule to respond in the same language as the request (great for Paraguay where people write in both Spanish and Guarani)
Sample Output
Section titled “Sample Output”Here’s what your agent should produce for the family photo booking request:
Hi there! 👋
Great news — I have availability for a family photo session! Here are your options:
**Option 1:** Thursday, March 20 — 3:00 PM to 5:00 PM**Option 2:** Saturday, March 22 — 10:00 AM to 12:00 PM
**Session details:**- Family session (2 hours): **$120**- Includes: Edited digital photos delivered within 5 business days
**With two small kids, I'd recommend:**- Bring a favorite toy or snack for comfort- Wear coordinating (not matching) outfits- Morning sessions tend to work best with little ones — kids are usually happiest before noon!
Which option works best for your family? Once you confirm, I'll send an official booking confirmation. 😊After confirmation (“Saturday at 10am works”):
**Booking Confirmed! ✅**
**Client message to send:**
> Hi! Your family photo session is confirmed:>> 📅 Saturday, March 22> 🕐 10:00 AM - 12:00 PM> 📍 [VERIFY: studio address or meeting point]> 💰 $120 — Family Session (2 hours)>> A few tips for a great session:> - Arrive 5-10 minutes early> - Wear comfortable, coordinating outfits> - Bring a small snack for the kids>> See you Saturday! If you need to reschedule, please let me know at least 24 hours in advance.
**Internal note:**- Client: [name from request]- Date: Saturday March 22, 10:00-12:00- Type: Family session (2 hrs) — $120- Notes: Family of 5, two small kids- ⚠️ Saturday 10:00-12:00 is now BOOKED
**Reminder message (send Friday March 21):**> Hi! Just a friendly reminder about your family photo session tomorrow (Saturday) at 10:00 AM. See you there! 📸Troubleshooting
Section titled “Troubleshooting”The agent suggests times that are already booked. This happens when the agent loses track of bookings in a long conversation. Periodically remind it: “Updated availability: Saturday 10:00-12:00 is now booked. The remaining Saturday availability is 12:00-14:00.”
The agent forgets your pricing. Make sure pricing is included in the system prompt, not just the availability. If it still makes mistakes, add: “ALWAYS quote exact prices from my price list. Never estimate or round.”
Responses are too long for quick client messages. Add channel-specific rules: “For WhatsApp responses, keep it under 5 sentences. For email, the full format is fine.”
The agent doesn’t handle rescheduling or cancellations. The system prompt now includes these scenarios. If the output is still awkward, add examples: “If someone says ‘I need to reschedule,’ respond with empathy and 3 new time options.”
Free Tools to Enhance This Project
Section titled “Free Tools to Enhance This Project”- Calendly: Free tier for 1 event type. Once your agent workflow is solid, Calendly can automate the actual scheduling.
- Google Calendar: Free. Track confirmed bookings here after your agent drafts the confirmation.
- Cal.com: Free, open-source scheduling tool. An alternative to Calendly with more customization.
Making It Better Over Time
Section titled “Making It Better Over Time”- Track booking patterns: “Most clients book on Tuesday for weekend sessions.” Add this as context so the agent can suggest popular times proactively.
- Build cancellation experience: when clients cancel, note the reason. Add patterns: “Clients with kids reschedule 30% of the time, so always offer flexible rebooking.”
- Add seasonal pricing: “December sessions have a 20% holiday surcharge” or “Offer a 15% discount for Monday-Wednesday bookings to fill slow days.”