Meetings
Board meeting scheduling, location, and lifecycle management.
A meeting represents a board meeting with scheduling, location, and lifecycle details. Meetings are scoped to a specific board.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/boards/:boardId/meetings | List meetings |
GET | /api/v1/boards/:boardId/meetings/:meetingId | Get a meeting |
POST | /api/v1/boards/:boardId/meetings | Create a meeting |
PATCH | /api/v1/boards/:boardId/meetings/:meetingId | Update a meeting |
Meeting Object
{
"object": "meeting",
"id": "60d5ec49f1a2c8b1f8e4e1b1",
"boardId": "60d5ec49f1a2c8b1f8e4e1a1",
"title": "Q2 Board Review",
"status": "scheduled",
"locationType": "virtual",
"location": null,
"virtualMeetingUrl": "https://zoom.us/j/123456789",
"startTime": "2025-07-15T14:00:00.000Z",
"endTime": "2025-07-15T16:00:00.000Z",
"createdByUserId": "507f1f77bcf86cd799439011",
"createdAt": "2025-06-01T10:00:00.000Z",
"updatedAt": "2025-06-10T09:30:00.000Z"
}Fields
| Field | Type | Description |
|---|---|---|
object | "meeting" | Always "meeting" |
id | string | Opaque meeting ID |
boardId | string | The board this meeting belongs to |
title | string | Meeting title |
status | string | Lifecycle status: draft, scheduled, in_progress, completed. A draft is private to its creator — see Draft privacy |
locationType | string | null | virtual, in_person, or hybrid |
location | string | null | Physical location address |
virtualMeetingUrl | string | null | URL for the virtual meeting |
startTime | string | null | Scheduled start time (ISO-8601) |
endTime | string | null | Scheduled end time (ISO-8601) |
createdByUserId | string | ID of the user who created the meeting |
createdAt | string | ISO-8601 timestamp |
updatedAt | string | ISO-8601 timestamp |
List Meetings
GET /api/v1/boards/:boardId/meetingsSupports filtering by status, startAfter, and startBefore. See Pagination, Filtering & Sorting.
Other members' draft meetings are omitted — see Draft privacy.
Example
curl -s "https://app.imboard.ai/api/v1/boards/BOARD_ID/meetings?status=scheduled&order=asc" \
-H "Authorization: Bearer imb_pat_YOUR_TOKEN" | jqGet a Meeting
GET /api/v1/boards/:boardId/meetings/:meetingIdA draft meeting is private to its creator; any other caller receives 404.
Create a Meeting
See Create & Update Meeting guide.
Update a Meeting
See Create & Update Meeting guide.
A draft meeting can only be updated by its creator; any other caller receives 404 and the
meeting is left unchanged.
Draft privacy
A meeting with status draft is private to the member who created it — the status means
"Private draft - only visible to you", and the API enforces that:
- List omits other members' drafts, so
status=draftreturns only your own. GETandPATCHof another member's draft return404, as do that meeting's slot and action-item routes. The API does not confirm that a draft you cannot see exists.- Only the creator can move a meeting into
draft; another member attempting it gets403. - A board access token has no user identity, so it sees no drafts at all.
Every other status is visible to all board members.