Automatic Meeting Details
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.
Using one of our integrations, you can automatically add meeting details to events. Events will use the account or organization defaults.
Scopes
- Account with calendar scopes.
Zoom
With our Zoom integration, you can automatically add Zoom meetings to calendar events.
Prerequisites
- You've gone through the steps for Zoom Integration
- If you prefer, you can also manually add Zoom events without creating a Zoom Integration
Autocreate Zoom Events
To automatically add Zoom to events, you can add autocreate
to the conferencing
object and set the provider to Zoom Meeting
. Zoom will automatically add a URL to event invitations. If you have Zoom organization settings, those will be in place for the created event.
curl --location --request POST 'https://api.nylas.com/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
"title": "Birthday Party",
"location": "Roller Rink",
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"busy": true,
"read_only": false,
"conferencing":{
"provider": "Zoom Meeting",
"autocreate":{}
},
"participants": [
{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com"
}
],
"description": "Lets celebrate",
"when": {
"start_time": "1627499520",
"end_time": "1630245600"
}
}'
If an event has both autocreate
and details
, the API will return an error message.
{
"message": "'details' not allowed when auto generating a conference",
"type": "invalid_request_error"
}
Autocreate Zoom Response Example
The Zoom event will not return as part of the 200 response. A 200 OK does not mean the event was created. Use the job_status_id in the response to check event status. Once the job status is successful, the meeting will show in the following places:
- In the Zoom account as a meeting
- In the Get event response
- Returns an event created webhook
{
"account_id": "7keuifv5667vz4c3cvshe9lsm",
"busy": true,
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"description": "Lets celebrate",
"ical_uid": null,
"id": "1n9y2zr0uke4of79e4azbukgo",
"job_status_id": "650hufvdr73lk34riqgppwemz",
"location": "Roller Rink",
"message_id": null,
"metadata": {},
"notifications": [
{
"body": "Reminding you about our meeting.",
"subject": "Test Event Notification",
"minutes_before_event": "600",
"type": "email"
}
],
"object": "event",
"owner": "Katherine Johnson <kat@example.com>",
"participants": [
{
"comment": null,
"email": "kat.j.space@example.com",
"name": "Katherine Johnson",
"phone_number": "+12223456789",
"status": "noreply"
}
],
"read_only": false,
"reminders": null,
"status": "confirmed",
"title": "Third Test Event",
"when": {
"end_time": 1630245600,
"object": "timespan",
"start_time": 1627499520
}
}
{
"account_id": "7keuifv5667vz4c3cvshe9lsm",
"busy": true,
"calendar_id": "egtdopqam5jxky7ifrkwcra55",
"conferencing": {
"details": {
"meeting_code": 11111111111,
"password": null,
"url": "https://us02web.zoom.us/j/11111111111"
},
"provider": "Zoom Meeting"
},
"description": "Lets celebrate",
"ical_uid": null,
"id": "bkdutgzh8gri36tkbp60bnkju",
"location": "Roller Rink",
"message_id": null,
"metadata": {},
"object": "event",
"owner": "Katherine Johnson <kat@example.com>",
"participants": [
{
"comment": null,
"email": "ada@example.com",
"name": "Ada Lovelace",
"phone_number": "+1234567890",
"status": "noreply"
}
],
"read_only": false,
"reminders": null,
"status": "confirmed",
"title": "Lets celebrate",
"when": {
"end_time": 1630245600,
"object": "timespan",
"start_time": 1627499520
}
}
Zoom Settings Object
If you want to add options such a password
or mute_upon_entry
, use the autocreate.settings
object. The object maps to Zoom Create a Meeting object. Nylas doesn't have validation on the autocreate.settings
object.
...
"conferencing":{
"provider": "Zoom Meeting",
"autocreate":{
"settings":{
"password": "6789011",
"settings":{
"mute_upon_entry": true
}
}
}
},
...
Learn More
See Create a meeting - Meetings - Zoom API - API Reference - Zoom Developer - Technical Documentation and Reference for a list of available settings.
Zoom Limitations
- If you make a change on the provider side, we cannot sync the changes with the conferencing object.
- You can create Zoom meetings with the following account types:
- Microsoft EAS/EWS accounts.
- The following providers are not available:
- Microsoft EAS only accounts
- iCloud
- Microsoft Graph
- Not available for virtual calendars.
Google Meet
With just a few lines of code, generate Google Meet links on your events.
Prerequisites
- If you prefer, you can also manually add Google Meet events
Autocreate Google Meet Events
To automatically add Google Meet to events, you can add autocreate
to the conferencing
object. Google Meet will automatically add a URL to event invitations. If you have Google Meet organization settings, those will be in place for the created event.
curl --location --request POST 'https://api.nylas.com/events' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Birthday Party",
"conferencing": {
"provider": "Google Meet",
"autocreate": {}
},
"calendar_id": "<CALENDAR_ID>",
"status": "confirmed",
"busy": true,
"read_only": true,
"participants": [
{
"name": "Alexander Graham Bell",
"email": "alex@example.com",
"status": "yes"
}
],
"description": "Come ready to skate",
"when": {
"start_time": 1631732400,
"end_time": 1631736000
},
"location": "Roller Rink"
}'
Autocreate Google Meet Response
The Google Meet event will not return as part of the 200 response. A 200 OK does not mean the event was created. Use the job_status_id in the response to check event status. Once the job status is successful, the meeting will show in the following places:
- In the Google calendar as a meeting
- In the Get event response
- Returns an event created webhook
{
"account_id": "5tgncdmczat02216u7d6uypyi",
"busy": true,
"calendar_id": "9ev16mzqlwux5vrxai6s2t4uf",
"conferencing": null,
"description": "Come ready to skate",
"ical_uid": null,
"id": "4htaz8m4pww6wah1aakxt0pbk",
"job_status_id": "3r7h2gsvb83pfx236be15dsfd",
"location": "Roller Rink",
"message_id": null,
"object": "event",
"owner": "Katherine Johnson <kat@example.com>",
"participants": [
{
"comment": null,
"email": "ada@example.com",
"name": "Ada Lovelace",
"phone_number": null,
"status": "yes"
}
],
"read_only": false,
"reminders": null,
"status": "confirmed",
"title": "Birthday Party",
"visibility": null,
"when": {
"end_time": 1631736000,
"object": "timespan",
"start_time": 1631732400
}
}
{
"account_id": "5tgncdmczat02216u7d6uypyi",
"busy": true,
"calendar_id": "9ev16mzqlwux5vrxai6s2t4uf",
"conferencing": {
"details": {
"phone": [
"+1-123-456-7890"
],
"pin": "372386938",
"url": "https://meet.google.com/aaa-aaa-aaa"
},
"provider": "Google Meet"
},
"description": "Come ready to skate",
"ical_uid": "k5rj9fgr7vdog72og8cvq6sjfo@google.com",
"id": "4htaz8m4pww6wah1aakxt0pbk",
"location": "Roller Rink",
"message_id": null,
"object": "event",
"owner": "Katherine Johnson <kat@example.com>",
"participants": [
{
"comment": null,
"email": "ada@example.com",
"name": "Ada Lovelace",
"phone_number": null,
"status": "yes"
}
],
"read_only": false,
"reminders": null,
"status": "confirmed",
"title": "Birthday Party",
"visibility": null,
"when": {
"end_time": 1631736000,
"object": "timespan",
"start_time": 1631732400
}
}
Google Meet Limitations
- You can create Google Meet meetings with the following account types:
- Other account types are not available.
Teams
Add Teams events to your calendar with our Microsoft Integration.
Prerequisites
- Set up Microsoft Teams integration.
- If you prefer, you can also manually add Teams events.
Autocreate Teams Events
To automatically add Teams Meetings to events, you can add autocreate
to the conferencing
object. Teams will automatically add a URL to event invitations. If you have Teams organization settings, those will be in place for the created event.
curl --location --request POST 'https://api.nylas.com/events' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Birthday Party",
"location": "Roller Rink",
"calendar_id": "czgewxhbnvg3ss0s0n9pz6x5n",
"busy": true,
"read_only": false,
"conferencing":{
"provider": "Microsoft Teams",
"autocreate":{}
},
"participants": [
{
"name": "Katherine Johnson",
"email": "kat@example.com>"
}
],
"description": "Lets celebrate",
"when": {
"start_time": "1632869341",
"end_time": "1632872941"
}
}'
Autocreate Teams Response
The Teams event will not return as part of the 200 response. A 200 OK does not mean the event was created. Use the job_status_id in the response to check event status. Once the job status is successful, the meeting will show in the following places:
- In the Teams calendar as a meeting
- In the Get event response
- Returns an event created webhook
{
"account_id": "anz2nojgkfzfo4094wi291hzq",
"busy": true,
"calendar_id": "czgewxhbnvg3ss0s0n9pz6x5n",
"description": "Lets celebrate",
"ical_uid": null,
"id": "htqz39d1cn1vtmt1tfyfa5bz",
"job_status_id": "enjkiqnl2cdz3i5lmnqj2iej4",
"location": "Roller Rink",
"message_id": null,
"object": "event",
"owner": " <kat@example.com>",
"participants": [
{
"comment": null,
"email": "ada.lovelace@example.com",
"name": "Ada Lovelace",
"phone_number": null,
"status": "noreply"
}
],
"read_only": false,
"reminders": null,
"status": "confirmed",
"title": "Birthday Party",
"visibility": null,
"when": {
"end_time": 1632872941,
"object": "timespan",
"start_time": 1632869341
}
}
{
"account_id": "anz2nojgkfzfo4094wi291hzq",
"busy": true,
"calendar_id": "czgewxhbnvg3ss0s0n9pz6x5n",
"conferencing": {
"details": {
"url": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_abcedfg123gtNmVlZC00ZjczLTk3OWItMTFiODEyMjFlZWM5%40thread.v2/0?context=%7b%22Tid%22%3a%22f326dd55-8623-46f7-a9de-bb846059d367%22%2c%22Oid%22%3a%22f13a14d1-74ed-4d33-bd68-11718fda00ae%22%7d"
},
"provider": "Microsoft Teams"
},
"description": "<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>Lets celebrate<br>~~~~~~~~~~<br>meeting_code: MSpmMTNhMTRkMS03NGVkLTRkMzMtYmQ2OC0xMTcxOGZkYTAwYWUqMCoqMTk6bWVldGluZ19PVEJrTnpFeE16Z3RObVZsWkMwMFpqY3pMVGszT1dJdE1URmlPREV5TWpGbFpXTTVAdGhyZWFkLnYy<br>url: https://teams.microsoft.com/l/meetup-join/19%3ameeting_abcedfg123gtNmVlZC00ZjczLTk3OWItMTFiODEyMjFlZWM5%40thread.v2/0?context=%7b%22Tid%22%3a%22f326dd55-8623-46f7-a9de-bb846059d367%22%2c%22Oid%22%3a%22f13a14d1-74ed-4d33-bd68-11718fda00ae%22%7d </body></html>",
"ical_uid": "8917a0509a164875940672935ea664ae",
"id": "2otg4814r9cc324fns8zu1bho",
"location": "Roller Rink",
"message_id": null,
"object": "event",
"owner": "Katherine Johnson <kat@example.com>",
"participants": [
{
"comment": null,
"email": "ada.lovelace@example.com",
"name": "Ada Lovelace",
"phone_number": null,
"status": "noreply"
}
],
"read_only": false,
"reminders": {
"reminder_method": "popup",
"reminder_minutes": 15
},
"status": "confirmed",
"title": "Birthday Party",
"visibility": "normal",
"when": {
"end_time": 1632872941,
"object": "timespan",
"start_time": 1632869341
}
}
Microsoft Teams Limitations
- You cannot update the conferencing provider. You’ll need to delete the existing conference and create a new one.
- You can create Microsoft Teams meetings with the following account types:
- Microsoft EAS/EWS accounts.
- Microsoft EWS only accounts
- The following providers are not available:
- Microsoft Graph
- iCloud
- Microsoft EAS only accounts