Add conferencing to events in Nylas v2
While online calendar events can reflect in-person meetings, they are often used to schedule virtual and phone conferencing meetings. The Nylas Calendar API includes both the ability to read conferencing details from an event, and create conferences automatically when you create events.
Nylas can natively read conferencing information, and you can manually write conferencing details into an event when you create it.
The Conferencing object
The Event object contains conference details in the conferencing
sub-object, as in the JSON example below.
"conferencing": {
"provider": "Google Meet",
"details": {
"url": "https://meet.google.com/***-****-***",
"pin": "xyz",
"phone": [
"+1 234 555 6789"
]
}
}
Each conferencing service provider structures the details differently, so the content of the conferencing
object varies. See the Create Event schema for per-provider details.
Read conferencing details
Nylas automatically reads conferencing details on an event, when they're available. (Remember, not all events will have an associated conference!) Regardless of how they are formatted on the provider's Event, Nylas parses them into the conferencing
object for easier reading.
Nylas v2 can read and write conferencing details from Google, GCal, and GSuite, and read details from Microsoft Exchange, Zoom, WebEx, and GoToMeeting.
Manually add conferencing to an event
You can manually add conferencing to a meeting you create by adding the conferencing
object with the required details. This is usually just the provider and URL.
This option requires no additional set up from you, and can be the most flexible if you work with many different conferencing providers. When you manually create conferencing details you must first create the conference on the provider, then copy the required details to the Event object before you make the Create Event request. Nylas does not create the conference instance for you when you manually add the details.
⚠️ If you manually add conferencing details to an event, Nylas validates only that the required fields are included and that they contain a value in the expected format. Nylas cannot validate that the details are valid conference lines or URLs.
Manually create an event with conferencing
To create an event with conferencing for Google, add the conferencing
object to your POST /events
request. The examples below use Google Meet as the conferencing platform.
You can create events that contain metadata. The response from the Nylas API includes the conferencing details object. The conferencing information can vary by provider. Review the Events reference documentation for examples and more information.
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": "9ev16mzqlwux5vrxai6s2t4uf",
"status": "confirmed",
"busy": true,
"read_only": false,
"participants": [
{
"name": "Dorothy Vaughan",
"email": "dorothy@example.com"
},
{
"name": "Katherine Johnson",
"email": "kat.j.space@example.com"
},
{
"name": "Hedy Lamarr",
"email": "lamarr@example.com"
}
],
"description": "Lets celebrate",
"when": {
"start_time": "1608241500",
"end_time": "1608245100"
},
"conferencing": {
"provider": "Google Meet",
"details": {
"phone": [
"+11234567890"
],
"pin": "1234",
"url": "https://meet.google.com/*************"
}
}
}'
{
"account_id": "5tgncdmczat02216u7d6uypyi",
"busy": true,
"calendar_id": "9ev16mzqlwux5vrxai6s2t4uf",
"conferencing": {
"details": {
"phone": [
"+11234567890"
],
"pin": "1234",
"url": "https://meet.google.com/*************"
},
"provider": "Google Meet"
},
"description": "Let's celebrate",
"ical_uid": null,
"id": "b54acjszoyhsxljnfr3lnhm2y",
"job_status_id": "73p1s2umn46ym77krav0qm8cx",
"location": "Roller Rink",
"message_id": null,
"object": "event",
"owner": "Jane Doe <jane.doe@example.com>",
"participants": [{
"comment": null,
"name": "Hedy Lamarr",
"email": "lamarr@example.com",
"status": "noreply"
}],
"read_only": false,
"status": "confirmed",
"title": "Birthday Party",
"when": {
"end_time": 1608245100,
"object": "timespan",
"start_time": 1608241500
}
}
Get event conference data
When available, Nylas fetches conference data from the conferenceData
field on Google Calendar or from location/description
on Microsoft Graph, and parses it into the conferencing
object in Nylas.
To view the conferencing
object, make either a GET /events
or GET /events/{id}
request.
The examples below show a Get Events request, and the responses Nylas sends when the event includes parseable conference details, and when it doesn't. In many cases, the information is still available as part of the event's location (its URL) and description (the additional conference details).
curl --location --request GET 'https://api.nylas.com/events' \
--header 'Authorization: Bearer <access_token>' \
[{
"account_id": "5tgncdmczat02216u7d6uypyi",
"busy": true,
"calendar_id": "cdv2pa13ogzd7x1fgb6bk0uy0",
"conferencing": {
"details": {
"meeting_code": "123 456 7890",
"phone": [
"+12345678901"
],
"url": "https://us02web.zoom.us/j/5668774452"
},
"provider": "Zoom Meeting"
},
"description": "\n──────────\nAda Lovelace is inviting you to a scheduled Zoom meeting.\n\nJoin Zoom Meeting\nhttps://us02web.zoom.us/j/**********\n\nMeeting ID: 123 456 7890\nOne tap mobile\n+1234567890,,**********# US (San Jose)\n+1234567890,,**********# US (Tacoma)\n\nDial by your location\n +1 123 456 7890 US (San Jose)\n +1 123 456 7890 US (Tacoma)\n +1 123 456 7890 US (Houston)\n +1 123 456 7890 US (Germantown)\n +1 123 456 7890US (Chicago)\n +1 123 456 7890 US (New York)\nMeeting ID: 123 456 7890\nFind your local number: https://us02web.zoom.us/u/*******\n\n\n──────────\n\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-\nPlease do not edit this section of the description.\n\nView your event at https://calendar.google.com/calendar/event?action=VIEW&eid=********&tok=******&ctz=America%2FChicago&hl=en&es=1.\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-",
"ical_uid": "***********@google.com",
"id": "4wa541hgeph6vje9mzzf5wrru",
"location": "https://us02web.zoom.us/j/**********",
"message_id": "3etfeskt26j5oqdt5w1ordafz",
"object": "event",
"owner": "Ada Lovelace <ada@example.com>",
"participants": [
{
"comment": null,
"email": "marie@example.com",
"name": "marie@example.com",
"status": "noreply"
},
{
"comment": null,
"email": "ada@example.com",
"name": "ada@example.com",
"status": "yes"
}
],
"read_only": true,
"recurrence": {
"rrule": [
"RRULE:FREQ=WEEKLY;BYDAY=WE"
],
"timezone": "America/Los_Angeles"
},
"status": "confirmed",
"title": "Weekly 1:1",
"when": {
"end_time": 1608150600,
"object": "timespan",
"start_time": 1608148800
}
}]
[{
"account_id": "5tgncdmczat02216u7d6uypyi",
"busy": true,
"calendar_id": "cdv2pa13ogzd7x1fgb6bk0uy0",
"description": "\n──────────\nAda Lovelace is inviting you to a scheduled Zoom meeting.\n\nJoin Zoom Meeting\nhttps://us02web.zoom.us/j/**********\n\nMeeting ID: 123 456 7890\nOne tap mobile\n+1234567890,,**********# US (San Jose)\n+1234567890,,**********# US (Tacoma)\n\nDial by your location\n +1 123 456 7890 US (San Jose)\n +1 123 456 7890 US (Tacoma)\n +1 123 456 7890 US (Houston)\n +1 123 456 7890 US (Germantown)\n +1 123 456 7890US (Chicago)\n +1 123 456 7890 US (New York)\nMeeting ID: 123 456 7890\nFind your local number: https://us02web.zoom.us/u/*******\n\n\n──────────\n\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-\nPlease do not edit this section of the description.\n\nView your event at https://calendar.google.com/calendar/event?action=VIEW&eid=********&tok=******&ctz=America%2FChicago&hl=en&es=1.\n-::~:~::~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~:~::~:~::-",
"ical_uid": "***********@google.com",
"id": "4wa541hgeph6vje9mzzf5wrru",
"location": "https://us02web.zoom.us/j/**********",
"message_id": "3etfeskt26j5oqdt5w1ordafz",
"object": "event",
"owner": "Ada Lovelace <ada@example.com>",
"participants": [
{
"comment": null,
"email": "marie@example.com",
"name": "marie@example.com",
"status": "noreply"
},
{
"comment": null,
"email": "ada@example.com",
"name": "ada@example.com",
"status": "yes"
}
],
"read_only": true,
"recurrence": {
"rrule": [
"RRULE:FREQ=WEEKLY;BYDAY=WE"
],
"timezone": "America/Los_Angeles"
},
"status": "confirmed",
"title": "Weekly 1:1",
"when": {
"end_time": 1608150600,
"object": "timespan",
"start_time": 1608148800
}
}]
Conferencing limitations
The following limitations apply to conferencing in Nylas v2.x:
- Nylas can read, but cannot create conferencing details for Zoom, WebEx, and GoToMeeting conference details.
- When fetching events, Nylas might not return the
conferencing
object. Nylas attempts to get the conferencing details when they're available. - You can edit conference details for Google only.