Add conferencing to events
While online calendar events can reflect in-person meetings, they're often used to schedule virtual and phone conferencing meetings. The Nylas Calendar API allows you 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. You can also use a provider connector to automatically create and attach conferencing information when you create an event.
🔍 Nylas v3 supports automatic conference creation with Google Meet, Microsoft Teams, and Zoom.
The Conferencing object
Events contain conference details in the conferencing
sub-object, as in the JSON snippet 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 can vary. 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're formatted on the provider's Event, Nylas parses them into the conferencing
object for easier reading.
Nylas v3 can currently read conferencing details from the following providers:
- Microsoft Teams
- Google Meet
- Zoom
- WebEx
- GoToMeeting
Manually add conferencing to an event
You can manually add conferencing to a meeting that you create by adding the conferencing
object with the required details — usually the provider and URL. This option requires no additional set up steps, and can be the most flexible if you work with many different conferencing providers.
When you manually add conferencing details, you must first create the conference on the provider, then copy the required details to the event request payload_before_ you make a Create Event request. Nylas does not create the conference instance for you when you manually add the information.
curl --request POST \
--url https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events?calendar_id=<CALENDAR_ID> \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <NYLAS_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"title": "Annual Philosophy Club Meeting",
"status": "confirmed",
"busy": true,
"conferencing": {
"provider": "Google Meet",
"details": {
"url": "https://meet.google.com/***-****-***",
"pin": "xyz",
"phone": [
"+1 234 555 6789"
]
}
},
"participants": [
{
"name": "Aristotle",
"email": "aristotle@example.com"
},
{
"name": "Jane Stephens",
"email": "jane.stephens@example.com"
}
],
"description": "Come ready to talk philosophy!",
"when": {
"start_time": 1674604800,
"end_time": 1722382420,
"start_timezone": "America/New_York",
"end_timezone": "America/New_York"
},
"location": "New York Public Library, Cave room",
"recurrence": [
"RRULE:FREQ=WEEKLY;BYDAY=MO",
"EXDATE:20211011T000000Z"
],
}'
⚠️ 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.
You can create events that contain metadata. Nylas' response includes the conferencing details object.
Enable autocreate for conferencing
You can create connectors for conferencing providers so Nylas can automatically create conferences for you when you create events. Nylas currently supports conference autocreate for Google Meet, Microsoft Teams, and Zoom.
If you already have a Google or Microsoft auth connector, you can use that same auth connector to connect to Google Meet and Microsoft Teams, respectively. To automatically create Zoom meetings, you must first create a Zoom application and connector.
When you have your connectors set up, you specify the provider as usual, but include autocreate
in the conferencing
object instead of passing the details
object. Depending on the provider you might need to specify setting in the autocreate
object.
"conferencing": {
"provider": "Google Meet",
"autocreate": {}
}
The autocreate
object is an optional dictionary of parameters that you can use to customize the conference. Because these are provider-specific and may be subject to rules set by your organization, Nylas does not validate any additional parameters that you pass in this object.
Autocreate scopes
OAuth providers use the concept of "scopes" to define what items a third party can access. To use autocreate, you might need to add the following scopes to your OAuth provider application.
- Microsoft:
OnlineMeetings.ReadWrite
. - Google: No extra scopes required, conferencing is considered part of the event.
- Zoom:
meeting:write:meeting
anduser:read:user
. Set these on your Zoom Oauth application. Do not set them on your Nylas Zoom connector.
Get event conference information
When available, Nylas fetches conferencing information from the conferenceData
field on Google Calendar, or from location/description
on Microsoft Graph. It then parses that data into the conferencing
object in Nylas.
To view the conferencing
object, make either a Get Events request or a Get Event request.
The following examples show a Get Event request and a response from Nylas with the conference details.
curl --request GET \
--url https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events?calendar_id=<CALENDAR_ID>&start=<EPOCH_TIMESTAMP>&end=<EPOCH_TIMESTAMP> \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <NYLAS_API_KEY>' \
--header 'Content-Type: application/json'
{
"request_id": "cbd60372-df33-41d3-b203-169ad5e3AAAA",
"data": [{
"busy": true,
"calendar_id": "primary",
"conferencing": {
"details": {
"meeting_code": "ist-****-tcz",
"url": "https://meet.google.com/ist-****-tcz"
},
"provider": "Google Meet"
},
"created_at": 1701974804,
"creator": {
"email": "anna.molly@example.com",
"name": ""
},
"description": null,
"grant_id": "1e3288f6-124e-405d-a13a-635a2ee54eb2",
"hide_participants": false,
"html_link": "https://www.google.com/calendar/event?eid=NmE0dXIwabQAAAA",
"ical_uid": "6aaaaaaame8kpgcid6hvd0q@google.com",
"id": "6aaaaaaame8kpgcid6hvd",
"object": "event",
"organizer": {
"email": "anna.molly@example.com",
"name": ""
},
"participants": [
{
"email": "jenna.doe@example.com",
"status": "yes"
},
{
"email": "anna.molly@example.com",
"status": "yes"
}
],
"read_only": true,
"reminders": {
"overrides": null,
"use_default": true
},
"status": "confirmed",
"title": "Holiday check in",
"updated_at": 1701974915,
"when": {
"end_time": 1701978300,
"end_timezone": "America/Los_Angeles",
"object": "timespan",
"start_time": 1701977400,
"start_timezone": "America/Los_Angeles"
}
}]
}
Conferencing limitations
- Nylas can read, but cannot create, Zoom, WebEx, and GoToMeeting conference details.
- Nylas doesn't support autocreate for cross-platform conferencing. This means that if you create a Google Calendar event, you cannot autocreate a Microsoft Teams conference for the event, and vice versa. Zoom conferencing is platform-agnostic.
- If you need to create a cross-platform conference, you can manually add the conferencing details instead.