# Add conferencing to calendar events

Source: https://developer.nylas.com/docs/cookbook/calendar/add-conferencing/

You create an event from your app, and it needs a video link. Generating that link per provider, Meet for Google, a Zoom API call, a Teams meeting through Graph, is a separate integration for each. You just want the link to appear on the event.

The Nylas Events API adds conferencing as one field on the event. You either let it create the link automatically, or pass details you already have, and it lands on the event for every attendee.

## How do I add a meeting link automatically?

Add a `conferencing` object with an `autocreate` block and a `provider` to your event create or update request. Nylas generates a fresh meeting link and attaches it to the event. The `provider` is one of 3 providers: `Google Meet`, `Zoom Meeting`, or `Microsoft Teams`. The request below creates an event with an automatically generated conference link.

```bash
curl --request POST \
  --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/events?calendar_id=<CALENDAR_ID>' \
  --header 'Authorization: Bearer <NYLAS_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "title": "Team sync",
    "conferencing": {
      "provider": "Google Meet",
      "autocreate": {}
    },
    "when": { "start_time": 1730000000, "end_time": 1730003600 }
  }'
```

If the requested provider differs from the account the user authenticated with, or for any Zoom event, you also pass a `conf_grant_id` pointing to the grant that owns the conferencing account.

## How do I add my own conferencing details?

When you already have a meeting link, use `conferencing.details` instead of `autocreate` to attach it manually, passing the URL and any access code or phone numbers. You can't use `autocreate` and `details` in the same request, since they're 2 fields you can't combine, and Nylas returns an error if you include both. The request below attaches a pre-existing link with `details`.

```bash
curl --compressed --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",
    "busy": true,
    "conferencing": {
      "provider": "Google Meet",
      "details": {
        "url": "https://meet.google.com/***-****-***",
        "pin": "xyz",
        "phone": ["+1 234 555 6789"]
      }
    },
    "participants": [
      {
        "name": "Leyah Miller",
        "email": "leyah@example.com"
      },
      {
        "name": "Nyla",
        "email": "nyla@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"
  ],
}'

```

To strip conferencing from an event later, set `conferencing` to `{}` and remove the matching conference text from the description. See [add conferencing](/docs/v3/calendar/add-conferencing/) for the full field reference.

## Things to know about event conferencing

A couple of provider rules matter. Zoom always requires a `conf_grant_id`, and your Zoom OAuth app needs 3 meeting scopes: `meeting:write:meeting` to create, `meeting:update:meeting` to update, and `meeting:delete:meeting` to remove the conference when the event changes or is deleted. Without those, the autocreate call fails.

Automatic conferencing covers the same 3 providers as Scheduler conferencing, Google Meet, Zoom, and Teams, so a link generated here behaves like one from a booking page. Manual `details` work on any event regardless of provider, since you supply the link yourself.

## What's next

- [Add conferencing reference](/docs/v3/calendar/add-conferencing/) for the full conferencing schema
- [Create Google events](/docs/cookbook/calendar/events/create-events-google/) to create the events you add conferencing to
- [Update and delete calendar events](/docs/cookbook/calendar/update-delete-events/) to change or remove a conference link
- [Create a Scheduler booking config](/docs/cookbook/use-cases/build/scheduler-booking-config/) to create links automatically on booked meetings