Messages
Send Event
Creates an event (meeting/calendar) with date, location and reminder
POST
Send Event
Auth:
Error envelope:
TokenAccount or TokenInstance • Rate-limit: Global (100/min) • Idempotent: no
Description
Sends an event message (meeting/calendar card) to a 1-to-1 contact or, more commonly, a group (@g.us). The startAt and endAt fields accept ISO 8601 (RFC3339) timestamps with timezone (e.g. 2026-04-28T14:00:00-03:00) and are converted to Unix seconds internally. The event can optionally include description, location, joinLink, a reminder (hasReminder + reminderOffsetSec) and flags like isScheduleCall and extraGuestsAllowed. Supports delay, replyTo and replyPrivate.
Examples
Meeting with location and reminder
Creates an event in a group with start and end, a location and a reminder 15 minutes before (reminderOffsetSec: 900).
Scheduled call with link
isScheduleCall: true marks the event as a call and joinLink provides the link to join.
Success response
The returnedcontent is the event name, used to index the message in the history. Keep the messageId to correlate responses (going/not-going) received via webhook.
200 OK
Participant RSVPs don’t arrive synchronously in this response, they flow as events on the configured webhook/WebSocket, referencing the event’s
messageId.Path parameters
Instance name (e.g.,
$Instance_Name).Headers
TokenAccount or TokenInstance.application/jsonRequest body
Destination: phone (
5511999999999) or JID. Events work best in groups (@g.us).Event title shown on the card.
Start date/time in ISO 8601 (RFC3339) with timezone, e.g.
2026-04-28T14:00:00-03:00.End date/time in ISO 8601 (RFC3339). Optional.
Event description/details.
Event location. Fields:
name, address, latitude, longitude (all optional).Link to join (used for scheduled calls).
Marks the event as a scheduled call.
Enables a reminder for the event.
Reminder lead time, in seconds before
startAt (e.g. 900 = 15 min).Allows guests to bring additional people.
Marks the event as canceled.
Time in seconds to wait before sending. During the interval, the server shows the “typing…” indicator to the recipient and triggers “paused” before the actual send.
ID of the message to reply to. The original message must belong to the same instance and be saved in the database.
When
true and replyTo points to a message originating from a group, the event is redirected to the private chat of the original author (keeping the quote).Origin identifier for traceability (e.g.,
crm, support-bot, n8n). Saved on the message record and propagated to webhooks.Notes
startAt/endAtare ISO 8601 (RFC3339) with timezone; the server converts them to Unix seconds.delayis in seconds (not milliseconds);reminderOffsetSecis also in seconds.- Events render best in groups (
@g.us). - RSVPs don’t come back in this call, subscribe to webhook/WebSocket events to receive them referencing the
messageId.
Errors
| HTTP | Internal status | Message |
|---|---|---|
| 400 | , | Instance name is required |
| 400 | , | Invalid request body: <detail> |
| 400 | , | Number is required |
| 400 | , | Name is required |
| 400 | , | startAt is required |
| 400 | invalid_request | Invalid startAt, expected ISO 8601 (RFC3339): <detail> |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 404 | , | Instance not found |
| 500 | send_failed | Failed to send event: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |