Omnichannel Event reminders
This feature is a private preview release and should be used with caution. It may contain bugs, and its features and implementation will likely change before it is generally available.
You can notify participants of events in multiple ways.
- Gmail, Microsoft, and Google support calendar popups. See our Events API for an example.
- Nylas can send email and webhook (Slack, Teams, etc.) reminders to participants.
Scopes
The email.send
Nylas scope required.
Webhook notifications
Webhook notifications can send a payload to any URL. Use webhooks to send notifications to providers such as Slack and Teams.
curl --request POST \
--url https://api.nylas.com/events \
--header 'Accept: application/json, application/gzip' \
--header 'Authorization: Bearer <NYLAS_ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"title": "Lets celebrate",
"location": "Roller Rink",
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"busy": true,
"read_only": false,
"conferencing": {
"provider": "Zoom Meeting",
"autocreate": {
"settings": {
"settings": {}
}
}
},
"participants": [{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com"
}
],
"when": {
"start_time": "1627499520",
"end_time": "1630245600"
},
"notifications": [{
"type": "webhook",
"minutes_before_event": "60",
"url": "https://hooks.service.com/services/T01A03EEXDE/B01TBNH532R/HubIZu1zog4oYdFqQ8VUcuiW",
"payload": "{\"text\" : \"Your reminder goes here!\"}"
}]
}'
Email notifications
Message Tracking
Message tracking is not supported for email notifications.
curl --location --request POST 'https://api.nylas.com/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <NYLAS_ACCESS_TOKEN>' \
--data-raw '{
"title": "hello Again",
"location": "Roller Rink",
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"busy": true,
"read_only": false,
"conferencing":{
"provider": "Zoom Meeting",
"autocreate":{
"settings":{
"password": "6789011",
"settings":{
"mute_upon_entry": true
}
}
},
"details": {
"meeting_code": "string",
"password": "string",
"url": "string"
}
},
"participants": [{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com",
"phone_number": "+12223456789"
}],
"description": "Lets celebrate",
"when": {
"start_time": "1627499520",
"end_time": "1630245600"
},
"notifications": [{
"type": "email",
"minutes_before_event": "600", // in minutes
"subject": "Test Event Notification",
"body": "Reminding you about our meeting." //Accepts HTML
}]
}'
Multiple notifications
This feature is a private preview release and should be used with caution. It may contain bugs, and its features and implementation will likely change before it is generally available.
You can add multiple notifications with different types for each event. Participants must have an email.
curl --location --request POST 'https://api.nylas.com/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <NYLAS_ACCESS_TOKEN>' \
--data-raw '{
"title": "hello Again",
"location": "Roller Rink",
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"busy": true,
"read_only": false,
"conferencing":{
"provider": "Zoom Meeting",
"autocreate":{
"settings":{
"password": "6789011",
"settings":{
"mute_upon_entry": true
}
}
},
"details": {
"meeting_code": "string",
"password": "string",
"url": "string"
}
},
"participants": [{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com"
}],
"description": "Lets celebrate",
"when": {
"start_time": "1627499520",
"end_time": "1630245600"
},
"notifications": [
{
"type": "email",
"minutes_before_event": "600", // in minutes
"subject": "Test Event Notification",
"body": "Reminding you about our meeting." //Accepts HTML
},
{
"type": "webhook",
"minutes_before_event": "60",
"url": "https://hooks.service.com/services/T01A03EEXDE/B01TBNH532R/HubIZu1zog4oYdFqQ8VUcuiW",
"payload": "{\"text\" : \"Your reminder goes here!\"}"
}
]
}'
Delete notifications
To remove notifications from an event, send an empty notifications array as a PUT request.
curl --location --request POST 'https://api.nylas.com/events/<EVENT_ID>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <NYLAS_ACCESS_TOKEN>' \
--data-raw '{
"title": "hello Again",
"location": "Roller Rink",
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"busy": true,
"read_only": false,
"conferencing":{
"provider": "Zoom Meeting",
"autocreate":{
"settings":{
"password": "6789011",
"settings":{
"mute_upon_entry": true
}
}
},
"details": {
"meeting_code": "string",
"password": "string",
"url": "string"
}
},
"participants": [{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com"
}],
"description": "Lets celebrate",
"when": {
"start_time": "1627499520",
"end_time": "1630245600"
},
"notifications": []
}'
Notification limitations
- You can't update events after their
end_time
. - You can't update recurring events to use notifications.
- Notifications are only sent for the main event.
- You can only create new reminders up to five minutes before the event starts. Notifications created five minutes before an event starts (or less) might not be sent, and would fail silently.
Video walkthrough
Prefer video? You can watch our LiveStream Coding with Nylas.
More resources
- See our Event API for more examples.
- Read the blog post Send Notifications for Calendar Events Using the Nylas Node SDK.
- Read the blog post How to Send Notifications for Calendar Events Using the Nylas Python SDK.
- Read the blog post How to Send Notifications for Calendar Events Using the Nylas Ruby SDK.