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.
Latest Blog Posts
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