How I Automated Email Sending and Appointment Scheduling Using Claude, Cloudflare Workers, and Power Automate
Claude AI drafts the email in my style, an MCP server running on a Cloudflare Worker sends it via the Outlook API, and the recipient books an appointment with a single click. This saves me 90 minutes a day—and here’s how it all works from a technical standpoint.
Half of a manager’s job is communication. Thirty to fifty emails a day—delegating, checking in, providing feedback, and communicating decisions. Each one has a different tone and context. This isn’t value-adding work—it’s the decision behind it. I’ve built a system that takes the drafting, formatting, and sending off my hands. What remains is the decision.
The architecture — three layers
1. Claude AI (language intelligence) — Generates the email based on a style database trained on 525 real emails. It knows the recipient’s communication profile, automatically adjusts the tone, and intentionally includes 1–2 natural typos (missing accents, mobile typing errors)—because perfect spelling is the number one sign of AI.
2. Cloudflare Workers — lightweight serverless programs that run as MCP (Model Context Protocol) servers on Cloudflare’s edge network. Claude uses this to access external services via the standard JSON-RPC 2.0 protocol.
3. Outlook Email Connector (Delivery) — a custom MCP server on Cloudflare Worker that sends emails via the Outlook API on behalf of the sender, using their signature and in HTML format.
How does the MCP connector work technically?
The MCP (Model Context Protocol) is an open standard developed by Anthropic that enables AI assistants to invoke external tools using natural language. The key point is that Claude does not call the Outlook API directly—instead, it does so via an MCP server running on Cloudflare Worker.
Worker is a JSON-RPC 2.0 endpoint. When Claude wants to send an email, the following happens:
- Claude is the
tools/callcall the method thesend_emailusing a tool - The Worker receives the request, validates the parameters (
to,subject,body,importance) - It forwards the request to the Outlook REST API using an OAuth 2.0 token
- The reply goes back to Claude, who confirms that the message was sent successfully
The Worker's code is minimal—the entire email connector is less than 200 lines of TypeScript. The benefits of Cloudflare Workers include zero cold start time, global availability, and virtually free operation on the free tier.
HTML email formatting — and what can go wrong
The biggest technical challenge in sending emails was not generating the text, but formatting it. The Outlook connector processes the text received in the body field as HTML. If we send plain text, Outlook does not preserve the line breaks—the salutation and the main body of the text merge into one.
The solution: the body is always HTML, tags for line breaks. But there’s a sneaky trap. The HTML in the & character automatically &is converted to . This is a standard HTML entity—the browser can convert it back. However, query strings in Microsoft Bookings URLs are sensitive to this, and the conversion breaks the link.
Automation is never perfect on the first try. I sent myself five test emails before I found a format that worked.
I tried URL-encoding %26— didn't work either. The solution turned out to be an architectural one: instead of specific meeting-type URLs, I use a single generic Bookings link that contains only two query parameters. Fewer & = fewer conversion points = a working link.
Automating Appointment Scheduling
The system automatically inserts a clickable Microsoft Bookings link at the end of the email as a link, not a clunky URL. With a single click, the recipient selects the meeting type (in-office, online, in-town) and books an available time slot. No back-and-forth emails, no “Is Tuesday okay for you?”—just one step.
The Style Engine
Most AI email generators produce formulaic, polite, and diplomatic messages. A CEO’s emails are not like that. They are short, direct, and full of personality.
My system's style database was created using 525 real emails. It includes typical sentence structures, vocabulary, and salutation patterns—as well as a 65-item catalog of common mobile-related typos.
The system also manages colleague profiles: it uses a different style when writing to the CFO (starting with numbers, detail-first) than when writing to the sales representative in Munich (English, specific KPIs, boundary-setting). The profile includes the recipient’s DISC type, trigger points, and preferred email format.
The biggest giveaway of an AI-generated email is flawless spelling. Natural typos aren’t bugs—they’re features.
The 5-step process for generating emails:
- Instructions: I will tell you verbally what I want to communicate
- Recipient recognition: the system loads the profile and retrieves the email address from Outlook
- Draft: Claude’s version—in my style, with intentional typos, signed “v”
- Approval: Nothing will be sent out until I approve it
- Send: As an HTML email via the Outlook connector
Why not Power Automate?
Power Automate is trigger-based: if something happens, do something. My need is conversation-based: decisions about the appropriate tone must be made based on the context, previous correspondence, and the recipient’s profile. This requires linguistic intelligence, not workflow automation.
Power Automate can't learn from my writing style. It can send template emails—but they're always the same. The Claude-based system generates each email individually.
The two aren’t competing—they complement each other. Power Automate is the master of repetitive, rule-based automation. The combination of Claude and Cloudflare Workers is the engine behind context-aware, intelligent communication.
Numbers
- Time spent writing emails: from 4 minutes to 45 seconds per email
- Meeting scheduling: From 3–5 email exchanges to 0
- Daily time savings: 90–120 minutes
- Incorrect submissions: 0 — due to the approval step
Summary
By integrating three technologies—Claude AI, Cloudflare Workers, and the Outlook API—I’ve automated 80% of my daily email communication. The system doesn’t remove me from the process: it makes suggestions, but the decision is always mine. The MCP protocol and Cloudflare Workers infrastructure allow us to integrate any external service into the AI assistant in a standardized way—with minimal code and zero maintenance.
Related articles
- 7 unique AI connectors that save 15–20 hours of work per week — The email connector is one of the 7 MCP connectors — Here’s the complete ecosystem
- We no longer build chatbots—we build a digital workforce —The strategic framework: why “agent” and not “chatbot”
Frequently Asked Questions (FAQ)
How much does it cost to set up a system like this?
The free tier of Cloudflare Workers allows 100,000 requests per day—that’s many times the email traffic of a CEO. The cost of the Claude API depends on usage, but for 30–50 emails a day, we’re talking about a few thousand forints a month. The Outlook API is included in an existing Microsoft 365 subscription. The total cost is a fraction of what the saved work time is worth.
Is it safe for AI to access my email account?
The system uses an OAuth 2.0 token with limited permissions—specifically, for sending emails only. It does not read emails or automatically access the calendar. The Cloudflare Worker runs in an isolated environment, and human approval is required before every email is sent.
Can the recipient tell that the email was written by AI?
That was the biggest challenge. The system uses a style database trained on 525 real emails, along with colleague profiles and a 65-item typo catalog. The intentional errors—missing accents, mobile typos, a “v” signature—look exactly as if I had written them on a mobile phone. So far, no one has reported them as suspicious.
What happens if the AI makes a mistake?
No email is sent without approval. The system always displays the draft and waits until it receives an “OK” or “Go” response. If I don’t like the wording, I suggest a change, and it regenerates the email. The final decision is always mine.
What programming skills are required to build it?
Writing a Cloudflare Worker requires basic knowledge of TypeScript/JavaScript—the entire email connector is less than 200 lines of code. The MCP protocol is standard and well-documented. Claude skills are Markdown files and contain no code. The biggest challenge is not the technical implementation, but compiling the style database and testing.
Can I use this solution if I don't use Outlook?
The architecture is modular. The Outlook connector can be replaced with any email API—Gmail, SendGrid, Amazon SES. The key is the three-layer architecture (language intelligence + MCP server + email API)—each component can be freely swapped out.
How does the system handle confidential or sensitive content?
The Claude API runs on Anthropic's servers, which are SOC 2 Type II certified. Cloudflare Workers also holds enterprise-level security certifications. The system does not store emails long-term—the generated draft is not retained after approval and sending. The same precautions apply to handling confidential content as with any cloud-based tool.






