Disponibilidade
Consulte horários livres por serviço, data e profissional pela API pública v1 da OctoSolve.
A disponibilidade é uma foto do momento e não reserva nada. A confirmação é o POST /appointments, e 409 slot_conflict significa que o horário foi tomado no meio do caminho.
Disponibilidade
GET /availability é somente leitura. A resposta combina os horários de funcionamento, bloqueios, agenda do profissional, eventos do Google Calendar e agendamentos que existem apenas na OctoSolve.
Parâmetros
| Parâmetro | Obrigatório | Regra |
|---|---|---|
servico_id | Sim | Define a duração e os profissionais candidatos |
data | Sim | Primeiro dia no formato YYYY-MM-DD, no máximo 365 dias à frente |
dias | Não | De 1 a 7, padrão 1 |
profissional_id | Não | Restringe a resposta a um profissional vinculado ao serviço |
Existe um teto de 40 combinações de dia por profissional em cada chamada. O cálculo é dias × profissionais candidatos. Se ultrapassar 40, a API responde 422 validation_error. Reduza dias ou informe um profissional_id.
Resposta
Os campos inicio e fim vêm em UTC e terminam em Z. Use inicio como data_hora ao criar o agendamento e preserve o valor exatamente como veio. Ao exibir o horário para o cliente final, converta para o fuso local, senão no horário de Brasília ele aparece 3 horas adiantado.
Em contas com agenda por profissional, dia fechado é uma resposta normal: o dia aparece com profissionais: []. Isso não é erro nem significa falha de integração.
Contas sem agenda por profissional recebem uma única entrada com profissional_id nulo.
Agenda não conectada ou Google Calendar indisponível
Se nenhuma agenda do Google estiver conectada à conta, a API responde 409 calendar_not_connected. Isso é uma configuração pendente da conta, então repetir a mesma requisição não resolve. Conecte a agenda no painel antes de consultar horários livres.
Se a conta tem uma agenda conectada, mas o Google Calendar não puder ser consultado, a API responde 503 service_unavailable com a mensagem Não foi possível consultar a agenda agora. Tente novamente. Ela não devolve uma lista vazia, porque isso faria uma falha parecer agenda lotada.
Espere e tente novamente com intervalo crescente. Não crie com base numa disponibilidade antiga sem estar preparado para tratar 409 slot_conflict no POST /appointments.
Receita para Make ou n8n
- Receba
servico_id, a primeira data desejada e, se houver escolha,profissional_id. - Faça
GET /availabilitycomdiasentre 1 e 7. - Use um iterador sobre
data.dias, depois sobreprofissionaise por fim sobreslots. - Converta
iniciopara o fuso local ao mostrar ao cliente e guarde o valor completo do slot escolhido. - Envie esse
iniciocomodata_horanoPOST /appointments. - Se receber
409 slot_conflict, volte à consulta de disponibilidade e ofereça outro slot. - Se receber
409 calendar_not_connected, conecte a agenda no painel. Não repita a mesma requisição antes disso. - Se receber
503 service_unavailable, espere e tente novamente. Não trate como ausência de horários. - Se receber o erro do teto de 40 combinações, reduza os dias ou escolha um profissional antes de repetir.