Google Calendar
A integração com Google Calendar permite que assistentes verifiquem disponibilidade e criem agendamentos diretamente na conversa, sem que o usuário precise acessar nenhuma outra interface.
Ações Disponíveis
| Ação | Descrição |
|---|---|
CHECK |
Verifica se um horário específico está disponível |
LIST |
Lista os próximos eventos disponíveis |
SCHEDULE |
Cria um novo evento/agendamento |
`CHECK` — Verificar Disponibilidade
Consulta se um determinado horário está livre na agenda:
{
"type": "GOOGLE_CALENDAR",
"subtype": "CHECK",
"start": "dataHoraInicio",
"end": "dataHoraFim",
"calendarId": "id_do_calendario"
}O LLM extrai dataHoraInicio e dataHoraFim da conversa e os parâmetros são substituídos automaticamente.
Resposta retornada:
{
"available": true,
"conflicts": []
}`LIST` — Listar Disponibilidade
Lista os próximos horários disponíveis em um intervalo:
{
"type": "GOOGLE_CALENDAR",
"subtype": "LIST",
"start": "dataInicio",
"end": "dataFim",
"calendarId": "id_do_calendario",
"maxResults": 5
}Resposta retornada:
{
"slots": [
{ "start": "2025-03-10T14:00:00", "end": "2025-03-10T15:00:00" },
{ "start": "2025-03-10T16:00:00", "end": "2025-03-10T17:00:00" }
]
}`SCHEDULE` — Criar Agendamento
Cria um novo evento no calendário:
{
"type": "GOOGLE_CALENDAR",
"subtype": "SCHEDULE",
"title": "tituloEvento",
"description": "descricaoEvento",
"start": "dataHoraInicio",
"end": "dataHoraFim",
"attendees": ["emailParticipante"],
"calendarId": "id_do_calendario"
}O Papel do `${{horario}}`
A variável built-in ${{horario}} insere a data e hora atuais no prompt do assistente. Isso é essencial para que o LLM possa calcular corretamente datas relativas:
CustomPrompt do assistente:
"Referência temporal atual: ${{horario}}
Use esta referência para calcular datas quando o usuário disser:
'amanhã', 'semana que vem', 'próxima segunda', 'daqui 2 dias', etc.
Sempre converta para o formato ISO 8601 antes de chamar o gatilho."Sem ${{horario}}, o LLM pode calcular datas incorretamente pois não sabe a data atual com precisão.
Exemplo Completo: Assistente de Agendamento
Prompt:
Você é uma secretária virtual de consultório.
Seu objetivo é agendar consultas de forma eficiente.
Referência temporal: ${{horario}}
Processo:
1. Pergunte a especialidade desejada
2. Verifique os horários disponíveis (LIST)
3. Apresente até 3 opções ao paciente
4. Confirme nome e e-mail
5. Crie o agendamento (SCHEDULE)
6. Envie confirmação ao pacienteGatilho 1 — Verificar disponibilidade:
{
"name": "verificar_horarios",
"description": "Lista horários disponíveis para consulta. Use após o paciente informar a especialidade desejada e quando quiser agendar.",
"parameters": {
"properties": {
"especialidade": { "type": "string" },
"data_preferencia": { "type": "string", "description": "Data no formato ISO 8601" }
},
"required": ["especialidade"]
},
"action": {
"type": "GOOGLE_CALENDAR",
"subtype": "LIST",
"start": "data_preferencia",
"calendarId": "calendario_$especialidade"
},
"interpretResponse": true
}Gatilho 2 — Criar agendamento:
{
"name": "confirmar_agendamento",
"description": "Cria o agendamento após o paciente confirmar o horário, nome e e-mail. APENAS use quando o paciente confirmar explicitamente.",
"parameters": {
"properties": {
"nome_paciente": { "type": "string" },
"email_paciente": { "type": "string" },
"data_hora": { "type": "string", "description": "ISO 8601" },
"especialidade": { "type": "string" }
},
"required": ["nome_paciente", "data_hora", "especialidade"]
},
"action": {
"type": "GOOGLE_CALENDAR",
"subtype": "SCHEDULE",
"title": "Consulta $especialidade — $nome_paciente",
"attendees": ["email_paciente"],
"start": "data_hora"
},
"interpretResponse": true
}