# Meeting

URL: /business/nouns/meeting · Id: `noun:meeting`

> A Meeting is a scheduled time when Workers and Contacts meet about one or more Things, producing notes, Decisions, and Tasks.

A Meeting is a scheduled time when [Workers](/business/nouns/worker) and [Contacts](/business/nouns/contact) meet about one or more [Things](/business/nouns/thing), producing notes, [Decisions](/business/nouns/decision), and [Tasks](/business/nouns/task).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `at` | `datetime` | Yes | When it starts. |
| `agenda` | `text` | No | What it covers. |
| `transcript` | `text` | No | What was said. |

## Object
```json
{
  "$id": "https://api.sb/ledgerlark.com/meetings/meeting_1",
  "$type": "Meeting",
  "at": "2026-10-22T12:00:00Z",
  "agenda": "Example agenda",
  "transcript": "Example transcript"
}
```

## Relationships
- <a id="rel-advances"></a>A Meeting **advances** one [Deal](/business/nouns/deal): a Meeting moves one [Deal](/business/nouns/deal) forward. `advances`, inverse [`meetings`](/business/nouns/deal#rel-meetings).
- <a id="rel-produces"></a>A Meeting **produces** many [Decisions](/business/nouns/decision): a Meeting records [Decisions](/business/nouns/decision), each with its options, choice and reason. `produces`, inverse [`madeIn`](/business/nouns/decision#rel-made-in).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Meeting.book](/business/nouns/meeting/book) | Book schedules a Meeting with a Contact at a time both calendars hold free. | [Sales Engineer](/agents/sales/sales-engineer) | [`Meeting.booked`](/business/events/Meeting.booked) | None. |
| <a id="create"></a>[Meeting.create](/business/nouns/meeting/create) | Creates a Meeting. Inherited from [Noun](/business/nouns/noun). | None. | `Meeting.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Meeting.get](/business/nouns/meeting/get) | Returns one Meeting by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Meeting.list](/business/nouns/meeting/list) | Returns Meetings, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Meeting.update](/business/nouns/meeting/update) | Changes the given properties of a Meeting. Inherited from [Noun](/business/nouns/noun). | None. | `Meeting.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Meeting.delete](/business/nouns/meeting/delete) | Deletes a Meeting; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Meeting.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Meeting.create` | Yes | Yes | Yes | No |
| `Meeting.get` | Yes | Yes | Yes | Yes |
| `Meeting.list` | Yes | Yes | Yes | Yes |
| `Meeting.update` | Yes | Yes | Yes | No |
| `Meeting.delete` | Yes | Yes | Yes | No |
| `Meeting.book` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Book the latest meeting with a contact.
```

**API**

```bash
curl -X POST https://api.sb/kilnbakery.com/meetings/book \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact":"contact_1","at":"2026-10-22T12:00:00Z"}'
```

```json
{
  "api": "https://api.sb/kilnbakery.com",
  "meeting": {
    "$id": "https://api.sb/kilnbakery.com/meetings/meeting_1",
    "$type": "Meeting",
    "at": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/kilnbakery.com/actions/action_1",
    "operation": "Meeting.book",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/kilnbakery.com/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const meeting = await $.Meeting.book({ contact: 'contact_1', at: '2026-10-22T12:00:00Z' })
```

**CLI**

```bash
npx startup-builder do Meeting.book --json '{"contact":"contact_1","at":"2026-10-22T12:00:00Z"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Meeting.book({ contact: 'contact_1', at: '2026-10-22T12:00:00Z' })"
  }
}
```

## Example
A 30-minute Meeting about a county planning firm's [Deal](/business/nouns/deal) produces a transcript, a [Decision](/business/nouns/decision) to pilot one county, and a Task to send a [Quote](/business/nouns/quote).