Skip to content

How to add a scheduling page with automatic notetaking

Every scheduled meeting needs notes, but nobody wants to take them. By combining Nylas Scheduler and Notetaker, you can build a booking experience where every meeting is automatically recorded and transcribed. No manual setup per meeting, no forgotten recordings.

Here is how it works: a guest books a time slot through your scheduling page, the calendar event gets a conferencing link, and when the meeting starts, Notetaker joins automatically. After the meeting ends, you get the recording, transcript, summary, and action items delivered through a webhook. The entire flow runs without any intervention from you or your users.

This tutorial walks you through creating a Scheduler Configuration with Notetaker integration enabled. By the end, you will have:

  • A Scheduler Configuration that creates calendar events with conferencing links and automatic Notetaker
  • A scheduling page (hosted by Nylas or embedded in your app) where guests can book meetings
  • Webhook subscriptions that notify you when bookings are created and recordings are ready
  • A workflow to retrieve recordings, transcripts, summaries, and action items after each meeting

When a guest books a meeting, Scheduler creates the calendar event and attaches Notetaker settings. Notetaker joins the meeting at the scheduled time, records the session, and processes the media afterward. You receive a notetaker.media webhook with download URLs for everything.

Make sure you have the following before starting this tutorial:

  • A Nylas account with an active application
  • A valid API key from your Nylas Dashboard
  • At least one connected grant (an authenticated user account) for the provider you want to work with
  • Node.js 18+ or Python 3.8+ installed (depending on which code samples you follow)

New to Nylas? Start with the quickstart guide to set up your app and connect a test account before continuing here.

You also need the following for this tutorial:

  • A connected grant with calendar access for the provider you want to schedule with
  • A conferencing provider set up on the grant (Google Meet, Microsoft Teams, or Zoom). Notetaker needs a meeting link to join, so conferencing is required. See Adding conferencing to bookings for setup details.
  • Notetaker enabled on your Nylas plan

Create a Scheduler Configuration with Notetaker

Section titled “Create a Scheduler Configuration with Notetaker”

Start by creating a Configuration that defines your scheduling page, conferencing provider, and Notetaker settings. This single API request sets up the entire pipeline.

A few things to note about this request:

  • conferencing.provider determines which video platform Notetaker joins. Set this to "Google Meet", "Microsoft Teams", or "Zoom Meeting" depending on your grant’s provider. The autocreate object tells Scheduler to generate a meeting link automatically for each booking.
  • scheduler.notetaker_settings.enabled turns on the Notetaker integration. Without this, bookings are created normally but no recording bot joins.
  • notetaker_name is the display name guests see when the bot joins the call. Keep it short and descriptive so attendees know what it is.
  • meeting_settings controls what Notetaker produces. You can disable video_recording if you only need audio, or turn off summary and action_items if you just want the raw transcript.

Some meeting_settings fields depend on others. Transcription requires audio_recording, and both summary and action_items require transcription. If you enable a feature that depends on another, Nylas enables the dependency automatically.

If you want more control over the AI-generated content, pass custom instructions:

Custom instructions are limited to 1,500 characters each. Be specific about what you want: the more precise the instructions, the more useful the output.

Once your Configuration exists, you need to give guests a way to book meetings. Nylas supports two approaches.

The simplest option. Add a slug to your Configuration, and Nylas hosts the scheduling page for you at book.nylas.com/<SLUG>.

After this request succeeds, your scheduling page is live at https://book.nylas.com/meet-with-your-team. Share that URL with guests, embed it in emails, or link to it from your website. No frontend code required.

If you want the scheduling UI inside your own application, use the <nylas-scheduling> web component. This gives you full control over the surrounding page layout, styling, and user experience.

The component handles date selection, time slot display, the booking form, and confirmation. All the Notetaker settings you configured on the backend apply automatically. Guests see a consent message if you set show_ui_consent_message to true.

For more customization options, see Using the Scheduling component and Customize Scheduler.

You need webhooks to know when bookings happen and when recordings are ready. Subscribe to the booking.created and notetaker.media triggers.

  • booking.created fires when a guest completes a booking. Use this to update your internal records, send custom notifications, or trigger other workflows.
  • notetaker.media fires when Notetaker finishes processing media after a meeting ends. The payload includes download URLs for the recording, transcript, summary, and action items.

Your webhook endpoint must be publicly accessible and respond with a 200 status code. Nylas retries failed deliveries, but if your endpoint is consistently unreachable, notifications are dropped. For more details, see Using webhooks with Nylas.

When a guest books a meeting, Nylas sends a notification like this:

Notice the location field contains the conferencing link. That is the same link Notetaker uses to join the meeting.

After the meeting ends, Notetaker processes the recording. This typically takes a few minutes. When processing completes, Nylas sends a notetaker.media webhook with the state set to available and URLs for each media file.

Each URL in the media object points to a downloadable file. Download them directly from your webhook handler.

The URLs in the webhook payload are valid for 60 minutes. Download the files immediately when you receive the webhook. If the URLs expire, you can retrieve fresh ones using the Notetaker API:

Nylas stores Notetaker media files for a maximum of 14 days. After that, the files are permanently deleted. Download and store the files in your own infrastructure as soon as they become available.

FileFormatContents
RecordingMP4 (video) or MP3 (audio-only)Full meeting recording at 1280x720 resolution, 12 FPS
ThumbnailPNGA screenshot captured from roughly halfway through the meeting
TranscriptJSONSpeaker-labelled transcript with timestamps for each segment
SummaryJSONAI-generated meeting summary based on the transcript
Action itemsJSONAI-extracted list of action items from the conversation

The transcript includes speaker names and timing data, so you can build features like searchable meeting archives or highlight key moments.

Here are practical considerations for running Scheduler with Notetaker in production.

Notetaker joins meetings through a video conferencing link. Without one, it has nothing to connect to. Your Configuration must include event_booking.conferencing with Google Meet, Microsoft Teams, or Zoom. If you skip conferencing, Notetaker settings are ignored.

Processing takes a few minutes after the meeting ends

Section titled “Processing takes a few minutes after the meeting ends”

Notetaker does not deliver media instantly. After the meeting ends and the bot disconnects, Nylas processes the recording, generates the transcript, and (if enabled) produces the summary and action items. Expect a delay of a few minutes before the notetaker.media webhook fires. Longer meetings take longer to process.

The bot appears as an external participant on the meeting platform. If the meeting is restricted to organization members, someone needs to approve the bot from the lobby. If nobody approves within 10 minutes of the scheduled join time, the bot times out and reports a failed_entry status.

Tip for Microsoft Teams meetings: If your organization restricts external participants, configure the meeting to allow anonymous users, or have the organizer admit Notetaker from the lobby.

Each booking creates a separate Notetaker instance

Section titled “Each booking creates a separate Notetaker instance”

Every booking through your scheduling page gets its own Notetaker bot. Nylas does not reuse or deduplicate bots. This means if two guests book back-to-back meetings at 2:00 PM and 2:30 PM, two separate Notetaker instances are created and join independently.

Notetaker handles recording disclosure in two ways. If you set show_ui_consent_message to true, guests see a notice on the scheduling page before they book. The bot also sends a message through the meeting platform’s chat a few minutes after joining.

That said, it is the meeting host’s responsibility to ensure compliance with local recording consent laws. The messages Notetaker sends are informational, not legal consent mechanisms.

Nylas deletes media files after 14 days. Build an automated download pipeline that runs when you receive the notetaker.media webhook. Store the files in your own infrastructure if you need long-term access.

You now have a working scheduling page that automatically records and transcribes every meeting. Here are some ways to go further: