> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Attention: List Recorder Meetings

> List Recorder Meetings. Attention List Recorder Meetings reference includes SDK V2 and CLI requests, input constraints, response fields, and Deepline cost.

List Recorder Meetings.

<Info>
  Tool ID: `attention_list_recorder_meetings`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'attention_list_recorder_meetings',
  {
    "fromDateTime": "2026-01-15T12:00:00Z",
    "toDateTime": "2026-01-15T12:00:00Z"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute attention_list_recorder_meetings --input '{
  "fromDateTime": "2026-01-15T12:00:00Z",
  "toDateTime": "2026-01-15T12:00:00Z"
}' --json
```

## Example response

The static output schema is not detailed enough to generate a reliable example. Use `deepline tools get attention_list_recorder_meetings --json` for the complete live contract.

## Input reference

Returns a cursor-paginated, deduplicated list of calendar meetings for the authenticated organization with the recording status of each meeting and each org participant. One row per calendar event. Intended for bulk export to data warehouses and analytics pipelines. Requires an organization-level API key — user-scoped keys are rejected. ### Window \* `fromDateTime` and `toDateTime` are required and must define a window of at most **90 days**. \* When `upcoming=true`, results are ordered ascending by date; otherwise descending. UUID is used as a stable tiebreaker for same-date meetings. ### Pagination \* Cursor-based. The first page is requested with no `cursor`. The response's `nextCursor` is passed back unchanged on the next call. \* When the response has no `nextCursor`, the iteration has reached the end of the dataset. \* `size` is clamped to a server-side maximum of 200 (default 50). \* See the live schema below for the complete notes.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.fromDateTime` | `string` | Yes | — | Window start (inclusive), ISO 8601 date-time, e.g. `2026-04-01T00:00:00Z`. Format: `date-time`. |
| `payload.toDateTime` | `string` | Yes | — | Window end (inclusive), ISO 8601 date-time. Must be after `fromDateTime` and within 90 days of it. Format: `date-time`. |
| `payload.cursor` | `string` | No | — | Opaque cursor returned by a previous call. Omit on the first page. |
| `payload.size` | `integer` | No | — | Items per page. Defaults to 50. Server-side maximum is 200; values above are clamped. |
| `payload.upcoming` | `boolean` | No | — | When `true`, returns meetings whose start time is in the future (ascending order). Defaults to `false` (past meetings, descending order). |
| `payload.filter` | `object` | No | — | Restrict the dedup pass to meetings involving any of the given user UUIDs. UUIDs not belonging to the authenticated organization are silently dropped; if none survive, an empty page is returned to avoid cross-tenant membership probing. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Returns a cursor-paginated, deduplicated list of calendar meetings for the authenticated organization with the recording status of each meeting and each org participant. One row per calendar event. Intended for bulk export to data warehouses and analytics pipelines. Requires an organization-level API key — user-scoped keys are rejected. ### Window * `fromDateTime` and `toDateTime` are required and must define a window of at most **90 days**. * When `upcoming=true`, results are ordered ascending by date; otherwise descending. UUID is used as a stable tiebreaker for same-date meetings. ### Pagination * Cursor-based. The first page is requested with no `cursor`. The response's `nextCursor` is passed back unchanged on the next call. * When the response has no `nextCursor`, the iteration has reached the end of the dataset. * `size` is clamped to a server-side maximum of 200 (default 50). * For periodic backfills, run a complete iteration per refresh (start each refresh with no `cursor`); rows inserted into the window after an iteration starts are picked up on the next refresh. ### Meeting `status` values Attention's native status taxonomy is returned as-is. Values currently surfaced (non-exhaustive list, subject to additive evolution): `recorded`, `calendar_event_cancelled`, `empty_recording`, `user_override`, `event_not_accepted`, `not_join_internal_team_meetings`, `external_meetings_disabled`, `blacklisted_attendees`, `not_join_when_alone`, `bot_disabled`, `bot_removed`, `waiting_room`, `technical_error`, `no_meeting_link`, `bot_not_scheduled`, `scheduled_future`. Clients should map these codes to their own reporting taxonomy on the consumer side (e.g. dbt models, BI views). ### Field semantics * `uuid` — calendar event UUID (deduplication key). * `conversationUuid` — populated only when a recording exists (`status=recorded`). * `userUuid` / `userName` — the user attributed as the recorder; falls back to the first event participant when no recording exists. * `participants[]` — every org user invited to the event with their per-user status (a user may be `recorded` while another is `not_join_when_alone` on the same meeting). * `statusLabel` — human-readable label resolved server-side, suitable for direct display.",
    "properties": {
      "fromDateTime": {
        "type": "string",
        "description": "Window start (inclusive), ISO 8601 date-time, e.g. `2026-04-01T00:00:00Z`.",
        "format": "date-time"
      },
      "toDateTime": {
        "type": "string",
        "description": "Window end (inclusive), ISO 8601 date-time. Must be after `fromDateTime` and within 90 days of it.",
        "format": "date-time"
      },
      "cursor": {
        "type": "string",
        "description": "Opaque cursor returned by a previous call. Omit on the first page."
      },
      "size": {
        "type": "integer",
        "description": "Items per page. Defaults to 50. Server-side maximum is 200; values above are clamped."
      },
      "upcoming": {
        "type": "boolean",
        "description": "When `true`, returns meetings whose start time is in the future (ascending order). Defaults to `false` (past meetings, descending order)."
      },
      "filter": {
        "type": "object",
        "description": "Restrict the dedup pass to meetings involving any of the given user UUIDs. UUIDs not belonging to the authenticated organization are silently dropped; if none survive, an empty page is returned to avoid cross-tenant membership probing.",
        "properties": {
          "user_id": {
            "type": "array",
            "description": "Restrict the dedup pass to meetings involving any of the given user UUIDs. UUIDs not belonging to the authenticated organization are silently dropped; if none survive, an empty page is returned to avoid cross-tenant membership probing.",
            "items": {
              "type": "string"
            }
          },
          "meeting_type": {
            "type": "string",
            "description": "Restrict results to internal (all org participants) or external meetings.",
            "enum": [
              "internal",
              "external"
            ]
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    "required": [
      "fromDateTime",
      "toDateTime"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.items` | `array` | Yes | — | Page of meetings ordered by date (ascending when upcoming=true, descending otherwise) with UUID as tiebreaker. |
| `result.data.items[].uuid` | `string` | Yes | — | Calendar event UUID. Acts as the deduplication key. |
| `result.data.items[].conversationUuid` | `string` | No | — | Conversation UUID. Populated only when a recording exists (status=recorded). |
| `result.data.items[].summary` | `string` | Yes | — | Meeting title. |
| `result.data.items[].date` | `string` | Yes | — | Meeting start time, ISO 8601. Format: `date-time`. |
| `result.data.items[].userUuid` | `string` | Yes | — | UUID of the user attributed as the recorder. Falls back to the first event participant when no recording exists. |
| `result.data.items[].userName` | `string` | Yes | — | Display name for userUuid. |
| `result.data.items[].status` | `string` | Yes | — | Attention's native status code. Clients map this to their own taxonomy. See the endpoint description for the current set of values. |
| `result.data.items[].statusLabel` | `string` | Yes | — | Human-readable label for the status, resolved server-side. |
| `result.data.items[].participants` | `array` | Yes | — | Every org user invited to the event with their per-user recording status. |
| `result.data.items[].participants[].userUuid` | `string` | Yes | — | — |
| `result.data.items[].participants[].userName` | `string` | Yes | — | — |
| `result.data.items[].participants[].status` | `string` | Yes | — | Per-user status. Same code space as the meeting-level status; can differ from it (e.g. a meeting may be `recorded` while a particular user is `not_join_when_alone`). |
| `result.data.items[].participants[].statusLabel` | `string` | Yes | — | — |
| `result.data.items[].consentLinkUsed` | `boolean` | No | — | Whether the meeting used an Attention consent link. |
| `result.data.items[].consentStatus` | `string` | No | — | consented \| declined \| no\_response, when consentLinkUsed is true (no\_response = a consent link was used but no attendee acted). Null when consentLinkUsed is false (no consent link). |
| `result.data.nextCursor` | `string` | No | — | Opaque cursor for the next page. Absent (or empty) when the iteration has reached the end of the dataset. |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "items": {
            "type": "array",
            "description": "Page of meetings ordered by date (ascending when upcoming=true, descending otherwise) with UUID as tiebreaker.",
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "description": "Calendar event UUID. Acts as the deduplication key."
                },
                "conversationUuid": {
                  "type": "string",
                  "description": "Conversation UUID. Populated only when a recording exists (status=recorded)."
                },
                "summary": {
                  "type": "string",
                  "description": "Meeting title."
                },
                "date": {
                  "type": "string",
                  "description": "Meeting start time, ISO 8601.",
                  "format": "date-time"
                },
                "userUuid": {
                  "type": "string",
                  "description": "UUID of the user attributed as the recorder. Falls back to the first event participant when no recording exists."
                },
                "userName": {
                  "type": "string",
                  "description": "Display name for userUuid."
                },
                "status": {
                  "type": "string",
                  "description": "Attention's native status code. Clients map this to their own taxonomy. See the endpoint description for the current set of values."
                },
                "statusLabel": {
                  "type": "string",
                  "description": "Human-readable label for the status, resolved server-side."
                },
                "participants": {
                  "type": "array",
                  "description": "Every org user invited to the event with their per-user recording status.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "userUuid": {
                        "type": "string"
                      },
                      "userName": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string",
                        "description": "Per-user status. Same code space as the meeting-level status; can differ from it (e.g. a meeting may be `recorded` while a particular user is `not_join_when_alone`)."
                      },
                      "statusLabel": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "userUuid",
                      "userName",
                      "status",
                      "statusLabel"
                    ],
                    "additionalProperties": false
                  }
                },
                "consentLinkUsed": {
                  "type": "boolean",
                  "description": "Whether the meeting used an Attention consent link."
                },
                "consentStatus": {
                  "type": "string",
                  "description": "consented | declined | no_response, when consentLinkUsed is true (no_response = a consent link was used but no attendee acted). Null when consentLinkUsed is false (no consent link)."
                }
              },
              "required": [
                "uuid",
                "summary",
                "date",
                "userUuid",
                "userName",
                "status",
                "statusLabel",
                "participants"
              ],
              "additionalProperties": false
            }
          },
          "nextCursor": {
            "type": "string",
            "description": "Opaque cursor for the next page. Absent (or empty) when the iteration has reached the end of the dataset."
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Attention provider guide](/docs/providers/attention/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.