> For the complete documentation index, see [llms.txt](https://docs.scaleconnect.com.au/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scaleconnect.com.au/api/rest-api/scaleai-rest-api/meeting-scheduler.md).

# Meeting Scheduler

## Meeting Scheduler Stream Endpoint

> Streaming meeting scheduler endpoint.\
> \
> This endpoint provides AI-powered meeting scheduling with:\
> \- Intent classification (no meeting, other query, book meeting)\
> \- Availability checking via broker's calendar\
> \- Meeting booking\
> \- Alternative slot suggestions for conflicts\
> \
> Chunk Types:\
> \- text: Response text chunks\
> \- tool\_status: Tool execution status\
> \- tool\_result: Result from tool execution\
> \- action: The action determined by AI (send\_message, create\_event\_and\_send\_message, close\_session, send\_message\_and\_close\_session)\
> \- done: Conversation complete (includes conversation\_history and action)\
> \- error: Error messages

```json
{"openapi":"3.1.0","info":{"title":"ScaleAI r16 API","version":"2.0.0"},"servers":[{"url":"https://agent-backend.r16.app"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"MeetingSchedulerRequest":{"properties":{"message":{"type":"string","title":"Message","description":"User's message"},"conversation_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Conversation History","description":"Previous conversation messages"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"LLM model to use","default":"claude-sonnet-4-20250514"},"jwt_token":{"type":"string","minLength":1,"description":"Downstream user JWT, separate from the service bearer token."},"chat_id":{"type":"string","title":"Chat Id","description":"UUID of the chat (used to lookup broker for calendar operations)"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email","description":"Client's email for calendar invites (optional)"},"ask_email":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ask Email","description":"Whether to ask for email if not provided","default":false},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Client user ID"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment","description":"Environment: 'local', 'dev', or 'prod'","default":"dev"}},"type":"object","required":["message","chat_id","jwt_token"],"title":"MeetingSchedulerRequest","description":"Request model for meeting scheduler endpoints."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/meeting-scheduler/stream":{"post":{"tags":["Meeting Scheduler"],"summary":"Meeting Scheduler Stream Endpoint","description":"Streaming meeting scheduler endpoint.\n\nThis endpoint provides AI-powered meeting scheduling with:\n- Intent classification (no meeting, other query, book meeting)\n- Availability checking via broker's calendar\n- Meeting booking\n- Alternative slot suggestions for conflicts\n\nChunk Types:\n- text: Response text chunks\n- tool_status: Tool execution status\n- tool_result: Result from tool execution\n- action: The action determined by AI (send_message, create_event_and_send_message, close_session, send_message_and_close_session)\n- done: Conversation complete (includes conversation_history and action)\n- error: Error messages","operationId":"meeting_scheduler_stream_endpoint_meeting_scheduler_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingSchedulerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"text/event-stream":{"schema":{"type":"string","description":"SSE chunk. See the operation description for chunk types."}}}},"401":{"description":"Missing or invalid service bearer token, or missing downstream jwt_token in the request body.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Handler failed","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}},"503":{"description":"AI features temporarily disabled","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}}}}}}}
```

## Meeting Scheduler Endpoint

> Non-streaming meeting scheduler endpoint.\
> \
> Returns the complete response in a single JSON object including:\
> \- response: The message to display to the user\
> \- action: The action type and data (send\_message, create\_event, close\_session)\
> \- action\_result: Result of executing the action\
> \- session\_ended: Whether the conversation should end

```json
{"openapi":"3.1.0","info":{"title":"ScaleAI r16 API","version":"2.0.0"},"servers":[{"url":"https://agent-backend.r16.app"}],"security":[{"HTTPBearer":[]}],"components":{"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}},"schemas":{"MeetingSchedulerRequest":{"properties":{"message":{"type":"string","title":"Message","description":"User's message"},"conversation_history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Conversation History","description":"Previous conversation messages"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"LLM model to use","default":"claude-sonnet-4-20250514"},"jwt_token":{"type":"string","minLength":1,"description":"Downstream user JWT, separate from the service bearer token."},"chat_id":{"type":"string","title":"Chat Id","description":"UUID of the chat (used to lookup broker for calendar operations)"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email","description":"Client's email for calendar invites (optional)"},"ask_email":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ask Email","description":"Whether to ask for email if not provided","default":false},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Client user ID"},"environment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Environment","description":"Environment: 'local', 'dev', or 'prod'","default":"dev"}},"type":"object","required":["message","chat_id","jwt_token"],"title":"MeetingSchedulerRequest","description":"Request model for meeting scheduler endpoints."},"MeetingSchedulerResponse":{"properties":{"response":{"type":"string","title":"Response","description":"AI response text"},"action":{"$ref":"#/components/schemas/MeetingActionData","description":"Action data"},"action_result":{"anyOf":[{"$ref":"#/components/schemas/ActionResult"},{"type":"null"}],"description":"Result of action execution"},"conversation_history":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Conversation History","description":"Updated conversation history"},"session_ended":{"type":"boolean","title":"Session Ended","description":"Whether the session has ended","default":false},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"Token usage statistics"}},"type":"object","required":["response","action","conversation_history"],"title":"MeetingSchedulerResponse","description":"Response model for non-streaming meeting scheduler."},"MeetingActionData":{"properties":{"action":{"type":"string","title":"Action","description":"Action type: send_message, create_event_and_send_message, close_session, send_message_and_close_session"},"chatId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chatid","description":"UUID of the chat"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Message content for send_message actions"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Event title for create_event"},"startTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Starttime","description":"Event start time (ISO 8601 format with timezone)"},"endTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endtime","description":"Event end time (ISO 8601 format with timezone)"},"client_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Email","description":"Client's email address for calendar invite"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Event description"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"IANA timezone (e.g., 'Australia/Sydney')"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location","description":"Event location"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content","description":"Message to send after event creation"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"Meeting date for create_event (deprecated, use startTime/endTime)"},"duration_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Minutes","description":"Meeting duration (deprecated, use startTime/endTime)"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason for close_session"}},"type":"object","required":["action"],"title":"MeetingActionData","description":"Action data returned by the meeting scheduler."},"ActionResult":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the action succeeded"},"action":{"type":"string","title":"Action","description":"The action type that was executed"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if action failed"},"messageId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Messageid","description":"ID of the sent message"},"eventId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eventid","description":"ID of the created event"},"meetLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meetlink","description":"Google Meet link for the event"},"suggestedTimes":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Suggestedtimes","description":"Alternative time slots if broker is unavailable"},"sessionId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sessionid","description":"ID of the closed session"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Additional metadata"}},"type":"object","required":["success","action"],"title":"ActionResult","description":"Result from executing an action."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"paths":{"/meeting-scheduler/":{"post":{"tags":["Meeting Scheduler"],"summary":"Meeting Scheduler Endpoint","description":"Non-streaming meeting scheduler endpoint.\n\nReturns the complete response in a single JSON object including:\n- response: The message to display to the user\n- action: The action type and data (send_message, create_event, close_session)\n- action_result: Result of executing the action\n- session_ended: Whether the conversation should end","operationId":"meeting_scheduler_endpoint_meeting_scheduler__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingSchedulerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeetingSchedulerResponse"}}}},"401":{"description":"Missing or invalid service bearer token, or missing downstream jwt_token in the request body.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"500":{"description":"Handler failed","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}},"503":{"description":"AI features temporarily disabled","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}},"required":["detail"]}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.scaleconnect.com.au/api/rest-api/scaleai-rest-api/meeting-scheduler.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
