Invite Callback
Read as MarkdownDescription #
Once a Smart Invite has been created and sent to the recipients you will be able to receive notifications relating to it. These notifications will be sent as HTTP POST requests to the callback_url specified when the Smart Invite was created.
Example callback #
POST {CALLBACK_URL_PATH} HTTP/1.1
Host: {CALLBACK_URL_HOST}
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}
{
"notification": {
"type": "smart_invite",
},
"smart_invite": {
"smart_invite_id": "example_id",
"callback_url": "http://www.example.com",
"recipients": [
{
"email": "example@example.com",
"status": "tentative",
"comment": "example comment",
"proposal": {
"start": {
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
},
"end": {
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}
}
},
{
"email": "cronofy@example.org",
"status": "pending"
}
],
"reply": {
"email": "example@example.com",
"status": "tentative",
"comment": "example comment",
"proposal": {
"start": {
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
},
"end": {
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}
}
}
}
}The reply relates to the specific response that triggered the notification.
For other recipients to see the replying recipient’s updated status, they must be sent a new ICS file for the event. This can be retrieved from the Invite Status endpoint.
Notifications for Smart Invites created with the superseded
single recipient
version have a single recipient in place of recipients.
Response parameters #
notification.type #
The type of notification the notification is for.
smart_invite.smart_invite_id #
The smart_invite_id which this notification refers to.
smart_invite.callback_url #
The URL within your application that Cronofy will send notifications to about user interactions with the Smart Invite.
smart_invite.recipients #
An array of the recipients of the Smart Invite, each with the same attributes
as smart_invite.recipient below.
smart_invite.recipient #
Only sent for single recipient Smart Invites.
smart_invite.recipient.email #
The email address of the recipient for the Smart Invite.
smart_invite.recipient.status #
The current status of the recipient. Can be one of:
pendinghave not received any response from the recipientacceptedthe recipient has accepted the invitationtentativethe recipient has tentatively accepted the invitationdeclinedthe recipient has declined the invitation
smart_invite.recipient.comment #
Any comments provided along with the reply.
smart_invite.recipient.proposal #
Details of the counter proposal received as a reply.
smart_invite.recipient.proposal.start #
The proposed start for the event, an object with two attributes, time and tzid:
{
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}The time attribute is the Time or Date at which the event starts. This will be provided with an offset matching that of the corresponding tzid.
The tzid attribute specifies a String representing a known time zone identifier from the IANA Time Zone Database.
Common examples are:
Etc/UTCEurope/ParisAmerica/Chicago
smart_invite.recipient.proposal.end #
The proposed end for the event, an object with two attributes, time and tzid:
{
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}The time attribute is the Time or Date by which the event ends. This will be provided with an offset matching that of the corresponding tzid.
The tzid attribute specifies a String representing a known time zone identifier from the IANA Time Zone Database.
Common examples are:
Etc/UTCEurope/ParisAmerica/Chicago
smart_invite.reply.email #
The email address of the reply for the Smart Invite.
smart_invite.reply.status #
The current status of the reply. Can be one of:
pendinghave not received any response from the replyacceptedthe reply has accepted the invitationtentativethe reply has tentatively accepted the invitationdeclinedthe reply has declined the invitation
smart_invite.reply.comment #
Any comments provided along with the reply.
smart_invite.reply.proposal #
Details of the counter proposal received as a reply.
smart_invite.reply.proposal.start #
The proposed start for the event, an object with two attributes, time and tzid:
{
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}The time attribute is the Time or Date at which the event starts. This will be provided with an offset matching that of the corresponding tzid.
The tzid attribute specifies a String representing a known time zone identifier from the IANA Time Zone Database.
Common examples are:
Etc/UTCEurope/ParisAmerica/Chicago
smart_invite.reply.proposal.end #
The proposed end for the event, an object with two attributes, time and tzid:
{
"time": "2026-10-24T23:00:00+02:00",
"tzid": "Europe/Paris"
}The time attribute is the Time or Date by which the event ends. This will be provided with an offset matching that of the corresponding tzid.
The tzid attribute specifies a String representing a known time zone identifier from the IANA Time Zone Database.
Common examples are:
Etc/UTCEurope/ParisAmerica/Chicago