Pular para o conteúdo principal
POST
/
api
/
message
/
event
/
:instance
Enviar Evento
curl --request POST \
  --url https://api.example.com/api/message/event/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "number": "<string>",
  "name": "<string>",
  "startAt": "<string>",
  "endAt": "<string>",
  "description": "<string>",
  "location": {},
  "joinLink": "<string>",
  "isScheduleCall": true,
  "hasReminder": true,
  "reminderOffsetSec": 123,
  "extraGuestsAllowed": true,
  "isCanceled": true,
  "delay": 123,
  "replyTo": "<string>",
  "replyPrivate": true,
  "source": "<string>"
}
'
Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: não

Descrição

Envia uma mensagem de evento (card de reunião/agenda) a um contato 1-a-1 ou, mais comumente, a um grupo (@g.us). Os campos startAt e endAt aceitam datas no formato ISO 8601 (RFC3339) com fuso horário (ex.: 2026-04-28T14:00:00-03:00) e são convertidos para Unix (segundos) internamente. Opcionalmente o evento pode incluir description, location, joinLink, lembrete (hasReminder + reminderOffsetSec) e flags como isScheduleCall e extraGuestsAllowed. Suporta delay, replyTo e replyPrivate.

Exemplos

Reunião com local e lembrete

Cria um evento em um grupo com início e fim, local e um lembrete 15 minutos antes (reminderOffsetSec: 900).
curl -X POST "https://ryzeapi.cloud/api/message/event/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":      "120363312345678901@g.us",
    "name":        "Reunião do time",
    "description": "Planejamento do trimestre",
    "startAt":     "2026-04-28T14:00:00-03:00",
    "endAt":       "2026-04-28T16:00:00-03:00",
    "location":    { "name": "Sala 3, Sede", "address": "Av. Paulista, 1000" },
    "hasReminder":       true,
    "reminderOffsetSec": 900
  }'
isScheduleCall: true marca o evento como uma chamada e joinLink informa o link para entrar.
curl -X POST "https://ryzeapi.cloud/api/message/event/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":         "120363312345678901@g.us",
    "name":           "Daily da equipe",
    "startAt":        "2026-05-04T09:00:00-03:00",
    "isScheduleCall": true,
    "joinLink":       "https://meet.example.com/daily"
  }'

Resposta de sucesso

O content retornado é o nome do evento, usado para indexar a mensagem no histórico. Guarde o messageId para correlacionar respostas (going/not-going) recebidas via webhook.
200 OK
{
  "success": true,
  "message": "Event sent successfully",
  "status":  "sent",
  "data": {
    "messageId":   "3EB08FCF27E532F1D3D3",
    "direction":   "sent",
    "messageType": "event",
    "content":     "Reunião do time",
    "source":      "api",
    "timestamp":   "2026-04-28T14:30:00Z",
    "chat": {
      "jid":     "120363312345678901@g.us",
      "isGroup": true
    },
    "sender": {
      "jid":      "5511777777777@s.whatsapp.net",
      "instance": "minha-instancia"
    }
  }
}
As confirmações de presença dos participantes não chegam síncronamente nesta resposta, elas trafegam como eventos no webhook/WebSocket configurado, referenciando o messageId do evento.

Parâmetros de rota

instance
string
obrigatório
Nome da instância (ex.: $Instance_Name).

Headers

token
string
obrigatório
TokenAccount ou TokenInstance.
Content-Type
string
obrigatório
application/json

Request body

number
string
obrigatório
Destino: telefone (5511999999999) ou JID. Eventos funcionam melhor em grupos (@g.us).
name
string
obrigatório
Título do evento exibido no card.
startAt
string
obrigatório
Data/hora de início no formato ISO 8601 (RFC3339) com fuso, ex.: 2026-04-28T14:00:00-03:00.
endAt
string
Data/hora de término no formato ISO 8601 (RFC3339). Opcional.
description
string
Descrição/detalhes do evento.
location
object
Local do evento. Campos: name, address, latitude, longitude (todos opcionais).
Link para entrar (usado em chamadas agendadas).
isScheduleCall
boolean
padrão:"false"
Marca o evento como uma chamada agendada.
hasReminder
boolean
padrão:"false"
Habilita um lembrete para o evento.
reminderOffsetSec
int
padrão:"0"
Antecedência do lembrete, em segundos antes do startAt (ex.: 900 = 15 min).
extraGuestsAllowed
boolean
padrão:"false"
Permite que convidados tragam acompanhantes.
isCanceled
boolean
padrão:"false"
Marca o evento como cancelado.
delay
int
padrão:"0"
Tempo em segundos para aguardar antes de enviar. Durante o intervalo, o servidor envia o indicador de “digitando…” ao destinatário e dispara o “paused” antes do envio real.
replyTo
string
ID da mensagem a ser citada (reply). A mensagem original precisa pertencer à mesma instância e ter sido salva no banco.
replyPrivate
boolean
padrão:"false"
Quando true e replyTo aponta para uma mensagem originária de um grupo, o evento é redirecionado para o privado do autor original (mantendo a citação).
source
string
padrão:"api"
Identificador de origem para rastreabilidade (ex.: crm, bot-suporte, n8n). Salvo no registro da mensagem e propagado para webhooks.

Notas

  • startAt/endAt são ISO 8601 (RFC3339) com fuso horário; o servidor converte para Unix (segundos).
  • delay é em segundos (não milissegundos); reminderOffsetSec também é em segundos.
  • Eventos são exibidos melhor em grupos (@g.us).
  • As confirmações de presença não voltam nesta chamada, assine os eventos do webhook/WebSocket para recebê-las referenciando o messageId.

Erros

HTTPStatus internoMensagem
400,Instance name is required
400,Invalid request body: <detalhe>
400,Number is required
400,Name is required
400,startAt is required
400invalid_requestInvalid startAt, expected ISO 8601 (RFC3339): <detalhe>
400invalid_numberInvalid phone number format: <detalhe>
404,Instance not found
500send_failedFailed to send event: <reason>
503disconnectedInstance is not connected to WhatsApp
Envelope de erro:
{
  "success": false,
  "error": { "message": "startAt is required" }
}