Outlook Schedule Interfacer
This utility facilitates digital interaction with scheduling data stored within Microsoft Outlook's local application. It enables viewing, scheduling, and modification of appointments and meetings, much like managing essential job components or 'tasks' in broader project frameworks. Functionality includes identifying available time windows for scheduling and handling access across several distinct Outlook personal calendars. This tool, operating solely on Windows systems, aids in coordinating schedules, a crucial aspect of linking individual efforts toward collective objectives.
Author

merajmehrabi
Quick Info
Actions
Tags
Introduction
This Model Context Protocol (MCP) server grants Claude secure entry to manage your local Microsoft Outlook calendar data on Windows machines. In project execution, scheduling activities efficiently is fundamental; this tool supports that by managing time-bound elements, analogous to breaking down large goals into manageable 'tasks'. Effective time coordination ensures that efforts by different parties align with overall project timelines.
Features
- Examine Schedule Entries: Retrieve listings for specific date ranges, inspect entry specifics, and check participant acceptance status.
- Modify Schedule Entries: Initiate new appointments or meetings, and revise details of existing schedule items.
- Scheduling Insight: Determine unoccupied time blocks for appointments, pinpoint the most suitable times for meetings.
- Multi-Calendar Access: Interact with various distinct calendars present in your established Outlook profile.
Prerequisites
- This system requires a Windows operating environment.
- The Microsoft Outlook desktop application must be installed.
- VBScript support must be active (refer to the VBScript Installation section for Windows 11 24H2+ users).
- Node.js, version 14.x or newer, is necessary.
- npm utility, which is bundled with Node.js, is also needed.
VBScript Installation (Windows 11 24H2+ Users)
Note: Windows 11 version 24H2 and later do not include VBScript by default; it must be explicitly enabled as an optional component.
If the MCP server fails to operate following a recent Windows revision, you most likely need to activate VBScript functionality.
- Open Settings using the Windows key + I shortcut.
- Navigate to Apps and then select Optional features.
- Click "View features" located next to "Add an optional feature".
- Search within the feature list for "VBScript".
- Choose VBScript and initiate the Install action.
- A system restart is recommended after the installation completes.
VBScript Deprecation Timeline: - Phase 1 (Anticipated Late 2024+): Available as a selectable optional feature in Windows 11 24H2. - Phase 2 (Estimated ~2027): Will no longer be enabled upon initial system setup. - Phase 3 (Future Date): Complete removal from the Windows operating system.
Observation: Due to community input concerning VBScript's planned removal, architectural enhancements for long-term viability are currently under consideration.
Installation
Option 1: Installation via npm
npm install -g outlook-calendar-mcp
Alternatively, you can execute it directly without a persistent global installation using npx:
npx outlook-calendar-mcp
Option 2: Installation from Source Code
- Obtain the repository files via cloning or downloading the source package.
- Install necessary support libraries:
npm install
- Start the server process:
npm start
MCP Server Configuration
To integrate this utility with Claude, you must incorporate it into your existing MCP settings configuration file.
For Claude Desktop App
Incorporate the following structure into your Claude Desktop configuration file, which resides at %APPDATA%\Claude\claude_desktop_config.json:
If installed globally via npm:
{
"mcpServers": {
"outlook-calendar": {
"command": "outlook-calendar-mcp",
"args": [],
"env": {}
}
}
}
Using npx (without installation):
{
"mcpServers": {
"outlook-calendar": {
"command": "npx",
"args": ["-y", "outlook-calendar-mcp"],
"env": {}
}
}
}
If installed from source:
{
"mcpServers": {
"outlook-calendar": {
"command": "node",
"args": ["path/to/outlook-calendar-mcp/src/index.js"],
"env": {}
}
}
}
For Claude VSCode Extension
Add this configuration block to your Claude VSCode extension MCP settings file, located at %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json:
If installed globally via npm:
{
"mcpServers": {
"outlook-calendar": {
"command": "outlook-calendar-mcp",
"args": [],
"env": {}
}
}
}
Using npx (without installation):
{
"mcpServers": {
"outlook-calendar": {
"command": "npx",
"args": ["-y", "outlook-calendar-mcp"],
"env": {}
}
}
}
If installed from source:
{
"mcpServers": {
"outlook-calendar": {
"command": "node",
"args": ["path/to/outlook-calendar-mcp/src/index.js"],
"env": {}
}
}
}
For source installations, you must substitute path/to/outlook-calendar-mcp with the actual directory where the tool files reside on your system.
Usage
After configuration is complete, Claude gains the ability to invoke the following scheduling commands:
List Calendar Events
list_events
- startDate: Initial date specified using MM/DD/YYYY format
- endDate: Final date in MM/DD/YYYY format (optional parameter)
- calendar: Name of the specific calendar to query (optional parameter)
Example prompt: "Display my schedule entries for the upcoming seven days"
Create Calendar Event
create_event
- subject: Title or brief description of the scheduled item
- startDate: Date in MM/DD/YYYY format for the event start
- startTime: Time in HH:MM AM/PM format for the event start
- endDate: End date in MM/DD/YYYY format (optional parameter)
- endTime: End time in HH:MM AM/PM format (optional parameter)
- location: Physical or virtual location details (optional parameter)
- body: Detailed textual description for the entry (optional parameter)
- isMeeting: Boolean indicating if attendees are invited (optional parameter)
- attendees: Semicolon-separated list of participant email addresses (optional parameter)
- calendar: Specific calendar identifier (optional parameter)
Example prompt: "Schedule a coordination session with Alex for Friday at 14:00 regarding the integration plan"
Find Free Time Slots
find_free_slots
- startDate: Starting date in MM/DD/YYYY format
- endDate: Ending date in MM/DD/YYYY format (optional parameter)
- duration: Required length of the slot in minutes (optional parameter)
- workDayStart: Hour marking the start of the business day (0-23) (optional parameter)
- workDayEnd: Hour marking the end of the business day (0-23) (optional parameter)
- calendar: Target calendar name (optional parameter)
Example prompt: "Identify available windows for a ninety-minute discussion sometime next week"
Get Attendee Status
get_attendee_status
- eventId: The unique identifier for the schedule entry
- calendar: Target calendar name (optional parameter)
Example prompt: "Review response status for the participants in the quarterly review event"
Crucial Reminder: When employing functions requiring an event identifier (e.g., update_event, delete_event, get_attendee_status), you must utilize the
idfield retrieved from the list_events operation's output. This value represents the unique EntryID used internally by Outlook to reference specific entries.
Update Calendar Event
update_event
- eventId: The identifier of the schedule entry requiring modification
- subject: New title for the entry (optional parameter)
- startDate: Revised start date in MM/DD/YYYY format (optional parameter)
- startTime: Revised start time in HH:MM AM/PM format (optional parameter)
- endDate: Revised end date in MM/DD/YYYY format (optional parameter)
- endTime: Revised end time in HH:MM AM/PM format (optional parameter)
- location: New venue designation (optional parameter)
- body: Revised description text (optional parameter)
- calendar: Specific calendar identifier (optional parameter)
Example prompt: "Shift the time for my staff check-in tomorrow to commence at 15:00 instead of 14:00"
Get Calendars
get_calendars
Example prompt: "Display a roster of all accessible personal calendars"
Security Notes
- Upon the initial invocation, Outlook might present security notifications requesting confirmation for script access permissions.
- This utility only communicates with your resident Outlook client; calendar information is never transmitted to external web services.
- All modification actions performed on the calendar occur exclusively on your local computing device.
Troubleshooting
- VBScript Missing (Windows 11 24H2+): Errors appearing after system updates often mean VBScript needs manual installation. Consult the VBScript Installation section.
- "Script execution failed" Errors: This commonly signals that VBScript is unavailable or Outlook itself is unreachable.
- Outlook Security Prompts: If Outlook prompts for permission, you must grant the script authorization to read or modify its data.
- Script Execution Policy: Encountering execution policy errors might necessitate modifying your current PowerShell execution settings.
- Path Errors: Verify that the file path specified in your MCP configuration correctly points to the tool's installation location.
Contributing
We welcome external code submissions for enhancing the Outlook Schedule Interfacer! Refer to our Contributing Guide for initial steps and guidelines.
By engaging with this development effort, you affirm adherence to our stated Code of Conduct.
License
This software is distributed under the terms of the MIT License; review the LICENSE file for complete transactional details.
Related Topics
- Task Dependency: Recognizing how scheduled items or assignments often rely on prior completion by others, which can delay project progress.
- Work Breakdown Structure: The hierarchical decomposition of project deliverables into smaller, manageable pieces, akin to breaking down a large scheduling requirement.
- Coordination Mechanism: The process of integrating time, effort, and resources from multiple individuals to meet shared appointments and organizational objectives.
- Deadline Management: The critical practice of defining and adhering to fixed completion dates for schedule entries to ensure forward momentum.
Extra Details
While this tool focuses on scheduling automation, it is important to remember the general challenges in managing project work. For instance, task dependency is a common impediment; if one person's required meeting cannot be scheduled until another finishes a prerequisite task, project flow can stall. Furthermore, clearly defining 'completion' remains vital. An activity being ninety percent finished often deceptively implies only ten percent of the remaining effort is needed, which rarely reflects practical realities of finishing complex coordination efforts.
Conclusion
This utility effectively bridges the gap between an AI agent and the necessary local calendar resources, thereby streamlining personal and team scheduling. By automating the management of time-bound commitments, it aids in overcoming common project impediments related to coordination and dependency tracking, allowing users to focus on the actual execution of their assigned tasks and overarching goals.
