📅 Event Message
You can send Event Message and receive responses in WhatsApp using API .
Remind clients about their appointments natively:

Features
Here’s the list of features that are available by 🏭 Engines:
📅 Event Message - API
API | WEBJS | NOWEB | GOWS |
---|---|---|---|
Send Event MessagePOST /api/{SESSION}/events | ✔️ |
📅 Event Message - Events
Events | WEBJS | NOWEB | GOWS |
---|---|---|---|
event.response | ✔️ | ||
event.response.failed | ✔️ |
API
Send Event Message
POST /api/{SESSION}/events
{
"chatId": "123123@c.us",
"reply_to": null,
"event": {
"name": "John's Nail Appointment 💅",
"description": "It's time for your nail care session! 🌟\\n\\nYou'll be getting a *classic gel manicure* – clean, polished, and long-lasting. 💖\\n\\n📍 *Location:* Luxe Nail Studio\\nWe're on the *2nd floor of the Plaza Mall*, next to the flower shop. Look for the *pink neon sign*!\\n\\nFeel free to arrive *5–10 mins early* so we can get started on time 😊",
"startTime": 2063137000,
"endTime": null,
"location": {
"name": "Luxe Nail Studio 💅"
},
"extraGuestsAllowed": false
}
}
Fields:
chatId
- The WhatsApp ID of the chat where you want to send the event message (e.g., “123123@c.us”)event
- Object containing event details:name
- The title of the eventdescription
- Detailed description of the event (supports formatting with \n for newlines and * for bold text)startTime
- Event start time in Unix timestamp format (seconds since epoch)endTime
- Event end time in Unix timestamp format (optional, can be null)location
- (Optional) Object containing location detailsname
- Name of the location
extraGuestsAllowed
- indicating whether additional guests are allowed (true/false)
reply_to
- Message ID to reply to (optional, can be null)
Events
Receive responses for your event using events!
📅 Event Message - Events
Events | WEBJS | NOWEB | GOWS |
---|---|---|---|
event.response | ✔️ | ||
event.response.failed | ✔️ |

event.response
{
"id": "evt_00000000000000000000001",
"session": "default",
"event": "event.response",
"payload": {
"id": "false_11111111111111111@c.us_58BBBBBBBBBBBBBBBBBBBBBBBB",
"timestamp": 1747707858,
"from": "11111111111111111@c.us",
"participant": null,
"fromMe": false,
"eventCreationKey": {
"id": "false_999999999999@c.us_3EBAAAAAAAAAAAAAAAAAAAAAAAAAA",
"to": "me",
"from": "999999999999@c.us",
"fromMe": false
},
"eventResponse": {
"response": "GOING",
"timestampMs": 1747707858429,
"extraGuestCount": 0
},
"source": "app",
"ack": null,
"ackName": "UNKNOWN",
"replyTo": null,
"_data": {...},
}
}
Payload:
- Most of the fields are the same as for
message
andmessage.any
events eventCreationKey
: Information about the original event messageid
: Unique identifier of the original event message- Format
{fromMe}_{chatId}_{messageId}[_{participant}]
) - You need to parse it to get
messageId
and find event that you sent previously,fromMe
andchatId
is from participant, not yours.
- Format
to
: Recipient of the original event message (usually “me”)from
: WhatsApp ID of the sender of the original event messagefromMe
: Boolean indicating if the original event was sent by you
eventResponse
: Details of the user’s response to the eventresponse
: The selected response option:GOING
,NOT_GOING
,MAYBE
timestampMs
: Unix timestamp in milliseconds when the response was madeextraGuestCount
: Number of additional guests the respondent is bringing (0\1
)
source
: Source of the message (usually “app”)ack
: Acknowledgment status codeackName
: Human-readable acknowledgment statusreplyTo
: Reference to a message being replied to (null if not a reply)_data
: Raw data object containing additional information
event.response.failed
Sometimes it happens that we didn’t manager to decrypt the response for the event.
In that case you’ll get event.response.failed
event with eventResponse: null
.
Resend the Event Message one more time if you get this event to get a new response
{
"id": "evt_00000000000000000000001",
"session": "default",
"event": "event.response.failed",
"payload": {
"id": "false_11111111111111111@c.us_58BBBBBBBBBBBBBBBBBBBBBBBB",
"timestamp": 1747707858,
"from": "11111111111111111@c.us",
"participant": null,
"fromMe": false,
"eventCreationKey": {
"id": "false_999999999999@c.us_3EBAAAAAAAAAAAAAAAAAAAAAAAAAA",
"to": "me",
"from": "999999999999@c.us",
"fromMe": false
},
"eventResponse": null, // <=== eventResponse will be null in that case
"source": "app",
"ack": null,
"ackName": "UNKNOWN",
"replyTo": null,
"_data": {...},
}
}
Payload:
- the same as for
event.response
payload, but witheventResponse: null