{"schemaVersion":"2026-04-18","server":{"name":"agentenvoy","version":"1.0.0"},"endpoint":"https://agentenvoy.ai/api/mcp","transport":{"type":"streamable-http","sessionIdSupport":false},"auth":{"type":"url-capability","tokenParam":"meetingUrl","urlPattern":"/meet/{slug}[/{code} | ?c={code}]","directlyCallable":true,"connectorInstallRequired":false},"agentSetup":{"installRequired":false,"guidance":"POST tools/call requests directly to the endpoint with the meeting URL as the meetingUrl argument. No connector installation, OAuth, or API key required. Agents whose runtime requires a registered MCP server may still add this URL as a custom server, but doing so is not necessary — the endpoint is publicly callable."},"additionalEndpoints":[{"url":"https://agentenvoy.ai/api/mcp/host","purpose":"host-self-service","auth":{"type":"pat-bearer","scheme":"Bearer agentenvoy_pat_live_<token>","scopes":["read","schedule","admin"]}},{"url":"https://agentenvoy.ai/meet/{slug}/{code}/agent.json","purpose":"agent-snapshot","auth":{"type":"url-capability","note":"no auth header — possessing the URL is the authorization"},"method":"GET","contentType":"application/agent+json","description":"Single-fetch JSON snapshot of a personalized link's parameters + scored slot list + booking guidance. For agents that prefer GET-then-POST over JSON-RPC. Same data as MCP get_availability + get_meeting_parameters; defaults: limit=20, no dateRange floor, sorted best-first."},{"url":"https://agentenvoy.ai/meet/{slug}/agent.json","purpose":"agent-snapshot-vanity","auth":{"type":"url-capability"},"method":"GET","contentType":"application/agent+json","description":"Bare-vanity form for a host's primary link. Resolves the slug to the host's default link."}],"inPageDiscovery":{"selector":"script[type=\"application/agent+json\"][data-agent-snapshot]","scope":"/meet/{slug}/{code}","description":"On personalized meet pages, an `<script type=\"application/agent+json\">` tag carries the same snapshot as `/agent.json`. Cold web_fetch agents that can't issue separate API calls can parse this from the page HTML."},"docs":{"description":"https://agentenvoy.ai/llms.txt","humanSite":"https://agentenvoy.ai"},"tools":[{"name":"get_meeting_parameters","description":"Read the state envelope for every negotiable parameter on this meeting link.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"slotStart":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["meetingUrl"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"meetingUrl":{"type":"string"},"parameters":{"type":"object","properties":{"format":{"type":"object","properties":{"value":{"anyOf":[{"type":"string","enum":["video","phone","in-person"]},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string","enum":["video","phone","in-person"]}},"suggestions":{"type":"array","items":{"type":"string","enum":["video","phone","in-person"]}},"preferred":{"type":"string","enum":["video","phone","in-person"]},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"duration":{"type":"object","properties":{"value":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"suggestions":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"preferred":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"location":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string"}},"suggestions":{"type":"array","items":{"type":"string"}},"preferred":{"type":"string"},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"timezone":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string"}},"suggestions":{"type":"array","items":{"type":"string"}},"preferred":{"type":"string"},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"guestMustResolve":{"type":"array","items":{"type":"string","enum":["format","duration","location","timezone"]}}},"required":["format","duration","location","timezone","guestMustResolve"],"additionalProperties":false},"rules":{"type":"object","properties":{"activity":{"type":"string"},"activityIcon":{"type":"string"},"timingLabel":{"type":"string"},"isVip":{"type":"boolean"},"timingPreference":{"type":"object","properties":{"anchor":{"anyOf":[{"type":"string","enum":["this-week","next-week"]},{"type":"null"}]}},"required":["anchor"],"additionalProperties":false},"guestPicksWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":23},"endHour":{"type":"integer","minimum":1,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false}},"additionalProperties":{}}},"required":["ok","meetingUrl","parameters","rules"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"get_availability","description":"Read the host's scored, filtered slot list. Pass busyWindows (UTC start/end pairs from your own calendar) to get back only mutually open times. Response includes slotsThrough (furthest date the host offered time) — if slots is empty, the host didn't offer time in this window; the response hint will include their email address to contact directly.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"dateRange":{"type":"object","properties":{"start":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"end":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["start","end"],"additionalProperties":false},"timezone":{"description":"Display timezone. Does NOT shift slot timestamps (those are UTC).","type":"string"},"limit":{"default":20,"type":"integer","minimum":1,"maximum":200},"busyWindows":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"end":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["start","end"],"additionalProperties":false}}},"required":["meetingUrl","limit"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"timezone":{"type":"string"},"slots":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"end":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"localStart":{"type":"string"},"score":{"type":"number"},"tier":{"type":"string","enum":["first_offer","stretch1","stretch2"]},"preferred":{"type":"boolean"}},"required":["start","end","score"],"additionalProperties":false}},"slotsThrough":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"null"}]},"parameters":{"type":"object","properties":{"format":{"type":"object","properties":{"value":{"anyOf":[{"type":"string","enum":["video","phone","in-person"]},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string","enum":["video","phone","in-person"]}},"suggestions":{"type":"array","items":{"type":"string","enum":["video","phone","in-person"]}},"preferred":{"type":"string","enum":["video","phone","in-person"]},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"duration":{"type":"object","properties":{"value":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"suggestions":{"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"preferred":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"location":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string"}},"suggestions":{"type":"array","items":{"type":"string"}},"preferred":{"type":"string"},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"timezone":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"origin":{"type":"string","enum":["link-rule","host-profile-default","system-default","unset"]},"mutability":{"type":"string","enum":["locked","host-filled","delegated","open","required"]},"allowedValues":{"type":"array","items":{"type":"string"}},"suggestions":{"type":"array","items":{"type":"string"}},"preferred":{"type":"string"},"guestMustResolve":{"type":"boolean"}},"required":["value","origin","mutability","guestMustResolve"],"additionalProperties":false},"guestMustResolve":{"type":"array","items":{"type":"string","enum":["format","duration","location","timezone"]}}},"required":["format","duration","location","timezone","guestMustResolve"],"additionalProperties":false},"rules":{"type":"object","properties":{"activity":{"type":"string"},"activityIcon":{"type":"string"},"timingLabel":{"type":"string"},"isVip":{"type":"boolean"},"timingPreference":{"type":"object","properties":{"anchor":{"anyOf":[{"type":"string","enum":["this-week","next-week"]},{"type":"null"}]}},"required":["anchor"],"additionalProperties":false},"guestPicksWindow":{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":23},"endHour":{"type":"integer","minimum":1,"maximum":24}},"required":["startHour","endHour"],"additionalProperties":false}},"additionalProperties":{}},"hint":{"type":"string"}},"required":["ok","timezone","slots"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"get_session_status","description":"Read the current lifecycle state of a negotiation session (active / agreed / cancelled / rescheduled / expired) plus reschedule history and pending consent requests.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"}},"required":["meetingUrl"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"status":{"type":"string","enum":["active","agreed","cancelled","rescheduled","expired"]},"sessionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"agreedTime":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"rescheduleHistory":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"actor":{"type":"string","enum":["host","guest","host_envoy","external_agent"]},"reason":{"type":"string"}},"required":["from","to","at","actor"],"additionalProperties":false}},"pendingConsentRequests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"field":{"type":"string"},"proposedValue":{},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","field","proposedValue","expiresAt"],"additionalProperties":false}}},"required":["ok","status","sessionId","agreedTime","rescheduleHistory","pendingConsentRequests"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","session_not_found"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"post_message","description":"Post a message to the deal-room thread as role=external_agent. Streams the Host Envoy's reply.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"text":{"type":"string","minLength":1,"maxLength":4000},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false}},"required":["meetingUrl","text"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"messageId":{"type":"string"},"sessionId":{"type":"string"},"envoyReply":{"type":"object","properties":{"messageId":{"type":"string"},"text":{"type":"string"}},"required":["messageId","text"],"additionalProperties":false}},"required":["ok","messageId","sessionId"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","guest_required","session_terminal"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"propose_parameters","description":"Propose values for one or more negotiable parameters. Returns per-field results so one rejection does not kill the batch.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"},"proposal":{"type":"object","properties":{"format":{"type":"string","enum":["video","phone","in-person"]},"duration":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"location":{"type":"string"}},"additionalProperties":false},"action":{"default":"resolve","type":"string","enum":["resolve","defer_to_host_envoy"]},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false}},"required":["meetingUrl","proposal","action"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sessionId":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["format","duration","location"]},"accepted":{"type":"boolean"},"reason":{"type":"string","enum":["accepted","field_locked","value_not_allowed","deferred_to_host_envoy","host_profile_incomplete"]},"appliedValue":{},"decidedBy":{"type":"string","enum":["guest","host","host_envoy"]},"rationale":{"type":"string"}},"required":["field","accepted"],"additionalProperties":false}},"graceWindowSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"decidedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["ok","sessionId","results"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","session_not_found","session_terminal"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"propose_lock","description":"The handshake. Validate, CAS active→agreed, dispatch calendar + emails, post the confirmation announcement.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"},"slot":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"durationMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["start"],"additionalProperties":false},"guest":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"type":"string","minLength":1,"maxLength":200},"wantsReminder":{"type":"boolean"},"note":{"type":"string","maxLength":1000}},"required":["email","name"],"additionalProperties":false},"overrides":{"type":"object","properties":{"format":{"type":"string","enum":["video","phone","in-person"]},"location":{"type":"string"}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false}},"required":["meetingUrl","slot","guest"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sessionId":{"type":"string"},"meetingUrl":{"type":"string"},"status":{"type":"string","const":"confirmed"},"dateTime":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"duration":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"type":"string","enum":["video","phone","in-person"]},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"meetLink":{"anyOf":[{"type":"string"},{"type":"null"}]},"eventLink":{"anyOf":[{"type":"string"},{"type":"null"}]},"idempotent":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string","enum":["gcal_failed","email_failed"]}}},"required":["ok","sessionId","status","dateTime","duration","format","location"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","validation_failed","session_not_found","host_email_missing","host_profile_incomplete","in_person_disallowed","slot_mismatch","slot_taken_during_handshake","already_confirmed_elsewhere","consent_not_accepted","session_already_has_event"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"counterProposal":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"end":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"score":{"type":"number"}},"required":["start","end","score"],"additionalProperties":false}}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"cancel_meeting","description":"CAS agreed→cancelled. Deletes the GCal event, dispatches cancellation emails, posts the cancellation announcement.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"},"reason":{"type":"string","maxLength":1000},"notifyHost":{"default":true,"type":"boolean"},"idempotencyKey":{"type":"string","maxLength":200},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false},"occurrence":{"type":"object","properties":{"originalStartAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["originalStartAt"],"additionalProperties":false}},"required":["meetingUrl","notifyHost"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sessionId":{"type":"string"},"status":{"type":"string","const":"cancelled"},"idempotent":{"type":"boolean"},"occurrence":{"type":"object","properties":{"id":{"type":"string"},"originalStartAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","originalStartAt"],"additionalProperties":false}},"required":["ok","sessionId","status"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","session_not_found","session_not_agreed","session_terminal"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"reschedule_meeting","description":"In-place calendar.events.patch on the agreed event. Preserves iCalUID. Appends to rescheduleHistory, posts the reschedule announcement.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"},"newSlot":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"durationMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["start"],"additionalProperties":false},"reason":{"type":"string","maxLength":1000},"overrides":{"type":"object","properties":{"format":{"type":"string","enum":["video","phone","in-person"]},"location":{"type":"string"}},"additionalProperties":false},"idempotencyKey":{"type":"string","maxLength":200},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false},"occurrence":{"type":"object","properties":{"originalStartAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["originalStartAt"],"additionalProperties":false}},"required":["meetingUrl","newSlot"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sessionId":{"type":"string"},"status":{"type":"string","const":"rescheduled"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"idempotent":{"type":"boolean"},"occurrence":{"type":"object","properties":{"id":{"type":"string"},"originalStartAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","originalStartAt"],"additionalProperties":false}},"required":["ok","sessionId","status","from","to"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","session_not_found","session_not_agreed","session_terminal","slot_taken_during_handshake","gcal_patch_failed","tool_not_implemented"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"counterProposal":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"end":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"score":{"type":"number"}},"required":["start","end","score"],"additionalProperties":false}}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"lock_activity_location","description":"Lock the activity and/or location of a coordinating session on behalf of the guest. Mirrors the host-Envoy dialog action; server-side handler is shared. Format may be derived from the activity (e.g. coffee → in-person) and is validated against the host's downgrade ladder unless the activity is one of the host's pre-approved options.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"},"activity":{"type":"string","minLength":1,"maxLength":200},"location":{"type":"string","minLength":1,"maxLength":500},"idempotencyKey":{"type":"string","maxLength":200},"clientMeta":{"type":"object","properties":{"clientName":{"type":"string","minLength":1,"maxLength":200},"clientType":{"default":"external_agent","type":"string","enum":["human_via_ui","envoy","external_agent"]},"principal":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"additionalProperties":false,"description":"On whose behalf the agent is acting (EA's principal, etc)."}},"required":["clientType"],"additionalProperties":false}},"required":["meetingUrl"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"sessionId":{"type":"string"},"locked":{"type":"object","properties":{"activity":{"anyOf":[{"type":"string"},{"type":"null"}]},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"format":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["activity","location","format"],"additionalProperties":false},"lockedBy":{"type":"string","const":"guest"}},"required":["ok","sessionId","locked","lockedBy"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited","session_not_found","session_terminal","format_upgrade_blocked","validation_failed"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"get_tip","description":"Read the contextual tip for a meeting link. Returns the highest-priority authored or derived tip that applies to this meeting, or null when no tip is available. AP5b: templateId and sourceKind are role-invariant.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"}},"required":["meetingUrl"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"tip":{"anyOf":[{"type":"object","properties":{"text":{"type":"string"},"source":{"type":"string"},"sourceKind":{"type":"string","enum":["authored-day-of","authored-travel","authored-format","derived-calendar-overlap","derived-relationship-history","derived-series-progress","generative-fallback"]},"templateId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["text","source","sourceKind","templateId","generatedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["ok","tip"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}},{"name":"get_event_summary","description":"Read a consolidated summary of the event: lifecycle status, agreed time/format, channel details (Design X signals — renderer composes copy), participants, series metadata, and GCal event URL.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"meetingUrl":{"type":"string","minLength":1,"description":"The meeting URL (`/meet/<slug>?c=<code>`) or just `<slug>`."},"sessionId":{"type":"string"}},"required":["meetingUrl"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"ok":{"type":"boolean","const":true},"summary":{"type":"object","properties":{"status":{"type":"string","enum":["proposed","matched","agreed","cancelled"]},"agreedTime":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"agreedFormat":{"anyOf":[{"type":"string","enum":["video","phone","in-person"]},{"type":"null"}]},"eventUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"channel":{"anyOf":[{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"in-person"},"location":{"type":"string"}},"required":["kind","location"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"video"},"platform":{"type":"string"},"joinUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","platform","joinUrl"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"phone"},"phoneNumber":{"type":"string"},"hostCallsGuest":{"type":"boolean","const":true}},"required":["kind","phoneNumber","hostCallsGuest"],"additionalProperties":false}]},{"type":"null"}]},"participants":{"type":"object","properties":{"hostFirstName":{"type":"string"},"guestFirstName":{"type":"string"},"hostCallsGuest":{"type":"boolean"}},"required":["hostFirstName","guestFirstName"],"additionalProperties":false},"series":{"anyOf":[{"type":"object","properties":{"cadence":{"type":"string"},"position":{"type":"number"},"total":{"type":"number"},"nextSessionUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["cadence","position","total","nextSessionUrl"],"additionalProperties":false},{"type":"null"}]}},"required":["status","agreedTime","agreedFormat","eventUrl","channel","participants","series"],"additionalProperties":false}},"required":["ok","summary"],"additionalProperties":false},{"type":"object","properties":{"ok":{"type":"boolean","const":false},"reason":{"type":"string","enum":["link_not_found","link_expired","rate_limited"]},"message":{"type":"string"},"retryAfterSeconds":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["ok","reason","message"],"additionalProperties":false}]}}]}