{"name":"io.github.mindstone/mcp-server-microsoft-calendar","slug":"mindstone-mcp-server-microsoft-calendar","title":"Microsoft 365 Calendar","description":"Microsoft 365 Outlook calendar via Graph: list, get, create, update, respond, free/busy.","url":"https://mcp.market/server/mindstone-mcp-server-microsoft-calendar","rating":null,"grade":"A","score":94,"certified":false,"status":"active","category":"email","tags":["email","productivity"],"presence":{"score":36,"stars":14,"forks":4,"downloads_week":74,"last_push_at":"2026-11-04T07:07:50.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/mindstone/mcp-servers","website":null,"version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@mindstone/mcp-server-microsoft-calendar","version":"0.2.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Microsoft Entra (Azure AD) application client ID","isRequired":true,"format":"string","name":"MS_CLIENT_ID"},{"description":"Path to the per-user Microsoft config directory (credentials/, accounts.json)","isRequired":true,"format":"filepath","name":"MS_CONFIG_DIR"},{"description":"Account email when running in multi-account per-instance mode (falls back to the first account in accounts.json)","format":"string","name":"MS_ACCOUNT_EMAIL"},{"description":"Logical package ID surfaced in error responses","format":"string","default":"Microsoft365Calendar","name":"MS_MCP_PACKAGE_ID"},{"description":"Override the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)","format":"number","default":"60000","name":"MICROSOFT_REQUEST_TIMEOUT_MS"}]}],"tools":[{"name":"cancel_event","description":"Cancel a meeting as its organizer, optionally sending a cancellation message to all attendees. The event moves to the Deleted Items folder. Prefer this over delete_event for meetings with attendees so they are notified.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_event","description":"Create a new calendar event.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_event","description":"Delete a calendar event.","write_action":true,"price_micros":0,"input_schema":null},{"name":"find_meeting_times","description":"Suggest time slots within a window when ALL given attendees are free, based on their free/busy availability. Returns candidate start/end times in the resolved timezone that can be passed directly to create_event. Include your own email address in attendees to account for your own availability. A slot is only suggested when availability for EVERY requested attendee was resolved; otherwise no slots ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_event","description":"Get detailed information about a specific calendar event.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_free_busy","description":"Check availability/free-busy status for users.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calendars","description":"List all calendars the user has access to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_events","description":"List calendar events within a date range. Returns JSON by default (with timezoneInfo showing calendar, device, and resolved timezone). Set returnText=true for a human-readable agenda format. Pass deviceTimezone from the system prompt for fallback if calendar settings are unavailable. If the result is truncated (truncated: true), narrow the date range or raise top (max 100) to see more events.","write_action":false,"price_micros":0,"input_schema":null},{"name":"respond_to_event","description":"Accept, decline, or tentatively accept an event invitation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_event","description":"Update an existing calendar event.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":94,"grade":"A","scanned_at":"2026-11-04T19:57:43.131Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-04T19:57:43.096Z","components":{"code":{"score":25,"max":25,"notes":["18 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@mindstone/mcp-server-microsoft-calendar","version":"0.2.0","found":true,"license":"FSL-1.1-MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-08-07T13:44:28.956Z","repositoryUrl":"git+https://github.com/mindstone/mcp-servers.git","weeklyDownloads":74}],"repo":{"found":true,"owner":"mindstone","repo":"mcp-servers","archived":false,"pushedAt":"2026-11-04T07:07:50Z","stars":14,"forks":4,"openIssues":27,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/58389135?v=4","ownerCreatedAt":"2019-12-01T11:21:22Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/58389135?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":14,"forks":4,"downloadsWeek":74,"license":"NOASSERTION","lastPushAt":"2026-11-04T07:07:50.000Z","score":36}}}},"grade_history":[],"reviews":[]}