calendar-tasks-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@calendar-tasks-mcpshow me my events for next Tuesday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
calendar-tasks-mcp
An MCP server that lets Claude manage the workshop@burrowsjewellers.com.au Outlook calendar and Microsoft To Do, via Microsoft Graph. Built as a sibling to burrows-mcp, in the dashboard's Node/ESM style, with the same token-lifecycle pattern as xeroClient.js (mint once → silent refresh, refresh token stored in Postgres).
Delegated, least-privilege: it signs in as workshop@ and can only touch that mailbox's calendar and tasks — no mail, no files.
Tools
Tool | What it does |
| Create a calendar event (local wall-clock time + timezone), with a phone reminder. |
| Change fields on an event by id. |
| Delete one event by id. |
| List events in a window (resolve an id before update/delete). |
| Add a task to the "Burrows Ops" To Do list (due date + reminder optional). |
| Mark a task complete. |
| List tasks (resolve an id before completing). |
The agent is instructed (via tool descriptions) to confirm before deleting events or acting on many items at once — this is write access to a live calendar.
Related MCP server: Outlook MCP Server
One-time setup
1. Register the Entra (Azure AD) app
In the Entra admin center → Identity → Applications → App registrations → New registration:
Name:
burrows-calendar-tasks-mcpSupported account types: Accounts in this organizational directory only (single tenant).
Register. Copy the Application (client) ID and Directory (tenant) ID → these become
GRAPH_CLIENT_ID/GRAPH_TENANT_ID.Authentication → Advanced settings → Allow public client flows → Yes. (Device-code flow needs this; no client secret is created.)
API permissions → Add a permission → Microsoft Graph → Delegated permissions, add exactly:
Calendars.ReadWriteTasks.ReadWriteoffline_accessUser.Read
Grant admin consent (button at the top) using the Global Admin
adm_mark.burrows@…onmicrosoft.com.
2. Configure
cp .env.example .env
# set GRAPH_CLIENT_ID, GRAPH_TENANT_ID, confirm GRAPH_DEFAULT_TIMEZONE, fill PG* for the token table
npm install3. Sign in once (mint the refresh token)
npm run loginOpen the printed URL, enter the code, and sign in as workshop@burrowsjewellers.com.au. The refresh token is stored (Postgres graph_tokens table by default). After this the server refreshes access tokens silently.
4. (Optional) Verify live
npm run smoke # creates + cleans up a test event and task against the real mailboxRun / deploy
Locally, the MCP runs over stdio:
npm startOn the droplet, run it under pm2 like burrows-dashboard-api:
pm2 start src/server.js --name calendar-tasks-mcp --interpreter node
pm2 saveRegister it with your MCP client (e.g. burrows-mcp's host config):
{
"mcpServers": {
"calendar-tasks": {
"command": "node",
"args": ["/path/to/calendar-tasks-mcp/src/server.js"]
}
}
}Config (.env)
Key | Purpose |
| From the Entra app registration. |
| IANA tz applied to events/tasks. Confirm the store's timezone. |
| Default event reminder lead time (30). |
| To Do list for tasks ( |
|
|
| Token table (reuses |
Tests
npm test # payload-builder unit tests + a spawned-server integration test (no live Graph needed)Notes / cautions
Reminders fire on the phone only if
workshop@is signed into the phone's Outlook app. Add it if not.Conditional-access policies can occasionally force a fresh
npm run login; the refresh token isn't guaranteed to last forever.Token storage mirrors the dashboard's
xero_tokens: one row, app-owned, never committed to git.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceConnects Claude with Microsoft Outlook through the Graph API, providing comprehensive email, calendar, folder management, and rules creation capabilities.Last updated19
- Alicense-qualityCmaintenanceConnects Claude to Microsoft Outlook through the Microsoft Graph API, enabling email management (list, search, read, send) and calendar operations (list, create, accept, decline, delete events) via OAuth 2.0 authentication.Last updated1MIT
- Flicense-qualityCmaintenanceProvides Claude Desktop and Claude Code with access to Microsoft 365 email and calendar services via the Microsoft Graph API. It enables users to manage emails, search folders, schedule calendar events, and check availability through natural language commands.Last updated
- AlicenseBqualityDmaintenanceEnables interaction with Microsoft Outlook services (Tasks, Calendar, Email, Contacts, and Teams) via the Microsoft Graph API, providing 39 tools for Claude Desktop with natural language and JSON output.Last updated39MIT
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/itscartmanbrah/calendar-mcp-task'
If you have feedback or need assistance with the MCP directory API, please join our Discord server