Ver categorias

Como Criar um Agendamento Via API

7 minutos de leitura

Criar um Agendamento Via API eAgenda

Resumo #

A API da plataforma eAgenda permite criar um agendamento de forma programática, configurando detalhes como agenda, serviços, participantes e horários. Este guia prático detalha como enviar uma requisição HTTP POST para o endpoint /api/v3/appointments/ e processar a resposta. Para mais detalhes, consulte a documentação oficial da API da eAgenda.

Preparação do Ambiente #

Antes de começar, você precisará:

  • Chave de API: Acesse o painel da eAgenda para obter seu token Bearer.
  • Ferramenta para requisições HTTP: Use cURL, Postman ou bibliotecas como requests (Python) ou axios (JavaScript).
  • Configuração do cabeçalho: A autenticação é feita via Bearer Token. Configure o cabeçalho Authorization: Bearer <seu-token> e defina Content-Type: application/json.

Dica: Consulte a seção de autenticação na documentação da API para configurar o token corretamente: https://eagenda.com.br/api/v3/documents/#overview.

Definição dos Dados do Agendamento #

Para criar um agendamento, envie um objeto JSON no corpo da requisição com os seguintes campos:

{
  "status": "string",
  "calendar_key": "uuid",
  "service_list": [
    {
      "service_key": "uuid"
    }
  ],
  "tag_list": [
    {
      "tag_key": "uuid"
    }
  ],
  "owner_user": {
    "email": "email"
  },
  "attendees": [
    {
      "name": "string",
      "email": "email",
      "phone": "string",
      "identification_code": "string",
      "identification_type": "string"
    }
  ],
  "start": {
    "dateTime": "date-time"
  },
  "description": "string",
  "verify_limits": boolean,
  "send_email": boolean,
  "include_flows": boolean,
  "account_slug": "string"
}

status (opcional) #

  • Descrição: Status inicial do agendamento.
  • Valores possíveis: ATTENDED, CANCELED, CANCELED_CLIENT, CANCELED_GOOGLE, CONFIRMED, IN_PROGRESS, NO_SHOW, PENDING, PENDING_COMPANIONS, PENDING_FORM, PENDING_PAYMENT.
  • Impacto: Define o estado do agendamento; padrão é PENDING se não informado.
  • Exemplo: “PENDING”

calendar_key (obrigatório) #

  • Descrição: Chave UUID da agenda.
  • Impacto: Vincula o agendamento a uma agenda específica.
  • Como obter: Use o endpoint de listagem de agendas (/api/v3/calendars/).
  • Exemplo: “1973125a-ab10-4000-8674-eef17b31e080”

service_list (opcional) #

  • Descrição: Lista de serviços associados ao agendamento.
  • Estrutura: Array de objetos, cada um com service_key (UUID).
  • Como obter: Use o endpoint de listagem de serviços (/api/v3/services/).
  • Impacto: Especifica os serviços a serem realizados.
  • Exemplo:[ { "service_key": "19730681-2aa0-4000-84b6-2bc54b4ace01" } ]

tag_list (opcional) #

  • Descrição: Lista de tags associadas ao agendamento.
  • Estrutura: Array de objetos, cada um com tag_key (UUID).
  • Como obter: Use o endpoint de listagem de tags.
  • Impacto: Permite categorizar o agendamento.
  • Exemplo:[ { "tag_key": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } ]

owner_user (opcional) #

  • Descrição: Usuário responsável pelo agendamento.
  • Estrutura: Objeto com email.
  • Impacto: Vincula o agendamento a um responsável.
  • Exemplo:{ "email": "responsavel@example.com" }

attendees (obrigatório) #

  • Descrição: Lista de participantes do agendamento.
  • Estrutura: Array de objetos, cada um com:
    • name (obrigatório): Nome do participante (1 a 200 caracteres).
    • email (opcional): E-mail do participante.
    • phone (opcional): Telefone no formato E.164.
    • identification_code (opcional): Documento de identificação.
    • identification_type (opcional): Tipo de documento (ex.: br_cpf, ar_dni).
  • Impacto: Define quem participará do agendamento.
  • Exemplo:[ { "name": "João Silva", "email": "joao.silva@example.com", "phone": "+5511999999999", "identification_code": "123.456.789-00", "identification_type": "br_cpf" } ]

start (obrigatório) #

  • Descrição: Data e hora de início do agendamento.
  • Estrutura: Objeto com dateTime (formato ISO 8601).
  • Impacto: Define o horário do agendamento.
  • Exemplo:{ "dateTime": "2025-06-01T10:00:00Z" }

description (opcional) #

  • Descrição: Descrição do agendamento.
  • Restrições: Mínimo de 1 caractere.
  • Impacto: Adiciona informações contextuais.
  • Exemplo: “Consulta de rotina”

verify_limits (opcional) #

  • Descrição: Verifica os limites de agendamento configurados.
  • Impacto: Garante conformidade com as regras da agenda se true.
  • Exemplo: true

send_email (opcional) #

  • Descrição: Envia e-mail de confirmação do agendamento.
  • Impacto: Notifica os participantes se true.
  • Exemplo: false

include_flows (opcional) #

  • Descrição: Inclui o agendamento nas regras de notificação (se status for CONFIRMED).
  • Impacto: Ativa fluxos de notificação se true.
  • Exemplo: false

account_slug (opcional) #

  • Descrição: Slug da conta ou subconta.
  • Restrições: Mínimo de 1 caractere, padrão ^[-a-zA-Z0-9_]+$.
  • Como obter: Use o endpoint de listagem de contas.
  • Impacto: Vincula o agendamento a uma conta específica.
  • Exemplo: “minha-conta”

Nota: Os campos obrigatórios são calendar_key, attendees e start. Os demais são opcionais, mas recomendados para maior controle.

Exemplo Básico:

{
  "status": "PENDING",
  "calendar_key": "1973125a-ab10-4000-8674-eef17b31e080",
  "attendees": [
    {
      "name": "João Silva",
      "email": "joao.silva@example.com"
    }
  ],
  "start": {
    "dateTime": "2025-06-01T10:00:00Z"
  }
}

Envio da Requisição para Criar um Agendamento #

Para criar um agendamento, envie uma requisição HTTP POST para o endpoint:

https://eagenda.com.br/api/v3/appointments/

Configuração da Requisição #

  • Método: POST
  • Cabeçalhos:
    • accept: application/json
    • Authorization: Bearer <seu-token>
    • Content-Type: application/json
  • Corpo da requisição: JSON com os dados do agendamento.

Exemplo de Requisição com cURL #

curl -X POST https://eagenda.com.br/api/v3/appointments/ \
-H "accept: application/json" \
-H "Authorization: Bearer ba08ab41bd58e9b9f82b4d2788b3cd9999ee9999" \
-H "Content-Type: application/json" \
-d '{
  "status": "PENDING",
  "calendar_key": "1973125a-ab10-4000-8674-eef17b31e080",
  "attendees": [
    {
      "name": "João Silva",
      "email": "joao.silva@example.com"
    }
  ],
  "start": {
    "dateTime": "2025-06-01T10:00:00Z"
  }
}'

Exemplo em Python (usando requests) #

import requests

url = "https://eagenda.com.br/api/v3/appointments/"
headers = {
    "accept": "application/json",
    "Authorization": "Bearer ba08ab41bd58e9b9f82b4d2788b3cd9999ee9999",
    "Content-Type": "application/json"
}
data = {
    "status": "PENDING",
    "calendar_key": "1973125a-ab10-4000-8674-eef17b31e080",
    "attendees": [
        {
            "name": "João Silva",
            "email": "joao.silva@example.com"
        }
    ],
    "start": {
        "dateTime": "2025-06-01T10:00:00Z"
    }
}

response = requests.post(url, json=data, headers=headers)
print(response.status_code)
print(response.json())

Verificação da Resposta #

A API retornará uma resposta com o status da criação do agendamento. Verifique os seguintes pontos:

  • Código de status HTTP:
    • 201 Created: Agendamento criado com sucesso.
    • 400 Bad Request: Erro nos dados enviados (verifique o JSON).
    • 401 Unauthorized: Token inválido ou ausente.
  • Corpo da resposta: Contém detalhes do agendamento criado, como:
{
  "appointment_key": "19730681-29a0-4000-8ddf-025c8f2d1401",
  "search_code": "A001",
  "status": "PENDING",
  "calendar": {
    "calendar_key": "1973125a-ab10-4000-8674-eef17b31e080",
    "calendar_name": "Agenda Principal"
  },
  "service_list": [],
  "tag_list": [],
  "attendees": [
    {
      "person_key": "19730681-29a0-4000-8584-d036c75a2f80",
      "name": "João Silva",
      "email": "joao.silva@example.com",
      "phone": null,
      "identification_code": null,
      "identification_type": null
    }
  ],
  "owner_user": null,
  "start": {
    "dateTime": "2025-06-01T10:00:00Z",
    "timeZone": "UTC"
  },
  "end": {
    "dateTime": "2025-06-01T10:30:00Z",
    "timeZone": "UTC"
  },
  "description": null,
  "questionnaires": [],
  "created_at": {
    "dateTime": "2025-06-01T09:58:00Z",
    "timeZone": "UTC"
  },
  "location": null,
  "conference_data": null,
  "account_slug": null
}

O agendamento será registrado no sistema, respeitando as configurações da agenda e os dados fornecidos. Use o appointment_key para gerenciar o agendamento em outras requisições.

Conclusão #

Com este tutorial, você aprendeu como criar um agendamento via API da eAgenda, configurando participantes, horários e outros detalhes de forma eficiente. Essa integração é ideal para automatizar a criação de agendamentos, otimizando a gestão de compromissos. Para mais funcionalidades, como listagem de horários disponíveis ou edição de agendamentos, consulte a documentação completa da API da eAgenda.

Entre em Contato ou Saiba Mais #

Estamos à disposição para ajudar! Acesse nossos canais oficiais:

📞 WhatsApp Clique aqui para nos enviar uma mensagem
🌐 Plataforma eAgenda Conheça o eAgenda
🏢 Nossa Empresa Mupi Systems – Soluções Inovadoras
📧 E-mail contato@mupisystems.com.br
📚 Tutoriais e Documentação Acesse nossos guias e tutoriais

Desenvolvido por BetterDocs