Version:
Only show these results:
private-preview

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

Zoom

With our Zoom integration, you can automatically add Zoom meetings to calendar events.

Prerequisites

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.

You can create events with metadata and reminders.

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
}

}
}
},
...

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:
    • Google
    • 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

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.

You can create events with metadata and reminders.

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:
    • Google
  • Other account types are not available.

Teams

Add Teams events to your calendar with our Microsoft Integration.

Prerequisites

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.

You can create events with metadata and reminders.

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
    • Google
    • Microsoft EAS only accounts

What's Next?