Agendamentos
  • 24 Jul 2025
  • 3 Minutes to read
  • Contributors
  • Dark
    Light

Agendamentos

  • Dark
    Light

Article summary

Campos do agendamento

O agendamento possui os seguintes campos:

  • calendar_id: Id do calendário
  • patient_id: Id do paciente
  • dentist_datum_id: id do dentista
  • title: Título do agendamento
  • description: Descrição do agendamento
  • start_date: Data e hora de início do agendamento
  • end_date: Data e hora final do agendamento
  • status: Status do agendamento
  • phone: Telefone do agendamento

O agendamento possui os seguintes estados:

  • 0: Aberto
  • 1: Atendido
  • 2: Em espera
  • 3: Ausente
  • 4: Anotação
  • 5: Observação
  • 6: Confirmado
  • 7: Cancelado
  • 8: Horário bloqueado, usado para bloqueio de horários na agenda

Listar os agendamentos:

O controller de agendamentos permite listar os agendamentos através da action "index". Isso pode ser usado para encontrar um agendamento que vai ser atualizado.

Exemplo curl:

curl -X GET 'https://max.cfaz.net/api/v1/events' \
  -F 'access_token=0cd675768fev8dab81fe1c1297d56b09' \
  -F 'title_eq=João das Couves' \
  -F 'status=1'

Exemplo com a Gem RestClient:

RestClient.get 'https://max.cfaz.net/api/v1/events',
    {
        'access_token'=> '0cd675768fev8dab81fe1c1297d56b09',
        'title_eq' => 'João das Couves',
        'status' => '1'
    }

Nessa listagem há uma paginação com 8 agendamentos em cada página, ao não especificar a página, por padrão, é retornada a primeira, entretanto essa pode ser especificada adicionando o parâmetro "page" com um valor inteiro maior que 0, retornando então a página em questão. Exemplo com o parâmetro:

curl -X GET 'https://max.cfaz.net/api/v1/events' \
  -F 'access_token=0cd675768fev8dab81fe1c1297d56b09' \
  -F 'title_eq=João das Couves"' \
  -F 'status=1' \
  -F 'page=2'

Criar um agendamento:

O controller de agendamentos permite criar agendamentos acessando a action "create".

Exemplo com curl:

    curl -X POST 'https://max.cfaz.net/api/v1/events' \
        -F 'access_token=0cd675768fev8dab81fe1c1297d56b09' \
        -F 'event[calendar_id]=158' \
        -F 'event[patient_id]=317358' \
        -F 'event[title]=Agendamento pela API' \
        -F 'event[description]=Descrição de teste' \
        -F 'event[start_date]=Thu, 16 Jun 2025 14:00:00.000000000 UTC +00:00' \
        -F 'event[end_date]=Thu, 16 Jun 2025 14:30:00.000000000 UTC +00:00' \
        -F 'event[status]=2' \
        -F 'event[phone]=31 9 1234 5678' \
        -F 'event[dentist_datum_id]=56022'

Exemplo com Gem RestClient

RestClient.post 'https://max.cfaz.net/api/v1/events',
    {
        event: {
            calendar_id: 158,
            patient_id: 317358,
            title: "Agendamento pela API",
            description: "Descrição de teste",
            start_date: "Thu, 16 Jun 2025 14:00:00.000000000 UTC +00:00",
            end_date: "Thu, 16 Jun 2025 14:30:00.000000000 UTC +00:00",
            status: 2,
            phone: "31 9 1234 5678",
            dentist_datum_id: 56022,
        },
        access_token: "0cd675768fev8dab81fe1c1297d56b09",
    }

Atualizar um agendamento

O controller de agendamentos permite atualizar um agendamento acessando a action "update". Para atualizar um agendamento é necessário saber o id do agendamento que deseja atualizar.

Exemplo com CURL:

    curl -X PUT 'https://max.cfaz.net/api/v1/events/{event_id}' \
        -F 'access_token=0cd675768fev8dab81fe1c1297d56b09' \
        -F 'event[title]=Agendamento pela API/Update'

Exemplo com Gem RestClient:

    RestClient.put "https://max.cfaz.net/api/v1/events/{event_id}",
                { event: 
                    {
                        title: "Agendamento pela API/Update" 
                    },
                    access_token: "0cd675768fev8dab81fe1c1297d56b09",
                }

Excluir um agendamento

O controller de agendamentos permite exlcuir um agendamento acessando a action "destroy". Para deletar um agendamento é necessário saber o id do agendamento que deseja excluir.

Exemplo com CURL:

curl -X DELETE 'https://max.cfaz.net/api/v1/events/{event_id}' \
  -F 'access_token=9b6309a4fe550142d34cba2af195ef07'

Exemplo com a Gem RestClient

    RestClient.delete "https://max.cfaz.net/api/v1/event/{patient_id}",
               "authorization" => "Token token=0cd675768fev8dab81fe1c1297d56b09"

Criar um bloqueio

O controller de eventos permite com que você crie um bloqueio de horário, o funcionamento do bloqueio de horários é igual ao de criação um evento com a diferença que o status tem que ser igual a 8.

O bloqueio possui os seguintes campos:

  • calendar_id: Id do calendário
  • title: Motivo do bloqueio
  • start_date: Data e hora de início do bloqueio
  • end_date: Data e hora final do bloqueio
  • status: Status do bloqueio, tem que ser sempre igual a 8

Exemplo com CURL:

curl -X POST 'https://max.cfaz.net/api/v1/events' \
        -F 'access_token=0cd675768fev8dab81fe1c1297d56b09' \
        -F 'event[calendar_id]=158' \
        -F 'event[title]=Bloqueio pela API' \
        -F 'event[start_date]=Thu, 16 Jun 2025 14:00:00.000000000 UTC +00:00' \
        -F 'event[end_date]=Thu, 16 Jun 2025 14:30:00.000000000 UTC +00:00' \
        -F 'event[status]=8'

Exemplo com Gem RestClient

RestClient.post 'https://max.cfaz.net/api/v1/events',
    {
        event: {
            calendar_id: 158,
            title: "Bloqueio pela API",
            start_date: "Thu, 16 Jun 2025 14:00:00.000000000 UTC +00:00",
            end_date: "Thu, 16 Jun 2025 14:30:00.000000000 UTC +00:00",
            status: 8,
        },
        access_token: "0cd675768fev8dab81fe1c1297d56b09"
    }

What's Next