Skip to content

Connect Nylas to ChatGPT: Sync Email, Calendars, and Contacts

Nachi Raman Nachi Raman 9 min read AI & Agents
Elaichi from the team behind Truto

Nylas in ChatGPT, in about a minute.

The best way to connect Nylas to ChatGPT is Elaichi: connect Nylas to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14‑day free trial and no credit card required.

  • No credit card required
  • 500+ connectors
  • Credentials vaulted, never read back
  1. Start your free trial

    14 days free, no credit card required.

  2. Connect Nylas

    Once, in Elaichi. ChatGPT never gets more access than you have.

  3. Add Elaichi to ChatGPT

    In ChatGPT, open Plugins, press +, and paste the URL into Server URL. Sign in and approve.

    https://api.elaichi.ai/mcp
TrutoFor product teams

Building Nylas into your own product? This guide is for you.

A comprehensive engineering guide to connecting Nylas to ChatGPT via MCP. Learn how to bypass provider-specific API quirks, handle multi-participant scheduling logic, and execute autonomous email workflows securely.

The developer guide

Learn how to connect Nylas to ChatGPT using a managed MCP server. Sync emails, automate calendar scheduling, and manage contacts with zero custom integration code.

If you need to connect Nylas to ChatGPT to orchestrate email triage, manage multi-participant calendar scheduling, or sync contact directories, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between ChatGPT's JSON-RPC tool calls and the expansive Nylas v3 REST API.

If your team uses Claude, check out our guide on connecting Nylas to Claude or explore our broader architectural overview on connecting Nylas to AI Agents.

Giving a Large Language Model (LLM) read and write access to a communications API is an engineering challenge. You must handle complex payload requirements, nested group event schemas, and abstract the differences between underlying providers (Google, Microsoft, EWS, IMAP). If you build a custom MCP server, you own the entire integration lifecycle - from translating natural language intent into strict JSON, to handling OAuth token refresh cycles across different email backends.

This guide breaks down exactly how to use Truto to dynamically generate a secure, authenticated MCP server for Nylas, connect it to ChatGPT, and execute complex communication workflows using natural language.

The Engineering Reality of the Nylas API

Building a custom MCP server means defining static schemas for dynamic endpoints. While the MCP standard provides a predictable way for models to discover tools, implementing it against Nylas v3 requires handling specific integration realities. If you decide to self-host this infrastructure, here are the edge cases your server must handle:

Provider-Specific Feature Gaps

Nylas does an excellent job unifying email and calendar providers, but feature parity is never 100%. For example, when calling calendar event creation, Microsoft and iCloud completely ignore the notify_participants flag and will always email participants about event changes regardless of the payload you send. Similarly, autodetecting providers via IMAP falls back to different object structures than an OAuth-linked Google account. If your MCP tools do not explicitly describe these provider limitations in their JSON schemas, the LLM will hallucinate unsupported parameters or enter retry loops when the upstream provider silently drops fields.

Grant-Level vs. Application-Level Resource Scoping

Nylas v3 fundamentally separates configuration logic from user data logic. Application-level endpoints manage workspaces, policies, webhooks, and connector credentials. However, to read an inbox or book a calendar, the API requires a grant_id - representing the specific authenticated user account. When exposing Nylas to an LLM, you must ensure the model understands which endpoints require an application_id versus a grant_id. Without strict schema isolation, ChatGPT will attempt to pass application-level IDs into grant-level endpoints, resulting in constant 400 Bad Request errors.

Multi-Step Scheduling and Event Capacity Logic

Booking a meeting through Nylas Scheduler is not a single CRUD operation. It requires chronological API orchestration. To book a group event, the caller must first validate availability (list_all_nylas_scheduling_availabilities), verify the specific timeslot capacity against the configuration, and then commit the booking (create_a_nylas_scheduling_booking). If your MCP server exposes these as generic write operations without clear system prompts detailing the required sequence, the LLM will attempt to book meetings directly without checking free/busy status or validating timeslot constraints.

Step 1: Generate the Nylas MCP Server

To connect ChatGPT to Nylas, we first need to generate an MCP server endpoint. Truto handles the OAuth token lifecycle and automatically derives the necessary MCP tools from the Nylas v3 API definitions.

You can generate this server via the Truto dashboard or programmatically via the API.

Option A: Via the Truto UI

  1. Navigate to the Integrated Accounts page in your Truto dashboard and select your connected Nylas account.
  2. Click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Define your configuration. You can optionally filter by methods (e.g., Read only) or tags (e.g., messages, calendars).
  5. Copy the generated MCP Server URL. (It will look like https://api.truto.one/mcp/<secure-token>).

Option B: Via the API

If you are provisioning AI agents programmatically, you can generate the MCP endpoint with a single POST request. The response returns a secure URL containing a cryptographic token that handles routing and authentication for the specific Nylas grant.

curl -X POST https://api.truto.one/integrated-account/<INTEGRATED_ACCOUNT_ID>/mcp \
  -H "Authorization: Bearer <TRUTO_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ChatGPT Nylas Server",
    "config": {
      "methods": ["read", "write"],
      "tags": ["messages", "calendars", "contacts"]
    }
  }'

Step 2: Connect the MCP Server to ChatGPT

Once you have the generated URL, connecting it to ChatGPT is a straightforward configuration step.

Option A: Via the ChatGPT UI

For users on ChatGPT Plus, Pro, Team, or Enterprise plans with Developer Mode enabled:

  1. Open ChatGPT and navigate to Settings -> Apps -> Advanced settings.
  2. Enable Developer mode.
  3. Under MCP servers / Custom connectors, click Add new.
  4. Enter a name (e.g., "Nylas Integration").
  5. Paste the Truto MCP Server URL.
  6. Click Save.

ChatGPT will immediately connect to the endpoint, run the tools/list initialization, and populate its context window with the available Nylas tools.

Option B: Via Manual Config File (Local Agents)

If you are running local agents or using tools that rely on the standard MCP configuration files, you can wrap the Truto endpoint using the official SSE transport package. Add the following to your configuration file:

{
  "mcpServers": {
    "nylas-api": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/<YOUR_SECURE_TOKEN>"
      ]
    }
  }
}

Security and Access Control

Giving an LLM unconstrained access to a user's inbox and calendar is a massive security risk. Truto provides four distinct mechanisms to lock down the generated MCP server:

  • Method Filtering: Constrain the server operation types via config.methods. Passing ["read"] ensures the LLM can only execute get and list operations (e.g., reading emails), completely blocking create, update, or delete requests.
  • Tag Filtering: Restrict access to specific functional areas via config.tags. If you only want the AI to handle scheduling, pass ["calendars", "events"] to hide all email-related endpoints.
  • Secondary Authentication (require_api_token_auth): By default, the cryptographic token in the URL handles authentication. Setting this flag to true requires the client to also pass a valid Truto API token in the Authorization header. This protects the endpoint even if the URL leaks in application logs.
  • Expiration (expires_at): You can set a strict Unix timestamp for the server's time-to-live. Once expired, the server infrastructure automatically schedules cleanup, permanently invalidating the URL. This is ideal for granting an AI agent temporary triage access during a specific time window.

Hero Tools for Nylas AI Workflows

Truto automatically generates highly descriptive, schema-enforced tools for the entire Nylas API. Here are the highest-leverage tools for building communication-based AI agents.

list_all_nylas_grant_messages

This tool retrieves a paginated list of email messages for a connected grant. It supports powerful query parameters allowing the LLM to filter by subject, unread status, folders, and specific metadata. It is the primary read mechanism for email triage.

Usage note: Inbox queries can return massive payloads. Ensure the LLM utilizes the limit property and requests specific fields (like stripping raw MIME data unless explicitly required) to conserve context window limits.

"Fetch my 10 most recent unread emails regarding the 'Project Titan' launch. Give me a brief summary of the sender and the core question in each message."

create_a_nylas_messages_send

This tool allows the agent to send an email message immediately or schedule it for the future. It handles subject, body (HTML or plain text), recipients, and tracking options.

Usage note: When using scheduled sends (send_at), the endpoint operates asynchronously and will not return message headers immediately. The LLM must construct proper recipient arrays containing both names and email addresses.

"Draft an email to sarah@example.com confirming our meeting time for tomorrow at 2 PM. Schedule the send for 8:00 AM tomorrow morning."

list_all_nylas_scheduling_availabilities

This tool queries the free/busy schedule and returns valid available timeslots within a given time range for a specific Nylas Scheduler Configuration.

Usage note: This is critical for preventing double-booking. The LLM must pass the correct configuration_id along with a start and end time boundary. It should only attempt to book timeslots returned by this specific tool.

"Check my calendar availability for next week and find three open 30-minute slots where I am free to meet with the engineering team."

create_a_nylas_scheduling_booking

This tool executes the actual booking in Nylas Scheduler using the participants and details derived from the session's configuration object.

Usage note: The start_time and end_time parameters passed to this tool must exactly match a valid timeslot previously surfaced by the availability tool.

"Book the 3:00 PM timeslot on Thursday for a 45-minute technical review with the client, and include their email john.doe@example.com as the primary guest."

create_a_nylas_grant_notetaker

This tool invites a Nylas Notetaker bot to a specific meeting URL to record, transcribe, and summarize the event.

Usage note: If neither config_id nor notetaker_settings are provided in the payload, the bot will inherit settings from the nearest ancestor configuration. The bot's state transitions asynchronously; it cannot be queried for media until the meeting concludes.

"Deploy an AI notetaker bot to my Zoom meeting starting in 10 minutes at https://zoom.us/j/123456789. Ensure the bot records audio and generates a transcript."

create_a_nylas_grant_contact

This tool creates a new contact in the connected account's address book. It handles given names, surnames, nested email arrays, phone numbers, and custom metadata.

Usage note: New contacts default to source=address_book. The upstream provider write and the Nylas metadata write are not fully atomic, so the LLM should handle potential partial success errors gracefully.

"Create a new contact in my address book for Jane Smith. Her email is jane.smith@acmecorp.com and her phone number is 555-0198. Add a note that she is the new VP of Sales."

To view the complete JSON schemas and parameter details for every available operation, review the Nylas Integration Page.

Workflows in Action

By chaining these dynamically generated tools, ChatGPT can execute complex, multi-step communication workflows autonomously.

Scenario 1: The Autonomous Inbox Triage

Executives receive hundreds of emails daily. An AI agent can monitor the inbox, categorize high-priority items, and draft responses to standard inquiries without human intervention.

"Check my inbox for unread emails from the vendor domain '@acmecorp.com'. If they are asking for the signed contract, reply letting them know it will be sent by EOD Friday."

sequenceDiagram
    participant User as User Prompt
    participant AI as ChatGPT (Agent)
    participant MCP as Truto MCP Server
    participant Nylas as Nylas API

    User->>AI: "Check inbox for @acmecorp.com and reply..."
    AI->>MCP: Call list_all_nylas_grant_messages <br>(unread=true, search='@acmecorp.com')
    MCP->>Nylas: GET /v3/grants/{id}/messages
    Nylas-->>MCP: Return paginated messages
    MCP-->>AI: Messages JSON
    AI->>AI: Evaluate message intent
    AI->>MCP: Call create_a_nylas_messages_send <br>(to: sender, body: "Contract by EOD Friday")
    MCP->>Nylas: POST /v3/grants/{id}/messages/send
    Nylas-->>MCP: 200 OK (Message Sent)
    MCP-->>AI: Success payload
    AI-->>User: "Found 2 emails and sent the replies."

Outcome: ChatGPT identifies the specific emails via the list tool, processes the text to confirm the intent matches the prompt, and utilizes the send tool to distribute contextually accurate replies, completely bypassing the email client UI.

Scenario 2: Smart Meeting Coordination and Intelligence

Organizing a meeting and ensuring action items are captured typically requires bouncing between a calendar app and a transcription service. The LLM can handle the entire lifecycle.

"Find an open 1-hour slot tomorrow morning, book a strategy review with mark@example.com, and make sure to invite the AI notetaker bot to the meeting link."

sequenceDiagram
    participant User as User Prompt
    participant AI as ChatGPT (Agent)
    participant MCP as Truto MCP Server
    participant Nylas as Nylas API

    User->>AI: "Find a 1-hour slot tomorrow and invite notetaker..."
    AI->>MCP: Call list_all_nylas_scheduling_availabilities <br>(start_time, end_time)
    MCP->>Nylas: GET /v3/scheduling/availabilities
    Nylas-->>MCP: Return valid timeslots
    MCP-->>AI: Timeslot Array
    AI->>MCP: Call create_a_nylas_scheduling_booking <br>(timeslot, guest: mark@example.com)
    MCP->>Nylas: POST /v3/scheduling/bookings
    Nylas-->>MCP: 200 OK (Meeting details & URL)
    MCP-->>AI: Booking JSON
    AI->>MCP: Call create_a_nylas_grant_notetaker <br>(meeting_link: extracted_url)
    MCP->>Nylas: POST /v3/grants/{id}/notetakers
    Nylas-->>MCP: 200 OK (Bot scheduled)
    MCP-->>AI: Bot State JSON
    AI-->>User: "Meeting booked for 10 AM. Notetaker deployed."

Outcome: ChatGPT correctly sequences the scheduler API - first retrieving valid availability, confirming the booking to generate a conferencing link, and finally passing that specific link to the Notetaker endpoint to ensure the meeting is transcribed.

Handling Rate Limits in Production

When building AI agents that aggressively query communication platforms, rate limiting is inevitable. It is important to understand that Truto does not retry, throttle, or apply backoff logic on rate limit errors.

If the upstream provider (via Nylas) rejects a request due to volume, Truto passes the HTTP 429 Too Many Requests error directly back to the caller. Truto normalizes the upstream rate limit data into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification.

Your AI framework or LangChain loop must be configured to read these headers from the MCP response, catch the 429, and execute its own backoff/retry strategy before attempting the tool call again.

Strategic Wrap-Up

Connecting a robust communications platform like Nylas to an LLM unlocks entirely new autonomous workflows - from intelligent inbox triage to automated meeting coordination. By leveraging Truto's dynamically generated MCP servers, you eliminate the need to write static schemas, build OAuth token refresh workers, or maintain fragile integration boilerplate.

You simply connect the account, generate the URL, and let the AI orchestrate the business logic.

Two ways to put Nylas to work

Elaichifrom the team behind Truto

For you and your team

Use Nylas in ChatGPT yourself

Connect Nylas once, add Elaichi to ChatGPT, and ask. Every call is checked against your own permissions and logged.

Start free, 14 days No credit card required
Truto

For product teams

Ship Nylas to your customers

Your customers connect their own Nylas accounts. Your product gets one API and MCP tools for Nylas, through Truto.

FAQ

What is the easiest way to connect Nylas to ChatGPT?
The best way to connect Nylas to ChatGPT is Elaichi: connect Nylas to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14-day free trial and no credit card required.
How does the Nylas MCP server handle rate limits from email providers?
Truto's MCP server does not retry, throttle, or apply backoff on rate limit errors. When the upstream provider (via Nylas) returns an HTTP 429, Truto passes that error directly to ChatGPT. The rate limit information is normalized into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). The caller or AI agent is responsible for executing backoff and retry logic.
Can I restrict ChatGPT to only read calendar data and prevent it from sending emails?
Yes. When generating the MCP server URL, you can configure method filtering (e.g., passing 'read' only) and tag filtering (e.g., passing 'calendars'). This ensures ChatGPT only has access to GET and LIST operations for scheduling, completely isolating your email endpoints.
Do I need to manage separate OAuth tokens for Google, Microsoft, and iCloud?
No. The integrated account layer handles the underlying OAuth lifecycles and token refreshes for the respective providers. The MCP server URL generated by Truto abstracts this authentication, allowing ChatGPT to interact with the Nylas tools without needing to track access and refresh tokens.
Nylas Nylas in ChatGPT14 days free Start free

More from our Blog