Create meeting agent
Send a Read AI meeting agent (bot) to a video conferencing meeting on behalf of the authenticated user. This creates a new Read AI meeting ID and the agent will attempt to join the meeting to record & transcribe it for the user. When to call this tool ---------------------- Call this tool when: - The user explicitly asks for an agent to "join", "record", "capture," "send a bot to", or "take notes on" a specific meeting they identify on their calendar, by providing a meeting link, or specifying a video conferencing platform with a meeting ID and optional password. - The meeting is on a supported platform (Zoom, Google Meet, Microsoft Teams) Do NOT call this tool: - For meetings the user has not explicitly authorized an agent to join. - To join arbitrary or guessed meeting IDs. - If a user wants to record using a desktop or mobile client. Those are available from Read AI's website (https://read.ai) and can be used separately. Parameters ---------- meeting_url : str Meeting URL that can be used to join the meeting. If provided, the meeting_platform and meeting_id will be extracted from the URL and those additional parameters are not required. meeting_platform : str The video conferencing platform for the meeting. Must be one of: - "zoom" (Zoom) - "meet" (Google Meet) - "teams" (Microsoft Teams) If a meeting_url is provided, this parameter is not required. meeting_id : str The platform-specific meeting identifier (e.g. a Zoom meeting number, a Google Meet meeting code like "abc-defg-hij", a Teams meeting ID, etc.). Provide the raw ID as it would appear in the meeting URL. If a meeting_url is provided, this parameter is not required. meeting_password : Optional[str] Optional passcode/password for the meeting, if one is required. Omit if the meeting does not require a password or if a meeting_url is provided. start_time : Optional[datetime] Optional start time to stamp on the created meeting, in ISO 8601 format (e.g. "2026-05-21T15:00:00" or "2026-05-21T15:00:00Z"). If omitted, the meeting is stamped with the current time at creation and an agent is dispatched immediately to join the meeting. If a time in the future is specified, the agent will join the meeting at the specified time. title : Optional[str] Optional human-readable title to stamp on the created meeting (e.g. "Q3 Planning Sync"). If omitted, the meeting is given a generic platform-derived default such as "Zoom Meeting" or "Meet Meeting". Only set this when the user has provided or clearly implied a title; do not invent one. Returns ------- str The ULID for the newly created (or matched existing) Read AI meeting that the the meeting recording agent has been dispatched for. This meeting ID can be passed to other tools such as `get_meeting_by_id` once the meeting has progressed far enough to have data available. Behavior and edge cases ----------------------- - Authentication: - Access token is handled internally; do not supply user IDs or tokens. - If missing or invalid, the tool fails with errors such as: - "Unauthorized: No access token provided" - "Invalid token: No subject in access token claims". - Validation: - `meeting_id` is required and must be non-empty if a meeting_url is not provided. - If the platform / meeting combination is unsupported or the agent cannot be deployed (e.g. mobile/desktop platforms, or missing required platform integrations), the tool will fail with an error. - Idempotency: - This tool is idempotent. If an entry for the same meeting already exists in an active state, the system may return the existing meeting ID instead of creating a new one. - Side effects: - An agent may join the live meeting and a new meeting ID is created in Read AI. Usage examples for agents ------------------------- 1) User: "Have Read AI record my Zoom meeting 1234567890." -> Call: { "meeting_platform": "zoom", "meeting_id": "1234567890" } 2) User: "Send the Read AI bot to my Google Meet abc-defg-hij." -> Call: { "meeting_platform": "meet", "meeting_id": "abc-defg-hij" } 3) User: "Join my Zoom 9876543210 with passcode hunter2." -> Call: { "meeting_platform": "zoom", "meeting_id": "9876543210", "meeting_password": "hunter2" } 4) User: "Join my meeting now: https://meet.google.com/abc-defg-hij" -> Call: { "meeting_url": "https://meet.google.com/abc-defg-hij" } 5) User: "Join my meeting at 2026-05-21T15:00:00Z: https://meet.google.com/abc-defg-hij" -> Call: { "meeting_url": "https://meet.google.com/abc-defg-hij", "start_time": "2026-05-21T15:00:00Z" } 6) User: "Join my Zoom 1234567890 and call it 'Q3 Planning Sync'." -> Call: { "meeting_platform": "zoom", "meeting_id": "1234567890", "title": "Q3 Planning Sync" }