Neste tutorial passo a passo, você aprenderá a automatizar a criação de usuários e agendas no eAgenda utilizando sua API REST. Este processo é especialmente útil para:
- Empresas que precisam cadastrar múltiplos usuários de forma programática
- Sistemas de integração que exigem criação automática de agendas
- Desenvolvedores que desejam incorporar o eAgenda em suas aplicações
Tecnologias Utilizáveis
Embora este tutorial utilize Python com a biblioteca requests, você pode adaptar os exemplos para:
- JavaScript/Node.js (com Axios ou Fetch API)
- PHP (com cURL ou Guzzle)
- Java (com HttpURLConnection ou Apache HttpClient)
- C# (com HttpClient)
- Outras linguagens que suportem chamadas HTTP
Pré-requisitos
Antes de começar, você precisará de:
- Acesso à documentação da API (Página com endpoints e exemplos de uso) → Acesse aqui
- Acesso à API do eAgenda (URL base e token de autenticação) → Veja como obter seu token
- Slug da conta (identificador único da sua conta no sistema) → Descubra como obter o slug da sua conta
Passo 1: Criando um Usuário via API
Visão Geral
A criação de usuários é feita através do endpoint /users/ com um POST request. O usuário receberá:
- Um e-mail de confirmação
- Permissões conforme o profile_typeespecificado
- Vinculação automática à conta (account_slug)
Código Python Explicado
import requests
# 1. Configuração inicial
BASE_URL = "https://eagenda.com.br/api/v3"
TOKEN = "seu_token_aqui"  # Substitua pelo seu token real
ACCOUNT_SLUG = "sua_conta"  # Slug da sua conta no eAgenda
# 2. Headers obrigatórios
headers = {
    "Authorization": f"Bearer {TOKEN}",  # Autenticação Bearer Token
    "Content-Type": "application/json"   # Indica que enviamos JSON
}
# 3. Dados do usuário (payload)
user_data = {
    "full_name": "João da Silva",       # Nome completo
    "email": "joao.silva@empresa.com",  # E-mail único
    "password": "SenhaSegura123!",      # Senha forte
    "accounts": [{
        "profile_type": "oper",         # Perfil (oper = operador)
        "is_active": True,              # Usuário ativo
        "account_slug": ACCOUNT_SLUG    # Vincula à conta
    }]
}
# 4. Função para enviar a requisição
def criar_usuario():
    try:
        response = requests.post(
            f"{BASE_URL}/users/",
            headers=headers,
            json=user_data
        )
        if response.status_code == 201:
            print("✅ Usuário criado com sucesso!")
            print("Detalhes:", response.json())
        else:
            print(f"❌ Erro {response.status_code}: {response.text}")
    except Exception as e:
        print(f"⚠️ Falha na requisição: {e}")
# Executa
if __name__ == "__main__":
    criar_usuario()Possíveis Respostas da API
| Status Code | Significado | 
|---|---|
| 201 Created | Usuário criado com sucesso | 
| 400 Bad Request | Dados inválidos (ex: e-mail já existe) | 
| 401 Unauthorized | Token inválido ou expirado | 
Passo 2: Criando uma Agenda para o Usuário
Visão Geral
Após criar o usuário, associamos uma agenda a ele usando o endpoint /calendars/. A agenda define:
- Horários de funcionamento (dias e horários disponíveis)
- Configurações de agendamento (durações, limites)
- Vinculação ao usuário responsável (via owner_user)
Código Python Detalhado
import requests
# 1. Configuração inicial da API
BASE_URL = "https://eagenda.com.br/api/v3"
TOKEN = "seu_token_aqui"  # Substitua pelo seu token real
ACCOUNT_SLUG = "sua_conta"  # Slug da sua conta no eAgenda
# 2. Headers obrigatórios
headers = {
    "Authorization": f"Bearer {TOKEN}",  # Autenticação Bearer Token
    "Content-Type": "application/json"   # Indica que enviamos JSON
}
# 3. Dados da agenda (payload)
calendar_data = {
    "calendar_name": "Agenda Dr.João",  # Nome da agenda
    "slug": "drjoao",         # Identificador único
    "is_internal": False,                  # Indica se é uma agenda interna
    "time_config": {
        "opening_hours": [  # Horário de funcionamento
            {"week_day": "1", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Segunda-feira
            {"week_day": "2", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Terça-feira
            {"week_day": "3", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Quarta-feira
            {"week_day": "4", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1},  # Quinta-feira
            {"week_day": "5", "opening_time": "09:00", "closing_time": "18:00", "max_people": 1}   # Sexta-feira
        ],
        "slot_interval": "30",  # Granularidade entre os horários
        "duration": "30",       # Duração padrão de 30 minutos por consulta
        "minimum_notice": 1,      # Agendamento com no mínimo 1 hora de antecedência
        "maximum_notice": 30      # Agendamento com no máximo 30 dias de antecedência
    },
    "online_meeting_platform": "meet",  # Plataforma para reuniões online (Google Meet)
    "max_people": 1,                      # Número máximo de participantes
    "request_email": True,                # Solicitar e-mail do cliente
    "email_required": True,               # E-mail obrigatório
    "request_phone": True,                # Solicitar telefone do cliente
    "phone_required": True,               # Telefone obrigatório
    "appointment_mode": "online",        # Modo de atendimento (online)
    "owner_user": "email10@exemplo.com", # Proprietário da agenda
    "account_slug": ACCOUNT_SLUG           # Conta vinculada à agenda
}
# 4. Função para criar a agenda
def criar_agenda():
    try:
        # Faz a requisição POST para criar a agenda
        response = requests.post(
            f"{BASE_URL}/calendars/",
            headers=headers,
            json=calendar_data
        )
        
        # Verifica se a requisição foi bem-sucedida
        if response.status_code == 201:
            print("✅ Agenda criada com sucesso!")
            print("Detalhes:", response.json())
        else:
            print(f"❌ Erro {response.status_code}: {response.text}")
            
    except Exception as e:
        print(f"⚠️ Falha na requisição: {e}")
# 5. Executa a criação da agenda
if __name__ == "__main__":
    criar_agenda()
Campos Importantes da Agenda
| Campo | Descrição | Exemplo | 
|---|---|---|
| business_hours | Define dias/horários de trabalho | [{week_day: "1", opening_time: "09:00"}] | 
| slot_interval | Intervalo entre agendamentos (minutos) | "30" | 
| owner_user | E-mail do usuário responsável | "joao@empresa.com" | 
| online_meeting_platform | Plataforma para reuniões | "meet"(Google Meet) | 
Conclusão e Próximos Passos
O que Aprendemos?
✔ Criar usuários programaticamente
✔ Criar e associar agendas a usuários existentes
✔ Configurar horários e regras de agendamento
O que Mais Podemos Fazer?
- Adicionar serviços à agenda (/services/)
- Listar agendamentos existentes (/appointments/)
Dúvidas ou Problemas?
Entre em contato com o suporte:
📧 suporte@mupisystems.com.br
Gostou deste tutorial? Deixe seu feedback! 😊