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

# Meeting templates

> List, view, create, update, and delete reusable meeting templates.

A meeting template is a reusable meeting definition. In the API these are the [scheduling-link templates](/api-reference/scheduling-links/list-templates).

## List meeting templates

```bash theme={"system"}
neetocal meeting-templates list
neetocal meeting-templates list --search "onboarding"
```

| Flag           | Type     | Required | Default | Description              |
| -------------- | -------- | -------- | ------- | ------------------------ |
| `--host-email` | `string` |          |         | Filter by host email     |
| `--page`       | `int`    |          | `0`     | Page number              |
| `--page-size`  | `int`    |          | `0`     | Items per page (max 100) |
| `--search`     | `string` |          |         | Search meeting templates |

```json Sample output (--json) theme={"system"}
{
  "data": [
    {
      "id": "cc98d282-4cf6-414d-ba58-53fa94b9bca3",
      "sid": "8r3rs2k",
      "name": "Onboarding call",
      "slug": "onboarding",
      "kind": "one_on_one",
      "duration": 30,
      "disabled": false,
      "spot": "zoom",
      "is_template": true,
      "hosts": [{ "name": "Oliver Smith", "email": "oliver@example.com" }]
    }
  ],
  "pagination": { "total_records": 1, "total_pages": 1, "current_page_number": 1, "page_size": 30 }
}
```

Mirrors [List scheduling-link templates](/api-reference/scheduling-links/list-templates) in the API.

## Show a meeting template

```bash theme={"system"}
neetocal meeting-templates show <id>
```

```json Sample output (--json) theme={"system"}
{
  "data": {
    "id": "cc98d282-4cf6-414d-ba58-53fa94b9bca3",
    "sid": "8r3rs2k",
    "name": "Onboarding call",
    "slug": "onboarding",
    "description": "Schedule an onboarding call.",
    "kind": "one_on_one",
    "duration": 30,
    "disabled": false,
    "spot": "zoom",
    "is_template": true,
    "hosts": [{ "name": "Oliver Smith", "email": "oliver@example.com" }]
  }
}
```

Mirrors [Get scheduling-link template](/api-reference/scheduling-links/get-template) in the API.

## Create a meeting template

```bash theme={"system"}
neetocal meeting-templates create \
  --name "Onboarding call" --slug onboarding \
  --hosts host@example.com --kind one_on_one --spot zoom --duration 30
```

| Flag          | Type     | Required | Default | Description                          |
| ------------- | -------- | -------- | ------- | ------------------------------------ |
| `--duration`  | `int`    |          | `0`     | Meeting duration in minutes          |
| `--hosts`     | `string` |          |         | Comma-separated host emails          |
| `--json-file` | `string` |          |         | Path to JSON file with template data |
| `--kind`      | `string` |          |         | Meeting kind                         |
| `--name`      | `string` |          |         | Template name                        |
| `--slug`      | `string` |          |         | Template slug                        |
| `--spot`      | `string` |          |         | Meeting spot                         |

```json Sample output (--json) theme={"system"}
{
  "data": {
    "message": "Meeting template created successfully.",
    "meeting": {
      "id": "cc98d282-4cf6-414d-ba58-53fa94b9bca3",
      "sid": "8r3rs2k",
      "name": "Onboarding call",
      "slug": "onboarding",
      "kind": "one_on_one",
      "duration": 30,
      "disabled": false,
      "spot": "zoom",
      "is_template": true,
      "hosts": [{ "name": "Oliver Smith", "email": "oliver@example.com" }]
    }
  }
}
```

In `--quiet` mode this prints the new template's identifier.

## Update a meeting template

```bash theme={"system"}
neetocal meeting-templates update <id> --name "Updated onboarding"
```

| Flag          | Type     | Required | Default | Description                          |
| ------------- | -------- | -------- | ------- | ------------------------------------ |
| `--json-file` | `string` |          |         | Path to JSON file with template data |
| `--name`      | `string` |          |         | Template name                        |
| `--slug`      | `string` |          |         | Template slug                        |

```json Sample output (--json) theme={"system"}
{
  "data": {
    "message": "Meeting template updated successfully.",
    "meeting": {
      "id": "cc98d282-4cf6-414d-ba58-53fa94b9bca3",
      "sid": "8r3rs2k",
      "name": "Updated onboarding",
      "slug": "onboarding",
      "kind": "one_on_one",
      "duration": 30,
      "disabled": false,
      "spot": "zoom",
      "is_template": true,
      "hosts": [{ "name": "Oliver Smith", "email": "oliver@example.com" }]
    }
  }
}
```

Only the fields you pass are changed.

## Delete a meeting template

```bash theme={"system"}
neetocal meeting-templates delete <id>
```

```text Sample output theme={"system"}
Meeting template deleted successfully.
```

In `--quiet` mode this prints `success`. Mirrors [Delete scheduling-link template](/api-reference/scheduling-links/delete-template) in the API.
