@sam2kb/m365-mcp 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -3
- package/SKILL.md +8 -3
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/security.js +1 -0
- package/dist/security.js.map +1 -1
- package/dist/tools/calendar.d.ts +99 -3
- package/dist/tools/calendar.js +84 -29
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/contacts.d.ts +34 -0
- package/dist/tools/contacts.js +4 -4
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/files.js +9 -9
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/mail.js +14 -14
- package/dist/tools/mail.js.map +1 -1
- package/dist/tools/tasks.js +13 -13
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/teams.js +7 -7
- package/dist/tools/teams.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ as reviewed on July 18, 2026.
|
|
|
33
33
|
| Tasks | ✅ | ❌ | ✅ |
|
|
34
34
|
| Users | ✅ | ❌ | ✅ |
|
|
35
35
|
| Implementation | TypeScript | JavaScript CLI | TypeScript |
|
|
36
|
-
| Interface coverage | 19 MCP tools | CLI scripts | **
|
|
36
|
+
| Interface coverage | 19 MCP tools | CLI scripts | **47 MCP tools** |
|
|
37
37
|
|
|
38
38
|
`m365-mcp` does not store a client secret or password. Tenant and client IDs are
|
|
39
39
|
non-secret identifiers; sensitive OAuth access and refresh tokens are stored
|
|
@@ -209,7 +209,7 @@ Changing an account's tenant or client ID clears that account's cached tokens.
|
|
|
209
209
|
Sign in again after changing permissions or the read-only/directory settings.
|
|
210
210
|
Login checks cached permissions before reusing a token.
|
|
211
211
|
|
|
212
|
-
## Available Tools (
|
|
212
|
+
## Available Tools (47)
|
|
213
213
|
|
|
214
214
|
### 📧 Mail (9 tools)
|
|
215
215
|
| Tool | Description |
|
|
@@ -224,10 +224,11 @@ Login checks cached permissions before reusing a token.
|
|
|
224
224
|
| `m365_mail_mark_read` | Mark as read/unread |
|
|
225
225
|
| `m365_mail_folders` | List all mail folders with counts |
|
|
226
226
|
|
|
227
|
-
### 📅 Calendar (
|
|
227
|
+
### 📅 Calendar (10 tools)
|
|
228
228
|
| Tool | Description |
|
|
229
229
|
|---|---|
|
|
230
230
|
| `m365_calendar_list` | Events in a date range (paginated) |
|
|
231
|
+
| `m365_calendar_get` | Read an event and its notes, with bounded output and truncation status |
|
|
231
232
|
| `m365_calendar_today` | Today's events, nicely formatted |
|
|
232
233
|
| `m365_calendar_week` | Week view grouped by day |
|
|
233
234
|
| `m365_calendar_create` | Create event (optional Teams meeting) |
|
|
@@ -237,6 +238,29 @@ Login checks cached permissions before reusing a token.
|
|
|
237
238
|
| `m365_calendar_decline` | Decline an invitation as an attendee |
|
|
238
239
|
| `m365_calendar_availability` | Free/busy lookup |
|
|
239
240
|
|
|
241
|
+
#### Event notes and specific calendars
|
|
242
|
+
|
|
243
|
+
`m365_calendar_list`, `m365_calendar_get`, `m365_calendar_create`, and
|
|
244
|
+
`m365_calendar_update` accept an optional `calendarId` for a calendar under the
|
|
245
|
+
signed-in user's `/me/calendars` collection. Omitting it preserves the existing
|
|
246
|
+
`/me/events` or `/me/calendarView` behavior. IDs are opaque values, not URLs.
|
|
247
|
+
|
|
248
|
+
Use `m365_calendar_get` with `eventId` to read notes. It returns
|
|
249
|
+
`body: { contentType, content }`, `bodyLength`, and `bodyTruncated`. The default
|
|
250
|
+
limit is 10,000 UTF-16 code units; `maxBodyChars` accepts integers from 0 to 50,000.
|
|
251
|
+
Zero returns only body metadata. The tool preserves the format returned by
|
|
252
|
+
Graph, which defaults to HTML; truncated HTML may be incomplete. List results remain
|
|
253
|
+
compact and do not include full notes. Do not mistake truncated notes for the
|
|
254
|
+
complete event body or write the truncated result back as a replacement.
|
|
255
|
+
|
|
256
|
+
Create and update accept `bodyContentType: "text" | "html"` when supplying
|
|
257
|
+
`body`; the default remains `"html"`. On update, omitting `body` leaves notes
|
|
258
|
+
unchanged, while `body: ""` explicitly clears them. A body update replaces the
|
|
259
|
+
existing notes; for online meetings, preserve the meeting details in that body.
|
|
260
|
+
These operations use the existing delegated `Calendars.Read` /
|
|
261
|
+
`Calendars.ReadWrite` permissions, with no additional OAuth scopes. The new get
|
|
262
|
+
tool is available in read-only mode; create and update remain blocked there.
|
|
263
|
+
|
|
240
264
|
Calendar listings include `isOrganizer` and `responseStatus` so clients can
|
|
241
265
|
choose the correct action. Cancellation is organizer-only and notifies attendees;
|
|
242
266
|
decline is attendee-only. There is no ambiguous silent-remove tool.
|
package/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: m365-mcp
|
|
3
|
-
description: Production-grade Microsoft 365 MCP server with delegated OAuth, multi-account support, pagination, rate limiting, and
|
|
3
|
+
description: Production-grade Microsoft 365 MCP server with delegated OAuth, multi-account support, pagination, rate limiting, and 47 tools covering email, calendar, contacts, OneDrive, Teams, tasks, and users.
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
homepage: https://github.com/sam2kb/m365-mcp#readme
|
|
@@ -48,9 +48,14 @@ Production-grade Microsoft 365 MCP server combining the best of office365-connec
|
|
|
48
48
|
|
|
49
49
|
- List, read, send, reply, search, move, delete, mark read/unread, list folders
|
|
50
50
|
|
|
51
|
-
### Calendar (
|
|
51
|
+
### Calendar (10 tools)
|
|
52
52
|
|
|
53
|
-
- List events with organizer/response status, today view, week view, create (with Teams meeting), update, explicit organizer cancellation, attendee decline, free/busy
|
|
53
|
+
- List events with organizer/response status, read event notes, today view, week view, create (with Teams meeting), update, explicit organizer cancellation, attendee decline, free/busy
|
|
54
|
+
|
|
55
|
+
List, get, create, and update accept an optional calendar ID. Note reads include
|
|
56
|
+
body format, full length, and truncation status. Do not write truncated notes
|
|
57
|
+
back as a complete body. When replacing online-meeting notes, preserve the
|
|
58
|
+
meeting details in the body.
|
|
54
59
|
|
|
55
60
|
### Contacts (12 tools)
|
|
56
61
|
|
package/dist/index.js
CHANGED
|
@@ -70,6 +70,8 @@ async function handleToolCall(name, args) {
|
|
|
70
70
|
// Calendar
|
|
71
71
|
if (name === "m365_calendar_list")
|
|
72
72
|
return calendarTools.calendar_list(args);
|
|
73
|
+
if (name === "m365_calendar_get")
|
|
74
|
+
return calendarTools.calendar_get(args);
|
|
73
75
|
if (name === "m365_calendar_today")
|
|
74
76
|
return calendarTools.calendar_today();
|
|
75
77
|
if (name === "m365_calendar_week")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,wEAAwE;AAExE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;AAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC;AACpD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAE1D,wEAAwE;AAExE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAEvD,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACpD,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAE9C,wEAAwE;AAExE,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC;IAC1C,GAAG,eAAe;IAClB,GAAG,mBAAmB;IACtB,GAAG,mBAAmB;IACtB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;CACpB,CAAC,EAAE,SAAS,CAAC,CAAC;AACf,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAE5D,wEAAwE;AAExE,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAA6B;IACvE,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9B,OAAO;IACP,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,SAAS,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IACzE,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC,WAAW,CAAC,IAAW,CAAC,CAAC;IAC3E,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC,IAAW,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC,WAAW,CAAC,IAAW,CAAC,CAAC;IAC3E,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC,cAAc,CAAC,IAAW,CAAC,CAAC;IACjF,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,SAAS,CAAC,YAAY,EAAE,CAAC;IAElE,WAAW;IACX,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;IACnF,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,aAAa,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;IACjF,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,aAAa,CAAC,cAAc,EAAE,CAAC;IAC1E,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,aAAa,CAAC,aAAa,EAAE,CAAC;IACxE,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,uBAAuB;QAAE,OAAO,aAAa,CAAC,gBAAgB,CAAC,IAAW,CAAC,CAAC;IACzF,IAAI,IAAI,KAAK,4BAA4B;QAAE,OAAO,aAAa,CAAC,qBAAqB,CAAC,IAAW,CAAC,CAAC;IAEnG,WAAW;IACX,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;IACnF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;IACnF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,sBAAsB;QAAE,OAAO,aAAa,CAAC,eAAe,CAAC,IAAW,CAAC,CAAC;IACvF,IAAI,IAAI,KAAK,+BAA+B;QAAE,OAAO,aAAa,CAAC,wBAAwB,CAAC,IAAW,CAAC,CAAC;IACzG,IAAI,IAAI,KAAK,4BAA4B;QAAE,OAAO,aAAa,CAAC,qBAAqB,CAAC,IAAW,CAAC,CAAC;IACnG,IAAI,IAAI,KAAK,6BAA6B;QAAE,OAAO,aAAa,CAAC,sBAAsB,CAAC,IAAW,CAAC,CAAC;IACrG,IAAI,IAAI,KAAK,6BAA6B;QAAE,OAAO,aAAa,CAAC,sBAAsB,CAAC,IAAW,CAAC,CAAC;IACrG,IAAI,IAAI,KAAK,6BAA6B;QAAE,OAAO,aAAa,CAAC,sBAAsB,CAAC,IAAW,CAAC,CAAC;IACrG,IAAI,IAAI,KAAK,2BAA2B;QAAE,OAAO,aAAa,CAAC,oBAAoB,CAAC,IAAW,CAAC,CAAC;IAEjG,QAAQ;IACR,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;IAC9E,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,0BAA0B;QAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAW,CAAC,CAAC;IAE5F,QAAQ;IACR,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,UAAU,CAAC,WAAW,CAAC,IAAW,CAAC,CAAC;IAC5E,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,UAAU,CAAC,cAAc,CAAC,IAAW,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAE1E,QAAQ;IACR,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;IACjE,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;IAC9E,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;IAC9E,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC,IAAW,CAAC,CAAC;IAE9E,QAAQ;IACR,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAW,CAAC,CAAC;IAC1E,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,UAAU,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;IAChF,IAAI,IAAI,KAAK,oBAAoB;QAAE,OAAO,UAAU,CAAC,aAAa,CAAC,IAAW,CAAC,CAAC;IAEhF,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,wEAAwE;AAExE,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EACtC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,QAAQ;CAChB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,OAAO,CAAC,MAAM,CAAC,IAAI,EACnB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAC5D,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CACX,aAAa,OAAO,sBAAsB,YAAY,IAAI,SAAS,SAAS,QAAQ,gBAAgB,SAAS,GAAG,CACjH,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/security.js
CHANGED
package/dist/security.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/calendar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Calendar tools — list, today, week, create, update, cancel, decline, availability
|
|
2
|
+
* Calendar tools — list, get, today, week, create, update, cancel, decline, availability
|
|
3
3
|
*/
|
|
4
4
|
import type { GraphClient } from "../graph.js";
|
|
5
5
|
/** Build ISO 8601 start/end strings for a day in the given timezone. */
|
|
@@ -9,27 +9,37 @@ export declare function tzDayBounds(timezone: string, offsetDays?: number): {
|
|
|
9
9
|
};
|
|
10
10
|
export declare function registerCalendarTools(client: GraphClient): {
|
|
11
11
|
calendar_list(args: {
|
|
12
|
+
calendarId?: string;
|
|
12
13
|
startDateTime?: string;
|
|
13
14
|
endDateTime?: string;
|
|
14
15
|
top?: number;
|
|
15
16
|
}): Promise<string>;
|
|
17
|
+
calendar_get(args: {
|
|
18
|
+
eventId: string;
|
|
19
|
+
calendarId?: string;
|
|
20
|
+
maxBodyChars?: number;
|
|
21
|
+
}): Promise<string>;
|
|
16
22
|
calendar_today(): Promise<string>;
|
|
17
23
|
calendar_week(): Promise<string>;
|
|
18
24
|
calendar_create(args: {
|
|
25
|
+
calendarId?: string;
|
|
19
26
|
subject: string;
|
|
20
27
|
start: string;
|
|
21
28
|
end: string;
|
|
22
29
|
body?: string;
|
|
30
|
+
bodyContentType?: "text" | "html";
|
|
23
31
|
location?: string;
|
|
24
32
|
attendees?: string;
|
|
25
33
|
isOnline?: boolean;
|
|
26
34
|
}): Promise<string>;
|
|
27
35
|
calendar_update(args: {
|
|
28
36
|
eventId: string;
|
|
37
|
+
calendarId?: string;
|
|
29
38
|
subject?: string;
|
|
30
39
|
start?: string;
|
|
31
40
|
end?: string;
|
|
32
41
|
body?: string;
|
|
42
|
+
bodyContentType?: "text" | "html";
|
|
33
43
|
location?: string;
|
|
34
44
|
}): Promise<string>;
|
|
35
45
|
calendar_delete(args: {
|
|
@@ -57,6 +67,11 @@ export declare const calendarToolSchemas: ({
|
|
|
57
67
|
inputSchema: {
|
|
58
68
|
type: string;
|
|
59
69
|
properties: {
|
|
70
|
+
calendarId: {
|
|
71
|
+
type: string;
|
|
72
|
+
minLength: number;
|
|
73
|
+
description: string;
|
|
74
|
+
};
|
|
60
75
|
startDateTime: {
|
|
61
76
|
type: string;
|
|
62
77
|
description: string;
|
|
@@ -72,14 +87,16 @@ export declare const calendarToolSchemas: ({
|
|
|
72
87
|
description: string;
|
|
73
88
|
default: number;
|
|
74
89
|
};
|
|
90
|
+
eventId?: undefined;
|
|
91
|
+
maxBodyChars?: undefined;
|
|
75
92
|
subject?: undefined;
|
|
76
93
|
start?: undefined;
|
|
77
94
|
end?: undefined;
|
|
78
95
|
body?: undefined;
|
|
96
|
+
bodyContentType?: undefined;
|
|
79
97
|
location?: undefined;
|
|
80
98
|
attendees?: undefined;
|
|
81
99
|
isOnline?: undefined;
|
|
82
|
-
eventId?: undefined;
|
|
83
100
|
comment?: undefined;
|
|
84
101
|
sendResponse?: undefined;
|
|
85
102
|
users?: undefined;
|
|
@@ -92,6 +109,23 @@ export declare const calendarToolSchemas: ({
|
|
|
92
109
|
inputSchema: {
|
|
93
110
|
type: string;
|
|
94
111
|
properties: {
|
|
112
|
+
eventId: {
|
|
113
|
+
type: string;
|
|
114
|
+
minLength: number;
|
|
115
|
+
description: string;
|
|
116
|
+
};
|
|
117
|
+
calendarId: {
|
|
118
|
+
type: string;
|
|
119
|
+
minLength: number;
|
|
120
|
+
description: string;
|
|
121
|
+
};
|
|
122
|
+
maxBodyChars: {
|
|
123
|
+
type: string;
|
|
124
|
+
minimum: number;
|
|
125
|
+
maximum: number;
|
|
126
|
+
default: number;
|
|
127
|
+
description: string;
|
|
128
|
+
};
|
|
95
129
|
startDateTime?: undefined;
|
|
96
130
|
endDateTime?: undefined;
|
|
97
131
|
top?: undefined;
|
|
@@ -99,10 +133,36 @@ export declare const calendarToolSchemas: ({
|
|
|
99
133
|
start?: undefined;
|
|
100
134
|
end?: undefined;
|
|
101
135
|
body?: undefined;
|
|
136
|
+
bodyContentType?: undefined;
|
|
102
137
|
location?: undefined;
|
|
103
138
|
attendees?: undefined;
|
|
104
139
|
isOnline?: undefined;
|
|
140
|
+
comment?: undefined;
|
|
141
|
+
sendResponse?: undefined;
|
|
142
|
+
users?: undefined;
|
|
143
|
+
};
|
|
144
|
+
required: string[];
|
|
145
|
+
};
|
|
146
|
+
} | {
|
|
147
|
+
name: string;
|
|
148
|
+
description: string;
|
|
149
|
+
inputSchema: {
|
|
150
|
+
type: string;
|
|
151
|
+
properties: {
|
|
152
|
+
calendarId?: undefined;
|
|
153
|
+
startDateTime?: undefined;
|
|
154
|
+
endDateTime?: undefined;
|
|
155
|
+
top?: undefined;
|
|
105
156
|
eventId?: undefined;
|
|
157
|
+
maxBodyChars?: undefined;
|
|
158
|
+
subject?: undefined;
|
|
159
|
+
start?: undefined;
|
|
160
|
+
end?: undefined;
|
|
161
|
+
body?: undefined;
|
|
162
|
+
bodyContentType?: undefined;
|
|
163
|
+
location?: undefined;
|
|
164
|
+
attendees?: undefined;
|
|
165
|
+
isOnline?: undefined;
|
|
106
166
|
comment?: undefined;
|
|
107
167
|
sendResponse?: undefined;
|
|
108
168
|
users?: undefined;
|
|
@@ -115,6 +175,11 @@ export declare const calendarToolSchemas: ({
|
|
|
115
175
|
inputSchema: {
|
|
116
176
|
type: string;
|
|
117
177
|
properties: {
|
|
178
|
+
calendarId: {
|
|
179
|
+
type: string;
|
|
180
|
+
minLength: number;
|
|
181
|
+
description: string;
|
|
182
|
+
};
|
|
118
183
|
subject: {
|
|
119
184
|
type: string;
|
|
120
185
|
description: string;
|
|
@@ -131,6 +196,12 @@ export declare const calendarToolSchemas: ({
|
|
|
131
196
|
type: string;
|
|
132
197
|
description: string;
|
|
133
198
|
};
|
|
199
|
+
bodyContentType: {
|
|
200
|
+
type: string;
|
|
201
|
+
enum: string[];
|
|
202
|
+
default: string;
|
|
203
|
+
description: string;
|
|
204
|
+
};
|
|
134
205
|
location: {
|
|
135
206
|
type: string;
|
|
136
207
|
description: string;
|
|
@@ -147,6 +218,7 @@ export declare const calendarToolSchemas: ({
|
|
|
147
218
|
endDateTime?: undefined;
|
|
148
219
|
top?: undefined;
|
|
149
220
|
eventId?: undefined;
|
|
221
|
+
maxBodyChars?: undefined;
|
|
150
222
|
comment?: undefined;
|
|
151
223
|
sendResponse?: undefined;
|
|
152
224
|
users?: undefined;
|
|
@@ -162,6 +234,12 @@ export declare const calendarToolSchemas: ({
|
|
|
162
234
|
eventId: {
|
|
163
235
|
type: string;
|
|
164
236
|
description: string;
|
|
237
|
+
minLength?: undefined;
|
|
238
|
+
};
|
|
239
|
+
calendarId: {
|
|
240
|
+
type: string;
|
|
241
|
+
minLength: number;
|
|
242
|
+
description: string;
|
|
165
243
|
};
|
|
166
244
|
subject: {
|
|
167
245
|
type: string;
|
|
@@ -179,6 +257,12 @@ export declare const calendarToolSchemas: ({
|
|
|
179
257
|
type: string;
|
|
180
258
|
description: string;
|
|
181
259
|
};
|
|
260
|
+
bodyContentType: {
|
|
261
|
+
type: string;
|
|
262
|
+
enum: string[];
|
|
263
|
+
default: string;
|
|
264
|
+
description: string;
|
|
265
|
+
};
|
|
182
266
|
location: {
|
|
183
267
|
type: string;
|
|
184
268
|
description: string;
|
|
@@ -186,6 +270,7 @@ export declare const calendarToolSchemas: ({
|
|
|
186
270
|
startDateTime?: undefined;
|
|
187
271
|
endDateTime?: undefined;
|
|
188
272
|
top?: undefined;
|
|
273
|
+
maxBodyChars?: undefined;
|
|
189
274
|
attendees?: undefined;
|
|
190
275
|
isOnline?: undefined;
|
|
191
276
|
comment?: undefined;
|
|
@@ -203,18 +288,22 @@ export declare const calendarToolSchemas: ({
|
|
|
203
288
|
eventId: {
|
|
204
289
|
type: string;
|
|
205
290
|
description: string;
|
|
291
|
+
minLength?: undefined;
|
|
206
292
|
};
|
|
207
293
|
comment: {
|
|
208
294
|
type: string;
|
|
209
295
|
description: string;
|
|
210
296
|
};
|
|
297
|
+
calendarId?: undefined;
|
|
211
298
|
startDateTime?: undefined;
|
|
212
299
|
endDateTime?: undefined;
|
|
213
300
|
top?: undefined;
|
|
301
|
+
maxBodyChars?: undefined;
|
|
214
302
|
subject?: undefined;
|
|
215
303
|
start?: undefined;
|
|
216
304
|
end?: undefined;
|
|
217
305
|
body?: undefined;
|
|
306
|
+
bodyContentType?: undefined;
|
|
218
307
|
location?: undefined;
|
|
219
308
|
attendees?: undefined;
|
|
220
309
|
isOnline?: undefined;
|
|
@@ -232,6 +321,7 @@ export declare const calendarToolSchemas: ({
|
|
|
232
321
|
eventId: {
|
|
233
322
|
type: string;
|
|
234
323
|
description: string;
|
|
324
|
+
minLength?: undefined;
|
|
235
325
|
};
|
|
236
326
|
comment: {
|
|
237
327
|
type: string;
|
|
@@ -241,13 +331,16 @@ export declare const calendarToolSchemas: ({
|
|
|
241
331
|
type: string;
|
|
242
332
|
description: string;
|
|
243
333
|
};
|
|
334
|
+
calendarId?: undefined;
|
|
244
335
|
startDateTime?: undefined;
|
|
245
336
|
endDateTime?: undefined;
|
|
246
337
|
top?: undefined;
|
|
338
|
+
maxBodyChars?: undefined;
|
|
247
339
|
subject?: undefined;
|
|
248
340
|
start?: undefined;
|
|
249
341
|
end?: undefined;
|
|
250
342
|
body?: undefined;
|
|
343
|
+
bodyContentType?: undefined;
|
|
251
344
|
location?: undefined;
|
|
252
345
|
attendees?: undefined;
|
|
253
346
|
isOnline?: undefined;
|
|
@@ -273,15 +366,18 @@ export declare const calendarToolSchemas: ({
|
|
|
273
366
|
type: string;
|
|
274
367
|
description: string;
|
|
275
368
|
};
|
|
369
|
+
calendarId?: undefined;
|
|
276
370
|
top?: undefined;
|
|
371
|
+
eventId?: undefined;
|
|
372
|
+
maxBodyChars?: undefined;
|
|
277
373
|
subject?: undefined;
|
|
278
374
|
start?: undefined;
|
|
279
375
|
end?: undefined;
|
|
280
376
|
body?: undefined;
|
|
377
|
+
bodyContentType?: undefined;
|
|
281
378
|
location?: undefined;
|
|
282
379
|
attendees?: undefined;
|
|
283
380
|
isOnline?: undefined;
|
|
284
|
-
eventId?: undefined;
|
|
285
381
|
comment?: undefined;
|
|
286
382
|
sendResponse?: undefined;
|
|
287
383
|
};
|
package/dist/tools/calendar.js
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Calendar tools — list, today, week, create, update, cancel, decline, availability
|
|
2
|
+
* Calendar tools — list, get, today, week, create, update, cancel, decline, availability
|
|
3
3
|
*/
|
|
4
4
|
import { normalizeTop } from "../validation.js";
|
|
5
|
+
function calendarScope(calendarId) {
|
|
6
|
+
if (calendarId === undefined)
|
|
7
|
+
return "/me";
|
|
8
|
+
if (typeof calendarId !== "string" || !calendarId.trim() || calendarId === "." || calendarId === "..") {
|
|
9
|
+
throw new Error("calendarId must be a non-empty calendar ID");
|
|
10
|
+
}
|
|
11
|
+
return `/me/calendars/${encodeURIComponent(calendarId)}`;
|
|
12
|
+
}
|
|
13
|
+
function noteBody(content, contentType = "html") {
|
|
14
|
+
if (typeof content !== "string" || (contentType !== "text" && contentType !== "html")) {
|
|
15
|
+
throw new Error("body must be a string and bodyContentType must be text or html");
|
|
16
|
+
}
|
|
17
|
+
return { contentType: contentType === "text" ? "Text" : "HTML", content };
|
|
18
|
+
}
|
|
5
19
|
/** Build ISO 8601 start/end strings for a day in the given timezone. */
|
|
6
20
|
export function tzDayBounds(timezone, offsetDays = 0) {
|
|
7
21
|
const parts = new Intl.DateTimeFormat("en-US", {
|
|
@@ -48,14 +62,15 @@ export function registerCalendarTools(client) {
|
|
|
48
62
|
// ── list ─────────────────────────────────────────────────────
|
|
49
63
|
async calendar_list(args) {
|
|
50
64
|
const top = normalizeTop(args.top, 50);
|
|
65
|
+
const scope = calendarScope(args.calendarId);
|
|
51
66
|
if (!!args.startDateTime !== !!args.endDateTime)
|
|
52
67
|
throw new Error("Provide both startDateTime and endDateTime");
|
|
53
68
|
let path;
|
|
54
69
|
if (args.startDateTime && args.endDateTime) {
|
|
55
|
-
path = `${
|
|
70
|
+
path = `${scope}/calendarView?startDateTime=${encodeURIComponent(args.startDateTime)}&endDateTime=${encodeURIComponent(args.endDateTime)}&$top=${top}&$orderby=start/dateTime&$select=id,subject,start,end,location,isOnlineMeeting,onlineMeeting,onlineMeetingUrl,organizer,attendees,isAllDay,isOrganizer,responseStatus,webLink`;
|
|
56
71
|
}
|
|
57
72
|
else {
|
|
58
|
-
path = `${
|
|
73
|
+
path = `${scope}/events?$top=${top}&$orderby=start/dateTime&$select=id,subject,start,end,location,isOnlineMeeting,onlineMeeting,onlineMeetingUrl,organizer,attendees,isAllDay,isOrganizer,responseStatus,webLink`;
|
|
59
74
|
}
|
|
60
75
|
const events = await client.getAll(path, 10, top);
|
|
61
76
|
return JSON.stringify(events.map((e) => ({
|
|
@@ -74,6 +89,28 @@ export function registerCalendarTools(client) {
|
|
|
74
89
|
webLink: e.webLink,
|
|
75
90
|
})), null, 2);
|
|
76
91
|
},
|
|
92
|
+
// ── get ──────────────────────────────────────────────────────
|
|
93
|
+
async calendar_get(args) {
|
|
94
|
+
const limit = args.maxBodyChars ?? 10_000;
|
|
95
|
+
if (!Number.isInteger(limit) || limit < 0 || limit > 50_000) {
|
|
96
|
+
throw new Error("maxBodyChars must be an integer between 0 and 50000");
|
|
97
|
+
}
|
|
98
|
+
if (typeof args.eventId !== "string" || !args.eventId.trim() || args.eventId === "." || args.eventId === "..") {
|
|
99
|
+
throw new Error("eventId must be a non-empty event ID");
|
|
100
|
+
}
|
|
101
|
+
const event = await client.get(`${calendarScope(args.calendarId)}/events/${encodeURIComponent(args.eventId)}?$select=id,subject,start,end,body,webLink`);
|
|
102
|
+
const content = event.body?.content ?? "";
|
|
103
|
+
return JSON.stringify({
|
|
104
|
+
id: event.id,
|
|
105
|
+
subject: event.subject,
|
|
106
|
+
start: event.start,
|
|
107
|
+
end: event.end,
|
|
108
|
+
body: { contentType: event.body?.contentType ?? "text", content: content.slice(0, limit) },
|
|
109
|
+
bodyTruncated: content.length > limit,
|
|
110
|
+
bodyLength: content.length,
|
|
111
|
+
webLink: event.webLink,
|
|
112
|
+
}, null, 2);
|
|
113
|
+
},
|
|
77
114
|
// ── today ────────────────────────────────────────────────────
|
|
78
115
|
async calendar_today() {
|
|
79
116
|
const bounds = tzDayBounds(client.timezone);
|
|
@@ -132,8 +169,8 @@ export function registerCalendarTools(client) {
|
|
|
132
169
|
start: client.dateTimeStr(args.start),
|
|
133
170
|
end: client.dateTimeStr(args.end),
|
|
134
171
|
};
|
|
135
|
-
if (args.body)
|
|
136
|
-
event.body =
|
|
172
|
+
if (args.body !== undefined)
|
|
173
|
+
event.body = noteBody(args.body, args.bodyContentType);
|
|
137
174
|
if (args.location)
|
|
138
175
|
event.location = { displayName: args.location };
|
|
139
176
|
if (args.attendees) {
|
|
@@ -146,7 +183,7 @@ export function registerCalendarTools(client) {
|
|
|
146
183
|
event.isOnlineMeeting = true;
|
|
147
184
|
event.onlineMeetingProvider = "teamsForBusiness";
|
|
148
185
|
}
|
|
149
|
-
const data = await client.post(`${
|
|
186
|
+
const data = await client.post(`${calendarScope(args.calendarId)}/events`, event);
|
|
150
187
|
return JSON.stringify({
|
|
151
188
|
id: data.id,
|
|
152
189
|
subject: data.subject,
|
|
@@ -164,13 +201,13 @@ export function registerCalendarTools(client) {
|
|
|
164
201
|
if (args.end)
|
|
165
202
|
patch.end = client.dateTimeStr(args.end);
|
|
166
203
|
if (args.body !== undefined)
|
|
167
|
-
patch.body =
|
|
204
|
+
patch.body = noteBody(args.body, args.bodyContentType);
|
|
168
205
|
if (args.location !== undefined)
|
|
169
206
|
patch.location = { displayName: args.location };
|
|
170
207
|
if (Object.keys(patch).length === 0)
|
|
171
208
|
throw new Error("Provide at least one event field to update");
|
|
172
209
|
const eventId = encodeURIComponent(args.eventId);
|
|
173
|
-
await client.patch(`${
|
|
210
|
+
await client.patch(`${calendarScope(args.calendarId)}/events/${eventId}`, patch);
|
|
174
211
|
return JSON.stringify({ success: true, eventId: args.eventId });
|
|
175
212
|
},
|
|
176
213
|
// ── delete (legacy organizer-cancel alias) ──────────────────
|
|
@@ -210,12 +247,26 @@ export const calendarToolSchemas = [
|
|
|
210
247
|
inputSchema: {
|
|
211
248
|
type: "object",
|
|
212
249
|
properties: {
|
|
250
|
+
calendarId: { type: "string", minLength: 1, description: "Optional calendar ID; omit to preserve the default /me event scope" },
|
|
213
251
|
startDateTime: { type: "string", description: "Start datetime (ISO 8601)" },
|
|
214
252
|
endDateTime: { type: "string", description: "End datetime (ISO 8601)" },
|
|
215
253
|
top: { type: "integer", minimum: 1, maximum: 500, description: "Max events", default: 50 },
|
|
216
254
|
},
|
|
217
255
|
},
|
|
218
256
|
},
|
|
257
|
+
{
|
|
258
|
+
name: "m365_calendar_get",
|
|
259
|
+
description: "Read one event including its notes, with body format, length and explicit truncation status",
|
|
260
|
+
inputSchema: {
|
|
261
|
+
type: "object",
|
|
262
|
+
properties: {
|
|
263
|
+
eventId: { type: "string", minLength: 1, description: "Event ID" },
|
|
264
|
+
calendarId: { type: "string", minLength: 1, description: "Optional calendar ID for a specific calendar" },
|
|
265
|
+
maxBodyChars: { type: "integer", minimum: 0, maximum: 50_000, default: 10_000, description: "Maximum returned note characters (UTF-16 code units); 0 returns metadata only" },
|
|
266
|
+
},
|
|
267
|
+
required: ["eventId"],
|
|
268
|
+
},
|
|
269
|
+
},
|
|
219
270
|
{
|
|
220
271
|
name: "m365_calendar_today",
|
|
221
272
|
description: "Show today's calendar events",
|
|
@@ -228,40 +279,44 @@ export const calendarToolSchemas = [
|
|
|
228
279
|
},
|
|
229
280
|
{
|
|
230
281
|
name: "m365_calendar_create",
|
|
231
|
-
description: "Create a
|
|
282
|
+
description: "Create a new event in your default or selected mailbox calendar, optionally as a Teams meeting. Supplying attendees sends invitation emails; omit them for a personal appointment. Use m365_calendar_update to edit an event or m365_calendar_availability to check free/busy first. Returns the event ID and available links. Repeated calls can create duplicate events; check m365_calendar_list before resubmitting after an uncertain outcome.",
|
|
232
283
|
inputSchema: {
|
|
233
284
|
type: "object",
|
|
234
285
|
properties: {
|
|
286
|
+
calendarId: { type: "string", minLength: 1, description: "Optional ID of a calendar in your mailbox; omit for the default calendar. Does not grant shared-calendar access" },
|
|
235
287
|
subject: { type: "string", description: "Event title" },
|
|
236
|
-
start: { type: "string", description: "Start
|
|
237
|
-
end: { type: "string", description: "End
|
|
238
|
-
body: { type: "string", description: "Event
|
|
288
|
+
start: { type: "string", description: "Start date-time (ISO 8601); omit the offset to use the configured timezone, or include Z/an offset for an exact instant" },
|
|
289
|
+
end: { type: "string", description: "End date-time (ISO 8601), using the same timezone conventions as start" },
|
|
290
|
+
body: { type: "string", description: "Event notes; HTML by default" },
|
|
291
|
+
bodyContentType: { type: "string", enum: ["text", "html"], default: "html", description: "Format of the supplied body" },
|
|
239
292
|
location: { type: "string", description: "Event location" },
|
|
240
|
-
attendees: { type: "string", description: "
|
|
241
|
-
isOnline: { type: "boolean", description: "Create
|
|
293
|
+
attendees: { type: "string", description: "Comma-separated email addresses; supplying attendees sends meeting invitations" },
|
|
294
|
+
isOnline: { type: "boolean", description: "Create a Teams meeting when true; requires Teams support in the selected calendar" },
|
|
242
295
|
},
|
|
243
296
|
required: ["subject", "start", "end"],
|
|
244
297
|
},
|
|
245
298
|
},
|
|
246
299
|
{
|
|
247
300
|
name: "m365_calendar_update",
|
|
248
|
-
description: "
|
|
301
|
+
description: "Change supplied fields on an existing event; omitted fields stay unchanged. Meeting changes may notify attendees. Body updates replace the notes: first read m365_calendar_get and preserve online-meeting details. Use m365_calendar_create for a new event or m365_calendar_cancel to cancel. Returns success and eventId. Check the event before repeating an update after an uncertain outcome.",
|
|
249
302
|
inputSchema: {
|
|
250
303
|
type: "object",
|
|
251
304
|
properties: {
|
|
252
|
-
eventId: { type: "string", description: "
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
305
|
+
eventId: { type: "string", description: "Existing event ID from m365_calendar_list; must belong to the selected calendar" },
|
|
306
|
+
calendarId: { type: "string", minLength: 1, description: "Optional mailbox calendar ID matching the event; omit to use the default /me event scope" },
|
|
307
|
+
subject: { type: "string", description: "Replacement subject; omit to preserve it" },
|
|
308
|
+
start: { type: "string", description: "New ISO 8601 start date-time; no offset uses the configured timezone; Z/an offset specifies an instant" },
|
|
309
|
+
end: { type: "string", description: "New ISO 8601 end date-time, using the same timezone conventions as start" },
|
|
310
|
+
body: { type: "string", description: "Replacement notes; omit to preserve, or pass an empty string to clear. For online meetings preserve the meeting details in the body." },
|
|
311
|
+
bodyContentType: { type: "string", enum: ["text", "html"], default: "html", description: "Format of the supplied body" },
|
|
312
|
+
location: { type: "string", description: "Replacement location; omit to preserve it or use an empty string to clear it" },
|
|
258
313
|
},
|
|
259
314
|
required: ["eventId"],
|
|
260
315
|
},
|
|
261
316
|
},
|
|
262
317
|
{
|
|
263
318
|
name: "m365_calendar_delete",
|
|
264
|
-
description: "
|
|
319
|
+
description: "Compatibility alias for m365_calendar_cancel: cancel an event you organize and send cancellation notices to attendees. Prefer m365_calendar_cancel for new calls; this is not a silent delete or an attendee decline. Use m365_calendar_decline for received invitations. Returns success and eventId; check the calendar before retrying an uncertain cancellation.",
|
|
265
320
|
inputSchema: {
|
|
266
321
|
type: "object",
|
|
267
322
|
properties: {
|
|
@@ -285,12 +340,12 @@ export const calendarToolSchemas = [
|
|
|
285
340
|
},
|
|
286
341
|
{
|
|
287
342
|
name: "m365_calendar_decline",
|
|
288
|
-
description: "Decline a
|
|
343
|
+
description: "Decline a received invitation as an attendee, not an event you organize. By default a response email goes to the organizer; set sendResponse=false to suppress it. Use m365_calendar_cancel if you are the organizer. Returns success and eventId; check response status in m365_calendar_list before retrying an uncertain decline.",
|
|
289
344
|
inputSchema: {
|
|
290
345
|
type: "object",
|
|
291
346
|
properties: {
|
|
292
|
-
eventId: { type: "string", description: "
|
|
293
|
-
comment: { type: "string", description: "Optional
|
|
347
|
+
eventId: { type: "string", description: "ID of a received invitation from m365_calendar_list" },
|
|
348
|
+
comment: { type: "string", description: "Optional text to include in the response email when sendResponse=true" },
|
|
294
349
|
sendResponse: { type: "boolean", description: "Send the response to the organizer (default: true)" },
|
|
295
350
|
},
|
|
296
351
|
required: ["eventId"],
|
|
@@ -298,13 +353,13 @@ export const calendarToolSchemas = [
|
|
|
298
353
|
},
|
|
299
354
|
{
|
|
300
355
|
name: "m365_calendar_availability",
|
|
301
|
-
description: "
|
|
356
|
+
description: "Read free/busy schedules for the supplied users and time range, including a 30-minute availability view. This does not book a meeting or send invitations. Use m365_calendar_create after selecting a time, or m365_calendar_list for your event details. Returns per-user schedules and any Graph-reported errors.",
|
|
302
357
|
inputSchema: {
|
|
303
358
|
type: "object",
|
|
304
359
|
properties: {
|
|
305
|
-
users: { type: "string", description: "
|
|
306
|
-
startDateTime: { type: "string", description: "
|
|
307
|
-
endDateTime: { type: "string", description: "
|
|
360
|
+
users: { type: "string", description: "Comma-separated mailbox email addresses to check" },
|
|
361
|
+
startDateTime: { type: "string", description: "Range start (ISO 8601); no offset uses the configured timezone; Z/an offset specifies an instant" },
|
|
362
|
+
endDateTime: { type: "string", description: "Range end (ISO 8601), using the same timezone conventions as startDateTime" },
|
|
308
363
|
},
|
|
309
364
|
required: ["users", "startDateTime", "endDateTime"],
|
|
310
365
|
},
|