Source: https://cli.nylas.com/guides/add-conferencing-to-events-cli

# Add Video Conferencing to Calendar Events

A meeting without a join link is a meeting people show up to in the wrong place. Adding conferencing through provider APIs means Google's conferenceData, Microsoft's onlineMeeting, and separate plumbing for each. The Nylas CLI attaches a video link when you create an event with one flag, and the link rides along in the invite every attendee receives. This guide shows how to add conferencing, confirm the link landed, and use it in a scheduling script.

Written by [Prem Keshari](https://cli.nylas.com/authors/prem-keshari) Senior SRE

Updated June 8, 2026

> **TL;DR:** Add a video link by passing `--meeting-link` to `nylas calendar events create`. The provider generates a conferencing link, attaches it to the event, and includes it in the invite sent to every attendee. Confirm it landed with `nylas calendar events show --id EVENT_ID --json` and read `conferencing.details.url`. One flag works across calendar providers.

Command references used in this guide: [`nylas calendar events create`](https://cli.nylas.com/docs/commands/calendar-events-create), [`nylas calendar events show`](https://cli.nylas.com/docs/commands/calendar-events-show), and [`nylas calendar find-time`](https://cli.nylas.com/docs/commands/calendar-find-time).

## How do you add conferencing to a calendar event?

You add conferencing by passing `--meeting-link` when you create the event with `nylas calendar events create`. The provider generates a video link — Google Meet for Google accounts, an online meeting for Microsoft — attaches it to the event, and includes it in the invite each attendee receives. One flag replaces the provider-specific conferencing payloads you'd otherwise build by hand.

Doing this directly is provider-specific work. Google's API requires a `conferenceData` create request, and Microsoft Graph sets `isOnlineMeeting` with an `onlineMeetingProvider`, per the [Microsoft Graph online meeting docs](https://learn.microsoft.com/en-us/graph/api/resources/onlinemeeting). The CLI normalizes both behind the single flag, so your command is identical whether the organizer is on Google or Outlook.

```bash
# Create an event with a generated video conferencing link
nylas calendar events create \
  --title "Design review" \
  --start 2026-06-18T16:00:00Z \
  --end 2026-06-18T16:45:00Z \
  --participants alice@example.com,bob@example.com \
  --meeting-link
```

## How do you confirm the link was added?

Confirm by reading the event back with `nylas calendar events show --id EVENT_ID --json` and checking the conferencing block. The join URL lives at `conferencing.details.url`, so a one-line `jq` filter prints exactly what attendees will click. If that field is populated, the link is on the event and in the invite.

This matters in automation, where you want to capture the URL and post it elsewhere — a Slack reminder, a ticket, or a confirmation email. Pull the URL from the JSON right after creating the event and reuse it downstream, so the link in your message is the real one the calendar generated, not a placeholder.

```bash
# Read the generated join URL from the event
nylas calendar events show --id event_abc123 --json \
  | jq -r '.conferencing.details.url'
```

## How do you add conferencing in a scheduling script?

In a script, chain availability to creation: find an open slot with `nylas calendar find-time`, create the event with `--meeting-link`, then read back the conferencing URL to include in your own confirmation. That turns “book a call with a link” into three commands, all provider-neutral, so the same flow serves attendees on Google and Outlook.

Keep the conferencing URL out of logs and public channels — it's a join link, and anyone with it can enter the meeting. Capture it from the JSON, send it only to the attendees, and treat it like any other access credential. For recurring calls, create the series once and reuse the link rather than minting a new one each week.

```bash
# Find a slot, create with a link, capture the URL
slot_start=2026-06-19T14:00:00Z
slot_end=2026-06-19T14:30:00Z

id=$(nylas calendar events create \
  --title "Intro call" --start "$slot_start" --end "$slot_end" \
  --participants client@example.com --meeting-link --json | jq -r '.id')

url=$(nylas calendar events show --id "$id" --json | jq -r '.conferencing.details.url')
echo "Join link: $url"
```

## Next steps

- [Create calendar invites](https://cli.nylas.com/guides/create-calendar-invites-cli) — the full event-creation workflow
- [Find a meeting time](https://cli.nylas.com/guides/find-meeting-time-cli) — pick a slot before you book
- [Record meetings from the terminal](https://cli.nylas.com/guides/record-meetings-from-terminal) — capture notes from the call
- [Manage calendar from the terminal](https://cli.nylas.com/guides/manage-calendar-from-terminal) — the full calendar workflow
- [Generate an ICS file](https://cli.nylas.com/guides/generate-ics-file-cli) — build a calendar file from event JSON
- [Round-robin scheduling](https://cli.nylas.com/guides/round-robin-scheduling-cli) — distribute meetings across a team
- [Full command reference](https://cli.nylas.com/docs/commands) — every flag and subcommand documented
