> For the complete documentation index, see [llms.txt](https://docs.sprinthub.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sprinthub.com/topicos/api/como-agendar-uma-reuniao-via-api.md).

# Como Agendar uma Reunião via API

Este artigo explica como utilizar o endpoint público `/calendarmeeting` da API SprintHub para agendar reuniões automaticamente com base em um calendário criado na plataforma.

***

#### ✅ Visão Geral

O endpoint `/calendarmeeting` permite agendar reuniões diretamente em um link de calendário, usando dados de um lead já existente ou criando um novo lead automaticamente com os dados enviados.

> 📌 **Este endpoint é público.** Não exige autenticação (`apitoken` ou `Authorization`) — mas requer que a chamada seja feita dentro do contexto correto da instância.

```
POST https://sprinthub-api-master.sprinthub.app/calendarmeeting?i=nome_da_instancia

```

#### 🔑 Parâmetros obrigatórios

| Parâmetro | Tipo   | Onde vai | Descrição                                        |
| --------- | ------ | -------- | ------------------------------------------------ |
| `i`       | string | query    | Nome da instância (ex: `suporte`)                |
| `keyName` | string | body     | ID do calendário, obtido na URL pública do link  |
| `date`    | string | body     | Data e hora da reunião no formato ISO 8601 (UTC) |

#### 🧾 Estrutura do Body

**🔹 Opção 1 – Agendar criando um novo lead**

```json
{
  "keyName": "TGcbitBqLjqmmp5tRzlX3",
  "leadId": null,
  "opportunityId": null,
  "date": "2025-06-27T15:30:00.000Z",
  "formData": {
    "firstname": "Wanderson Fernandes",
    "email": "emailteste@sprinthub.com"
  },
  "properties": {}
}

```

🔹 Opção 2 – Agendar para um lead já existente

```json
{
  "keyName": "TGcbitBqLjqmmp5tRzlX3",
  "leadId": 2222,
  "opportunityId": null,
  "date": "2025-06-27T15:30:00.000Z",
  "formData": {},
  "properties": {}
}

```

❗ Quando `leadId` for informado, **não envie o `formData`** para evitar conflitos.

#### 🧠 Observações importantes

* **`leadId`** deve ser um lead válido da mesma instância.
* **`formData`** é obrigatório **somente quando `leadId` for `null`** (será usado para criar o lead).
* **`properties`** pode permanecer como `{}`. É utilizado apenas para reagendamentos ou dados adicionais em chamadas mais avançadas.
* A data e hora devem estar em **UTC** (ex: `2025-06-27T15:30:00.000Z`).
* O link do calendário precisa estar **ativo e com horários disponíveis**.

#### 📌 Onde encontrar o `keyName`

Acesse seu link público de agendamento. Exemplo:

```
https://instancia.sprinthub.app/calendar/TGcbitBqLjqmmp5tRzlX3

```

O trecho final da URL é o `keyName`:

```json
TGcbitBqLjqmmp5tRzlX3
```

#### 💥 Erros comuns

| Código  | Significado                                                          |
| ------- | -------------------------------------------------------------------- |
| `CL006` | O `keyName` não pertence à instância informada ou não está ativo.    |
| `CL008` | O `leadId` não existe ou não pertence à instância correta.           |
| `400`   | Dados ausentes ou mal formatados (ex: `null` como string: `"null"`). |

exemplo de requisição:

```
curl -X POST "https://sprinthub-api-master.sprinthub.app/calendarmeeting?i=instancia" \
  -H "Content-Type: application/json" \
  -d '{
    "keyName": "TGcbitBqLjqmmp5tRzlX3",
    "leadId": null,
    "opportunityId": null,
    "date": "2025-06-27T15:30:00.000Z",
    "formData": {
      "firstname": "Wanderson Fernandes",
      "email": "emailteste@sprinthub.com"
    },
    "properties": {}
  }'

```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sprinthub.com/topicos/api/como-agendar-uma-reuniao-via-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
