{"openapi":"3.1.0","info":{"title":"Well Prepped Life Booking API","description":"Check availability and book a free 15-minute phone consultation for Well Prepped Life — fresh chef-cooked meal-prep delivery for seniors and disabled adults in the SF Bay Area. Times are UTC ISO strings; present them to users in Pacific Time (America/Los_Angeles).","version":"1.0.0"},"servers":[{"url":"https://wellpreppedlife.com"}],"paths":{"/api/slots":{"get":{"operationId":"getAvailableSlots","summary":"List open consultation times","description":"Returns available free-consultation start times between two dates. Response maps YYYY-MM-DD dates to arrays of UTC ISO start times. Show times to the user in Pacific Time.","parameters":[{"name":"start","in":"query","required":true,"description":"First day to check (YYYY-MM-DD).","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"end","in":"query","required":true,"description":"Last day to check (YYYY-MM-DD). Two weeks out is a good default.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"responses":{"200":{"description":"Available times grouped by day.","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","format":"date-time"}}}}}}}}}}},"/api/book":{"post":{"operationId":"bookConsultation","summary":"Book the free 15-minute consultation","description":"Books a consultation at one of the times returned by getAvailableSlots. Always confirm the exact time (in Pacific Time), full name, and email with the user before calling. The customer receives a confirmation email and is called at the booked time.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["start","name","email"],"properties":{"start":{"type":"string","format":"date-time","description":"Chosen slot start, UTC ISO string exactly as returned by getAvailableSlots."},"name":{"type":"string","description":"Customer's full name."},"email":{"type":"string","description":"Customer's email (confirmation is sent here)."},"phone":{"type":"string","description":"Customer's phone number — strongly recommended; this is a phone consultation."},"notes":{"type":"string","description":"Any other context not covered by the structured fields."},"care_recipient":{"type":"string","description":"Who the meals are for: self, parent, spouse, other family member, client, or friend. Fill from conversation if mentioned."},"dietary_needs":{"type":"string","description":"Dietary needs: diabetic-friendly, kidney-friendly, low-sodium, soft food, allergies, dislikes."},"zip":{"type":"string","description":"Delivery ZIP code (SF Bay Area — Peninsula & South Bay)."},"city":{"type":"string","description":"Delivery city."},"start_when":{"type":"string","description":"How soon meals should start, e.g. 'this week', 'after hospital discharge'."},"meals_per_week":{"type":"string","description":"Roughly how many meals per week they need."},"heard_about":{"type":"string","description":"How they heard about Well Prepped Life (if mentioned)."},"biggest_challenge":{"type":"string","description":"Their main food/meal challenge right now, if shared."},"source":{"type":"string","enum":["ai-agent"],"description":"Always send \"ai-agent\" so the booking is attributed correctly."}}}}}},"responses":{"200":{"description":"Booking confirmed.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"uid":{"type":"string","description":"Booking reference."},"start":{"type":"string","format":"date-time"}}}}}},"409":{"description":"Slot just taken or too soon (under 90 minutes out) — pick another time."}}}}}}