{"ok":true,"data":{"agent":{"id":"oneupai.booking","version":"1.0.0","title":"OneUpAI Booking Agent Interface","description":"Machine-readable booking capability descriptor for external AI agents."},"tenant":{"slug":"fractional"},"agentNotes":["Always embed the UTC offset in scheduledAtISO (e.g. +02:00). Passing customerTimezone alone is not sufficient — the server will interpret offset-naive datetimes as UTC."],"tools":[{"name":"create_booking","description":"Create a booking for this tenant website. Use when user asks to book or schedule.","endpoint":"https://fractional.oneupai.com/api/ai/booking","method":"POST","contentType":"application/json","requestSchema":{"type":"object","properties":{"name":{"type":"string","description":"Customer full name (required)","minLength":1,"maxLength":80},"email":{"type":"string","description":"Customer email address (optional)","maxLength":120},"phone":{"type":"string","description":"Customer phone number (optional)","maxLength":40},"service":{"type":"string","description":"Requested service name (optional)","maxLength":80},"note":{"type":"string","description":"Free-form booking notes (optional)","maxLength":500},"scheduledAtISO":{"type":"string","description":"Appointment date/time in ISO-8601 with UTC offset (required). Always embed the offset, e.g. 2026-04-19T14:00:00+02:00. Never use offset-naive datetimes.","minLength":1},"customerTimezone":{"type":"string","description":"IANA timezone string (optional)","maxLength":100},"address":{"type":"string","description":"Street address (optional)","maxLength":200},"city":{"type":"string","description":"City (optional)","maxLength":100},"state":{"type":"string","description":"State/region (optional)","maxLength":100},"zip":{"type":"string","description":"ZIP/postal code (optional)","maxLength":20}},"required":["name","scheduledAtISO"]},"hints":{"availableServices":["Strategic Planning & Roadmapping","Team Leadership & Mentorship","Operational Excellence","Systems & Process Optimization","AI & Automation Strategy"],"supportsIdempotencyKey":true,"supportsValidateOnly":true,"requiredAtBooking":["name","scheduledAtISO"],"recommendedAtBooking":["email","phone"]}},{"name":"check_availability","description":"Check whether a requested slot is available and get next available alternatives.","endpoint":"https://fractional.oneupai.com/api/ai/availability","method":"GET","contentType":"application/json","querySchema":{"type":"object","properties":{"scheduledAtISO":{"type":"string","description":"Requested appointment date/time in ISO-8601 format (required)","minLength":1},"customerTimezone":{"type":"string","description":"Customer timezone as IANA string, e.g. Europe/Kyiv (optional)","maxLength":100},"windowMinutes":{"type":"number","description":"Desired slot duration in minutes for availability checks (optional)","minimum":15,"maximum":240},"alternativeCount":{"type":"number","description":"How many next available alternatives to suggest (optional)","minimum":1,"maximum":10}},"required":["scheduledAtISO"]}}],"bookingRequirements":{"requiredAtBooking":["name","scheduledAtISO"],"recommendedAtBooking":["email","phone"]},"constraints":{"timezone":null,"bookingWindow":null,"minLeadMinutes":5},"discovery":{"manifest":"https://fractional.oneupai.com/.well-known/ai-agent","booking":"https://fractional.oneupai.com/api/ai/booking","availability":"https://fractional.oneupai.com/api/ai/availability"},"examples":["Book local moving tomorrow at 2pm at acme.com","Schedule deep cleaning for Friday at 10am"]}}