# Extensions: connecting Gemini to apps
Ask Gemini "summarize the key points from this YouTube video" and paste a link, and it will actually watch the transcript and answer, no copy-paste required. That single move (reaching out to a live Google app to get real data) is what Extensions do. They turn Gemini from something that talks about the world into something that can pull from it.
An Extension is a connector that lets the Gemini app call a specific Google service on your behalf, in real time, inside a normal conversation. When an extension is on and your prompt clearly needs it, Gemini routes part of the request to that service, gets structured data back, and weaves it into the answer.
The Google-built extensions available in the Gemini app include:
This is different from grounding with Google Search, which fetches public web results to reduce . Extensions into *named apps* (often your private data, like your own Drive) and can return app-specific structure. Search grounding answers "what is true on the open web." Extensions answer "what is in this video / my Drive / this route."
> Note: extension names and availability shift over time and by account type. The current list lives in the Gemini Apps Help Center, which is the source of truth.
Say you saved a conference talk to "watch later" and also have a strategy doc in Drive. You want both reconciled.
Prompt:
> Summarize the 5 main arguments in this talk: youtube.com/watch?v=EXAMPLE, then find my Drive doc named "2026 Roadmap" and tell me which arguments contradict our plan.
Here is what happens under the hood:
1. Gemini detects two intents: a YouTube lookup and a Drive lookup.
2. The @YouTube extension fetches the video's transcript and metadata.
3. The @Google Workspace extension searches *your* Drive for the file "2026 Roadmap."
4. Gemini fuses both sources and produces the comparison.
You can force a tool explicitly by typing @ in the Gemini app, which opens the extension picker. @YouTube summarize this: <link> is unambiguous and tends to be more reliable than hoping Gemini infers it.
One real constraint worth internalizing: the Workspace extension searches content *you already own and can access*. It is bounded by your Google account permissions. It will not surface a colleague's private file you cannot open. This is the security model, not a limitation to work around.
Extensions are managed per account, not per chat.
1. Open the Gemini app.
2. Go to Settings → Extensions (or the Extensions panel in the app).
3. Toggle each one (YouTube, Workspace, Maps, Flights, Hotels) on or off.
When you enable the Workspace extension the first time, you grant Gemini permission to read your Gmail, Drive, and Docs content for the purpose of answering your prompts. You can revoke this at any time from the same panel or from your Google Account permissions page.
Two things that trip people up:
@Gmail returns nothing, check with your Workspace admin before assuming it is broken.The Gemini *app* extensions above are pre-built, consumer-facing, and managed with toggles. But the real depth for a builder is that the *same idea* (let the model call live tools) is something you implement yourself through the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition →. Knowing where the line sits matters.
A Gem (your saved custom assistant) operates inside the Gemini app, so it inherits the extensions you have enabled. A "Travel Planner" Gem can lean on Maps and Flights without you re-enabling anything per chat. The Gem's instructions shape *how* it uses them; the account toggle controls *whether* they exist.
When you move to Google AI Studio and the Gemini API, you do not get the app's pre-built YouTube or Drive extensions. Instead you wire up capabilities yourself. Two mechanisms matter:
1. Built-in tools. The APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → exposes first-party tools you switch on, most notably grounding with Google Search and code execution. This is config, not custom code:
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="What were Google's most recent AI announcements?",
config=types.GenerateContentConfig(
tools=[types.Tool(google_search=types.GoogleSearch())]
),
)
print(response.text)That google_search tool is the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → equivalent of the app's search grounding: the model decides when to query, fetches live results, and cites them. You read the model tier from the model string. Flash is the fast, cheaper tier for high-volume tool calls; Pro is the stronger reasoner for complex multi-step tool use.
2. Function calling (your own tools). This is how you connect Gemini to *any* app or APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → you control: your CRMCRMCustomer Relationship Management: software and strategy to manage and analyse customer interactions throughout their lifecycle.View full definition →, an internal inventory service, a payments system. You describe a function; the model decides when to call it and with what arguments; your code runs it and returns the result.
from google import genai
from google.genai import types
def get_order_status(order_id: str) -> dict:
# Your real backend call goes here.
return {"order_id": order_id, "status": "shipped", "eta": "2026-03-14"}
client = genai.Client()
chat = client.chats.create(
model="gemini-2.5-flash",
config=types.GenerateContentConfig(tools=[get_order_status]),
)
reply = chat.send_message("Where is order A-2291?")
print(reply.text)The SDK reads your function's signature and docstring to build the tool schemaschemaA schema is the formal blueprint that defines how data is structured, named, typed, and related within a database, file, or message.View full definition → automatically, calls get_order_status("A-2291") when needed, and feeds the result back into the conversation. *This* is the building block behind every "Gemini that does things" you will ship. The app's Maps extension is just a polished, hosted version of the same pattern.
Knowledge check
1. According to the lesson, what is the core function of a Gemini Extension?
2. How does the lesson distinguish Extensions from grounding with Google Search?
3. In the Gemini ecosystem, what is the main purpose of grounding a response with Google Search?
4. Select ALL correct answers about the Google-built extensions mentioned in the lesson.
Sélectionnez toutes les réponses correctes.
5. Select ALL correct answers about how Extensions behave in a Gemini conversation.
Sélectionnez toutes les réponses correctes.
Function calling is one tool, one turn. Real systems need many tools, memory, and multi-step planning. Google's stack gives you escalating options.
If your "app" *is* Google Workspace (a Sheet that should email a summary, a Doc that triggers a workflow), Apps Script lets you call the Gemini APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → from inside the Workspace environment with a UrlFetchApp request or the Vertex AI integration. This is the lowest-friction way to give a spreadsheet live AI behavior without standing up servers.
The **Agent Development Kit** is Google's open-source framework for building agents that orchestrate multiple tools, maintain state across steps, and can hand off to other agents. Where function calling is "model calls one function," ADK is "agent runs a plan that may call ten functions, retry, and delegate." If you are building the production version of a multi-tool assistant, ADK is the structured way to do it.
**Vertex AI** is where these agents go to live at scale: managed endpoints, governance, logging, IAM-based access control, and connectors to enterprise data. The mental model:
Two more "extensions in spirit" worth naming. Gemini CLI brings the model into your terminal so it can read your filesystem, run commands, and act on a local project. Gemini Code Assist embeds it in your IDE. Both are tool-using Gemini connected to a developer's working environment rather than to consumer apps, and both are useful when the "live data" you want Gemini to reachreachThe number of unique people exposed to your message in a given period. Unlike impressions, reach counts each person once, no matter how often they see it.View full definition → is your own codebase.
A quick decision guide:
@).The through-line: every one of these is the same core capability (a model that can decide to call a tool and use the result), exposed at a different altitude. Learn it once at the app level, recognize it everywhere else.
@YouTube, @Gmail, or @Maps explicitly when you need app-specific or private data; use search grounding for fresh public facts.@ picker.@Gmail or @Drive returns nothing.