Gmail, Calendar & Slack
- Connect Gmail and Google Calendar to Claude Code through the Anthropic claude.ai connector and understand why local authentication does not work for Google
- Use Claude to search email, draft messages, and check calendar availability without leaving your development workflow
- Connect Slack to Claude Code and use it to read thread context and post updates as part of a development workflow
Three communication tools that do not know Claude Code exists
Gmail, Google Calendar, and Slack are where a significant portion of development context lives: the stakeholder's feedback email, the design review calendar invite, the Slack thread where the product decision was made. When Claude cannot read these tools, developers either copy the relevant content into the chat manually or proceed without that context.
Connecting these communication tools means Claude can read the email thread, check your calendar for the next review meeting, and read the Slack discussion — all without you switching applications or copying text.
Why Google requires the claude.ai connector
Gmail and Google Calendar cannot be connected through a local claude mcp add command the way GitHub or Sentry can. Google's OAuth identity provider only accepts redirect URIs that are pre-registered with the application. Anthropic has registered Claude Code's callback URI at claude.ai, meaning the OAuth flow must go through claude.ai's infrastructure to complete correctly.
Attempting to authenticate Google through a local browser flow produces an error about an unregistered redirect URI. This is by design — Google's security model requires the redirect destination to be known in advance, and only the claude.ai endpoint is registered.
The practical result: connect Gmail and Google Calendar through claude.ai → Settings → Connectors, not through claude mcp add.
Connecting Gmail and Google Calendar
Go to claude.ai, open Settings, and navigate to Connectors. Find Gmail and Google Calendar in the list and connect each one through the Google OAuth flow. You'll be asked to grant access to your Google account — the permissions requested correspond to what Claude will be able to read and write.
Once connected at claude.ai, the connectors appear automatically in Claude Code the next time you start a session using your claude.ai account. You do not need to run any claude mcp add command — the connection is inherited from your claude.ai settings.
Inside a Claude session, run /mcp to confirm Gmail and Google Calendar appear as connected servers.
Working with Gmail
With Gmail connected, Claude can search, read, and draft email:
Search my email for the stakeholder feedback on the Q3 roadmap proposal.
Claude searches your Gmail, finds the relevant threads, and summarizes the feedback — without you opening a browser.
Draft a reply to the last email from Sarah about the API integration timeline. Explain that we're on track but need the design assets by Friday.
Claude finds the thread, reads it for context, and creates a draft in your Gmail Drafts folder. The draft is not sent — it waits for your review.
The cardinal rule for Gmail: Always compose to drafts, never send directly. Claude can write email well, but the moment of sending should always be a human decision. Review every draft before clicking Send.
Working with Google Calendar
What does my day look like tomorrow? Do I have any conflicts between 2pm and 4pm?
Claude reads your calendar and returns a summary of your scheduled events, including any overlapping commitments.
Find a 30-minute window this week when I'm free to meet with the frontend team. Check their calendars too.
If the frontend team has shared their calendars with you, Claude can check availability across multiple people and suggest open slots.
Calendar integration is particularly useful at the start of a work session: "Summarize my meetings today and flag any that have related GitHub PRs or Linear issues I should review beforehand."
Connecting Slack
Slack can be connected either through a claude.ai Slack connector (if available in your region and plan) or through the open-source Slack MCP server using a bot token.
For the bot token approach, create a Slack app at api.slack.com/apps, install it to your workspace, and copy the Bot Token (it starts with xoxb-). Grant the app scopes: channels:read, channels:history, chat:write, and search:read.
Add the server:
claude mcp add --env SLACK_BOT_TOKEN=xoxb-YOUR_TOKEN --transport stdio slack -- npx -y @modelcontextprotocol/server-slack
Once connected, Claude can read Slack channels, search messages, and post to channels the bot has been invited to.
Working with Slack
Read the #engineering channel for the last 24 hours and summarize any decisions made about the authentication redesign.
Claude reads the channel history and extracts the relevant discussion — including the decision, who made it, and any linked resources.
Post a message to #deployment-updates saying the v2.3.1 release is complete and linking to the GitHub release notes.
Claude posts the message as the bot. Because Slack posts are visible to the team, treat them like email drafts: verify the message before asking Claude to send it, or have Claude draft the text for you to post manually.
The most practical Slack workflow for developers: read the thread where a decision was made, use that context to inform an implementation, then post an update when the implementation is complete — all from one Claude session.
- Gmail and Google Calendar cannot be connected locally — Google's OAuth only accepts redirect URIs registered at claude.ai, so connect them through claude.ai Settings → Connectors and they appear in Claude Code automatically.
- Claude should compose Gmail messages to Drafts, never send directly — every outgoing message deserves human review before it leaves your account.
- Google Calendar access through Claude is most useful at the start of a session: a calendar summary with linked issues gives Claude the context it needs to prioritize your day.
- Slack bot tokens require creating a Slack app at api.slack.com/apps with the right scopes — the bot can only read channels it has been invited to.
- The full communication workflow — read Slack thread context, implement the feature, post an update to Slack — closes a loop that normally requires constant application switching.