@softeria/ms-365-mcp-server 0.85.2 → 0.86.0

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.
@@ -640,6 +640,30 @@
640
640
  "toolName": "get-onenote-page-content",
641
641
  "scopes": ["Notes.Read"]
642
642
  },
643
+ {
644
+ "pathPattern": "/sites/{site-id}/onenote/notebooks",
645
+ "method": "get",
646
+ "toolName": "list-sharepoint-site-onenote-notebooks",
647
+ "workScopes": ["Notes.Read"]
648
+ },
649
+ {
650
+ "pathPattern": "/sites/{site-id}/onenote/notebooks/{notebook-id}/sections",
651
+ "method": "get",
652
+ "toolName": "list-sharepoint-site-onenote-notebook-sections",
653
+ "workScopes": ["Notes.Read"]
654
+ },
655
+ {
656
+ "pathPattern": "/sites/{site-id}/onenote/sections/{onenoteSection-id}/pages",
657
+ "method": "get",
658
+ "toolName": "list-sharepoint-site-onenote-section-pages",
659
+ "workScopes": ["Notes.Read"]
660
+ },
661
+ {
662
+ "pathPattern": "/sites/{site-id}/onenote/pages/{onenotePage-id}/content",
663
+ "method": "get",
664
+ "toolName": "get-sharepoint-site-onenote-page-content",
665
+ "workScopes": ["Notes.Read"]
666
+ },
643
667
  {
644
668
  "pathPattern": "/me/onenote/pages",
645
669
  "method": "post",
@@ -777,6 +801,39 @@
777
801
  "scopes": ["Tasks.ReadWrite"],
778
802
  "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-task-details (use includeHeaders=true). Checklist items use GUID keys: {\"checklist\": {\"<guid>\": {\"title\": \"...\", \"isChecked\": false}}}."
779
803
  },
804
+ {
805
+ "pathPattern": "/planner/plans/{plannerPlan-id}/buckets",
806
+ "method": "get",
807
+ "toolName": "list-plan-buckets",
808
+ "scopes": ["Tasks.Read"]
809
+ },
810
+ {
811
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
812
+ "method": "get",
813
+ "toolName": "get-planner-bucket",
814
+ "scopes": ["Tasks.Read"],
815
+ "llmTip": "Response includes @odata.etag — required as If-Match for update-planner-bucket and delete-planner-bucket. Use includeHeaders=true."
816
+ },
817
+ {
818
+ "pathPattern": "/planner/buckets",
819
+ "method": "post",
820
+ "toolName": "create-planner-bucket",
821
+ "scopes": ["Tasks.ReadWrite"]
822
+ },
823
+ {
824
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
825
+ "method": "patch",
826
+ "toolName": "update-planner-bucket",
827
+ "scopes": ["Tasks.ReadWrite"],
828
+ "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true)."
829
+ },
830
+ {
831
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
832
+ "method": "delete",
833
+ "toolName": "delete-planner-bucket",
834
+ "scopes": ["Tasks.ReadWrite"],
835
+ "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true)."
836
+ },
780
837
  {
781
838
  "pathPattern": "/me/contacts",
782
839
  "method": "get",
@@ -901,6 +958,20 @@
901
958
  "workScopes": ["Group.Read.All"],
902
959
  "llmTip": "Gets a specific group's details: displayName, description, mail, visibility, groupTypes, membershipRule, createdDateTime. Use $select to limit returned properties."
903
960
  },
961
+ {
962
+ "pathPattern": "/groups/{group-id}/calendarView",
963
+ "method": "get",
964
+ "toolName": "get-group-calendar-view",
965
+ "workScopes": ["Group.Read.All"],
966
+ "supportsTimezone": true
967
+ },
968
+ {
969
+ "pathPattern": "/groups/{group-id}/events",
970
+ "method": "get",
971
+ "toolName": "list-group-events",
972
+ "workScopes": ["Group.Read.All"],
973
+ "supportsTimezone": true
974
+ },
904
975
  {
905
976
  "pathPattern": "/groups/{group-id}/members",
906
977
  "method": "get",
@@ -1447,11 +1447,12 @@ const microsoft_graph_groupCollectionResponse = z.object({
1447
1447
  "@odata.nextLink": z.string().nullable(),
1448
1448
  value: z.array(microsoft_graph_group)
1449
1449
  }).partial().passthrough();
1450
- const microsoft_graph_emailAddress = z.object({
1451
- address: z.string().describe("The email address of the person or entity.").nullish(),
1452
- name: z.string().describe("The display name of the person or entity.").nullish()
1453
- }).passthrough();
1454
- const microsoft_graph_recipient = z.object({ emailAddress: microsoft_graph_emailAddress.optional() }).passthrough();
1450
+ const microsoft_graph_eventType = z.enum([
1451
+ "singleInstance",
1452
+ "occurrence",
1453
+ "exception",
1454
+ "seriesMaster"
1455
+ ]);
1455
1456
  const microsoft_graph_attachment = z.object({
1456
1457
  id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1457
1458
  contentType: z.string().describe("The MIME type.").nullish(),
@@ -1464,237 +1465,14 @@ const microsoft_graph_attachment = z.object({
1464
1465
  name: z.string().describe("The attachment's file name.").nullish(),
1465
1466
  size: z.number().gte(-2147483648).lte(2147483647).describe("The length of the attachment in bytes.").optional()
1466
1467
  }).passthrough();
1467
- const microsoft_graph_extension = z.object({ id: z.string().describe("The unique identifier for an entity. Read-only.").optional() }).passthrough();
1468
- const microsoft_graph_multiValueLegacyExtendedProperty = z.object({
1469
- id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1470
- value: z.array(z.string().nullable()).describe("A collection of property values.").optional()
1471
- }).passthrough();
1472
1468
  const microsoft_graph_singleValueLegacyExtendedProperty = z.object({
1473
1469
  id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1474
1470
  value: z.string().describe("A property value.").nullish()
1475
1471
  }).passthrough();
1476
- const microsoft_graph_post = z.lazy(
1477
- () => z.object({
1478
- id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1479
- categories: z.array(z.string().nullable()).describe("The categories associated with the item").optional(),
1480
- changeKey: z.string().describe(
1481
- "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
1482
- ).nullish(),
1483
- createdDateTime: z.string().regex(
1484
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1485
- ).datetime({ offset: true }).describe(
1486
- "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1487
- ).nullish(),
1488
- lastModifiedDateTime: z.string().regex(
1489
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1490
- ).datetime({ offset: true }).describe(
1491
- "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1492
- ).nullish(),
1493
- body: microsoft_graph_itemBody.optional(),
1494
- conversationId: z.string().describe("Unique ID of the conversation. Read-only.").nullish(),
1495
- conversationThreadId: z.string().describe("Unique ID of the conversation thread. Read-only.").nullish(),
1496
- from: microsoft_graph_recipient.optional(),
1497
- hasAttachments: z.boolean().describe(
1498
- "Indicates whether the post has at least one attachment. This is a default property."
1499
- ).optional(),
1500
- newParticipants: z.array(microsoft_graph_recipient).describe("Conversation participants that were added to the thread as part of this post.").optional(),
1501
- receivedDateTime: z.string().regex(
1502
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1503
- ).datetime({ offset: true }).describe(
1504
- "Specifies when the post was received. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1505
- ).optional(),
1506
- sender: microsoft_graph_recipient.optional(),
1507
- attachments: z.array(microsoft_graph_attachment).describe("Read-only. Nullable. Supports $expand.").optional(),
1508
- extensions: z.array(microsoft_graph_extension).describe(
1509
- "The collection of open extensions defined for the post. Read-only. Nullable. Supports $expand."
1510
- ).optional(),
1511
- inReplyTo: microsoft_graph_post.optional(),
1512
- multiValueExtendedProperties: z.array(microsoft_graph_multiValueLegacyExtendedProperty).describe(
1513
- "The collection of multi-value extended properties defined for the post. Read-only. Nullable."
1514
- ).optional(),
1515
- singleValueExtendedProperties: z.array(microsoft_graph_singleValueLegacyExtendedProperty).describe(
1516
- "The collection of single-value extended properties defined for the post. Read-only. Nullable."
1517
- ).optional()
1518
- }).passthrough()
1519
- );
1520
- const microsoft_graph_conversationThread = z.object({
1521
- id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1522
- ccRecipients: z.array(microsoft_graph_recipient).describe("The Cc: recipients for the thread. Requires $select to retrieve.").optional(),
1523
- hasAttachments: z.boolean().describe(
1524
- "Indicates whether any of the posts within this thread has at least one attachment. Returned by default."
1525
- ).optional(),
1526
- isLocked: z.boolean().describe("Indicates if the thread is locked. Returned by default.").optional(),
1527
- lastDeliveredDateTime: z.string().regex(
1528
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1529
- ).datetime({ offset: true }).describe(
1530
- "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.Returned by default."
1531
- ).optional(),
1532
- preview: z.string().describe(
1533
- "A short summary from the body of the latest post in this conversation. Returned by default."
1534
- ).optional(),
1535
- topic: z.string().describe(
1536
- "The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated. Returned by default."
1537
- ).optional(),
1538
- toRecipients: z.array(microsoft_graph_recipient).describe("The To: recipients for the thread. Requires $select to retrieve.").optional(),
1539
- uniqueSenders: z.array(z.string()).describe("All the users that sent a message to this thread. Returned by default.").optional(),
1540
- posts: z.array(microsoft_graph_post).optional()
1541
- }).passthrough();
1542
- const microsoft_graph_conversation = z.object({
1543
- id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1544
- hasAttachments: z.boolean().describe(
1545
- "Indicates whether any of the posts within this Conversation has at least one attachment. Supports $filter (eq, ne) and $search."
1546
- ).optional(),
1547
- lastDeliveredDateTime: z.string().regex(
1548
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1549
- ).datetime({ offset: true }).describe(
1550
- "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1551
- ).optional(),
1552
- preview: z.string().describe(
1553
- "A short summary from the body of the latest post in this conversation. Supports $filter (eq, ne, le, ge)."
1554
- ).optional(),
1555
- topic: z.string().describe(
1556
- "The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated."
1557
- ).optional(),
1558
- uniqueSenders: z.array(z.string()).describe("All the users that sent a message to this Conversation.").optional(),
1559
- threads: z.array(microsoft_graph_conversationThread).describe(
1560
- "A collection of all the conversation threads in the conversation. A navigation property. Read-only. Nullable."
1561
- ).optional()
1562
- }).passthrough();
1563
- const microsoft_graph_conversationCollectionResponse = z.object({
1564
- "@odata.count": z.number().int().nullable(),
1565
- "@odata.nextLink": z.string().nullable(),
1566
- value: z.array(microsoft_graph_conversation)
1567
- }).partial().passthrough();
1568
- const microsoft_graph_directoryObject = z.object({
1569
- id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1570
- deletedDateTime: z.string().regex(
1571
- /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1572
- ).datetime({ offset: true }).describe(
1573
- "Date and time when this object was deleted. Always null when the object hasn't been deleted."
1574
- ).nullish()
1575
- }).passthrough();
1576
- const microsoft_graph_directoryObjectCollectionResponse = z.object({
1577
- "@odata.count": z.number().int().nullable(),
1578
- "@odata.nextLink": z.string().nullable(),
1579
- value: z.array(microsoft_graph_directoryObject)
1580
- }).partial().passthrough();
1581
- const ReferenceCreate = z.record(z.object({}).partial().passthrough());
1582
- const microsoft_graph_conversationThreadCollectionResponse = z.object({
1583
- "@odata.count": z.number().int().nullable(),
1584
- "@odata.nextLink": z.string().nullable(),
1585
- value: z.array(microsoft_graph_conversationThread)
1586
- }).partial().passthrough();
1587
- const reply_to_group_thread_Body = z.object({ Post: microsoft_graph_post }).partial().passthrough();
1588
- const get_schedule_Body = z.object({
1589
- Schedules: z.array(z.string().nullable()),
1590
- EndTime: z.union([microsoft_graph_dateTimeTimeZone, z.object({}).partial().passthrough()]),
1591
- StartTime: z.union([microsoft_graph_dateTimeTimeZone, z.object({}).partial().passthrough()]),
1592
- AvailabilityViewInterval: z.number().gte(-2147483648).lte(2147483647).nullable()
1593
- }).partial().passthrough();
1594
- const microsoft_graph_freeBusyError = z.object({
1595
- message: z.string().describe("Describes the error.").nullish(),
1596
- responseCode: z.string().describe(
1597
- "The response code from querying for the availability of the user, distribution list, or resource."
1598
- ).nullish()
1599
- }).passthrough();
1600
- const microsoft_graph_freeBusyStatus = z.enum([
1601
- "unknown",
1602
- "free",
1603
- "tentative",
1604
- "busy",
1605
- "oof",
1606
- "workingElsewhere"
1607
- ]);
1608
- const microsoft_graph_scheduleItem = z.object({
1609
- end: microsoft_graph_dateTimeTimeZone.optional(),
1610
- isPrivate: z.boolean().describe(
1611
- "The sensitivity of the corresponding event. True if the event is marked private, false otherwise. Optional."
1612
- ).nullish(),
1613
- location: z.string().describe("The location where the corresponding event is held or attended from. Optional.").nullish(),
1614
- start: microsoft_graph_dateTimeTimeZone.optional(),
1615
- status: microsoft_graph_freeBusyStatus.optional(),
1616
- subject: z.string().describe("The corresponding event's subject line. Optional.").nullish()
1617
- }).passthrough();
1618
- const microsoft_graph_dayOfWeek = z.enum([
1619
- "sunday",
1620
- "monday",
1621
- "tuesday",
1622
- "wednesday",
1623
- "thursday",
1624
- "friday",
1625
- "saturday"
1626
- ]);
1627
- const microsoft_graph_timeZoneBase = z.object({
1628
- name: z.string().describe(
1629
- "The name of a time zone. It can be a standard time zone name such as 'Hawaii-Aleutian Standard Time', or 'Customized Time Zone' for a custom time zone."
1630
- ).nullish()
1631
- }).passthrough();
1632
- const microsoft_graph_workingHours = z.object({
1633
- daysOfWeek: z.array(z.union([microsoft_graph_dayOfWeek, z.object({}).partial().passthrough()])).describe("The days of the week on which the user works.").optional(),
1634
- endTime: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?$/).describe("The time of the day that the user stops working.").nullish(),
1635
- startTime: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?$/).describe("The time of the day that the user starts working.").nullish(),
1636
- timeZone: microsoft_graph_timeZoneBase.optional()
1637
- }).passthrough();
1638
- const microsoft_graph_scheduleInformation = z.object({
1639
- availabilityView: z.string().describe(
1640
- "Represents a merged view of availability of all the items in scheduleItems. The view consists of time slots. Availability during each time slot is indicated with: 0= free or working elswhere, 1= tentative, 2= busy, 3= out of office.Note: Working elsewhere is set to 0 instead of 4 for backward compatibility. For details, see the Q&A and Exchange 2007 and Exchange 2010 do not use the WorkingElsewhere value."
1641
- ).nullish(),
1642
- error: microsoft_graph_freeBusyError.optional(),
1643
- scheduleId: z.string().describe(
1644
- "An SMTP address of the user, distribution list, or resource, identifying an instance of scheduleInformation."
1645
- ).nullish(),
1646
- scheduleItems: z.array(microsoft_graph_scheduleItem).describe("Contains the items that describe the availability of the user or resource.").optional(),
1647
- workingHours: microsoft_graph_workingHours.optional()
1648
- }).passthrough();
1649
- const microsoft_graph_onlineMeetingProviderType = z.enum([
1650
- "unknown",
1651
- "skypeForBusiness",
1652
- "skypeForConsumer",
1653
- "teamsForBusiness"
1654
- ]);
1655
- const microsoft_graph_calendarColor = z.enum([
1656
- "auto",
1657
- "lightBlue",
1658
- "lightGreen",
1659
- "lightOrange",
1660
- "lightGray",
1661
- "lightYellow",
1662
- "lightTeal",
1663
- "lightPink",
1664
- "lightBrown",
1665
- "lightRed",
1666
- "maxColor"
1667
- ]);
1668
- const microsoft_graph_calendarRoleType = z.enum([
1669
- "none",
1670
- "freeBusyRead",
1671
- "limitedRead",
1672
- "read",
1673
- "write",
1674
- "delegateWithoutPrivateEventAccess",
1675
- "delegateWithPrivateEventAccess",
1676
- "custom"
1677
- ]);
1678
- const microsoft_graph_calendarPermission = z.object({
1472
+ const microsoft_graph_multiValueLegacyExtendedProperty = z.object({
1679
1473
  id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1680
- allowedRoles: z.array(z.union([microsoft_graph_calendarRoleType, z.object({}).partial().passthrough()])).describe(
1681
- "List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom."
1682
- ).optional(),
1683
- emailAddress: microsoft_graph_emailAddress.optional(),
1684
- isInsideOrganization: z.boolean().describe(
1685
- "True if the user in context (recipient or delegate) is inside the same organization as the calendar owner."
1686
- ).nullish(),
1687
- isRemovable: z.boolean().describe(
1688
- "True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar."
1689
- ).nullish(),
1690
- role: microsoft_graph_calendarRoleType.optional()
1474
+ value: z.array(z.string().nullable()).describe("A collection of property values.").optional()
1691
1475
  }).passthrough();
1692
- const microsoft_graph_eventType = z.enum([
1693
- "singleInstance",
1694
- "occurrence",
1695
- "exception",
1696
- "seriesMaster"
1697
- ]);
1698
1476
  const microsoft_graph_physicalAddress = z.object({
1699
1477
  city: z.string().describe("The city.").nullish(),
1700
1478
  countryOrRegion: z.string().describe(
@@ -1742,8 +1520,20 @@ const microsoft_graph_location = z.object({
1742
1520
  uniqueId: z.string().describe("For internal use only.").nullish(),
1743
1521
  uniqueIdType: microsoft_graph_locationUniqueIdType.optional()
1744
1522
  }).passthrough();
1523
+ const microsoft_graph_freeBusyStatus = z.enum([
1524
+ "unknown",
1525
+ "free",
1526
+ "tentative",
1527
+ "busy",
1528
+ "oof",
1529
+ "workingElsewhere"
1530
+ ]);
1745
1531
  const microsoft_graph_sensitivity = z.enum(["normal", "personal", "private", "confidential"]);
1746
1532
  const microsoft_graph_importance = z.enum(["low", "normal", "high"]);
1533
+ const microsoft_graph_emailAddress = z.object({
1534
+ address: z.string().describe("The email address of the person or entity.").nullish(),
1535
+ name: z.string().describe("The display name of the person or entity.").nullish()
1536
+ }).passthrough();
1747
1537
  const microsoft_graph_attendeeType = z.enum(["required", "optional", "resource"]);
1748
1538
  const microsoft_graph_timeSlot = z.object({
1749
1539
  end: microsoft_graph_dateTimeTimeZone.optional(),
@@ -1771,6 +1561,15 @@ const microsoft_graph_attendee = z.object({
1771
1561
  proposedNewTime: microsoft_graph_timeSlot.optional(),
1772
1562
  status: microsoft_graph_responseStatus.optional()
1773
1563
  }).passthrough();
1564
+ const microsoft_graph_dayOfWeek = z.enum([
1565
+ "sunday",
1566
+ "monday",
1567
+ "tuesday",
1568
+ "wednesday",
1569
+ "thursday",
1570
+ "friday",
1571
+ "saturday"
1572
+ ]);
1774
1573
  const microsoft_graph_weekIndex = z.enum(["first", "second", "third", "fourth", "last"]);
1775
1574
  const microsoft_graph_recurrencePatternType = z.enum([
1776
1575
  "daily",
@@ -1847,25 +1646,231 @@ const microsoft_graph_event = z.object({
1847
1646
  isAllDay: z.boolean().describe(
1848
1647
  "Set to true if the event lasts all day. If true, regardless of whether it's a single-day or multi-day event, start, and endtime must be set to midnight and be in the same time zone."
1849
1648
  ).nullish(),
1850
- importance: microsoft_graph_importance.optional(),
1851
- isOnlineMeeting: z.boolean().describe(
1852
- "True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional. After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online."
1649
+ importance: microsoft_graph_importance.optional(),
1650
+ isOnlineMeeting: z.boolean().describe(
1651
+ "True if this event has online meeting information (that is, onlineMeeting points to an onlineMeetingInfo resource), false otherwise. Default is false (onlineMeeting is null). Optional. After you set isOnlineMeeting to true, Microsoft Graph initializes onlineMeeting. Subsequently, Outlook ignores any further changes to isOnlineMeeting, and the meeting remains available online."
1652
+ ).nullish(),
1653
+ isReminderOn: z.boolean().describe("Set to true if an alert is set to remind the user of the event.").nullish(),
1654
+ attendees: z.array(microsoft_graph_attendee).describe("The collection of attendees for the event.").optional(),
1655
+ recurrence: microsoft_graph_patternedRecurrence.optional(),
1656
+ reminderMinutesBeforeStart: z.number().gte(-2147483648).lte(2147483647).describe("The number of minutes before the event start time that the reminder alert occurs.").nullish(),
1657
+ allowNewTimeProposals: z.boolean().describe(
1658
+ "true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true."
1659
+ ).nullish(),
1660
+ responseRequested: z.boolean().describe(
1661
+ "Default is true, which represents the organizer would like an invitee to send a response to the event."
1662
+ ).nullish(),
1663
+ categories: z.array(z.string().nullable()).describe("The categories associated with the item").optional(),
1664
+ changeKey: z.string().describe(
1665
+ "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
1666
+ ).nullish()
1667
+ }).passthrough().passthrough();
1668
+ const microsoft_graph_eventCollectionResponse = z.object({
1669
+ "@odata.count": z.number().int().nullable(),
1670
+ "@odata.nextLink": z.string().nullable(),
1671
+ value: z.array(microsoft_graph_event)
1672
+ }).partial().passthrough();
1673
+ const microsoft_graph_recipient = z.object({ emailAddress: microsoft_graph_emailAddress.optional() }).passthrough();
1674
+ const microsoft_graph_extension = z.object({ id: z.string().describe("The unique identifier for an entity. Read-only.").optional() }).passthrough();
1675
+ const microsoft_graph_post = z.lazy(
1676
+ () => z.object({
1677
+ id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1678
+ categories: z.array(z.string().nullable()).describe("The categories associated with the item").optional(),
1679
+ changeKey: z.string().describe(
1680
+ "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
1681
+ ).nullish(),
1682
+ createdDateTime: z.string().regex(
1683
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1684
+ ).datetime({ offset: true }).describe(
1685
+ "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1686
+ ).nullish(),
1687
+ lastModifiedDateTime: z.string().regex(
1688
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1689
+ ).datetime({ offset: true }).describe(
1690
+ "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1691
+ ).nullish(),
1692
+ body: microsoft_graph_itemBody.optional(),
1693
+ conversationId: z.string().describe("Unique ID of the conversation. Read-only.").nullish(),
1694
+ conversationThreadId: z.string().describe("Unique ID of the conversation thread. Read-only.").nullish(),
1695
+ from: microsoft_graph_recipient.optional(),
1696
+ hasAttachments: z.boolean().describe(
1697
+ "Indicates whether the post has at least one attachment. This is a default property."
1698
+ ).optional(),
1699
+ newParticipants: z.array(microsoft_graph_recipient).describe("Conversation participants that were added to the thread as part of this post.").optional(),
1700
+ receivedDateTime: z.string().regex(
1701
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1702
+ ).datetime({ offset: true }).describe(
1703
+ "Specifies when the post was received. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1704
+ ).optional(),
1705
+ sender: microsoft_graph_recipient.optional(),
1706
+ attachments: z.array(microsoft_graph_attachment).describe("Read-only. Nullable. Supports $expand.").optional(),
1707
+ extensions: z.array(microsoft_graph_extension).describe(
1708
+ "The collection of open extensions defined for the post. Read-only. Nullable. Supports $expand."
1709
+ ).optional(),
1710
+ inReplyTo: microsoft_graph_post.optional(),
1711
+ multiValueExtendedProperties: z.array(microsoft_graph_multiValueLegacyExtendedProperty).describe(
1712
+ "The collection of multi-value extended properties defined for the post. Read-only. Nullable."
1713
+ ).optional(),
1714
+ singleValueExtendedProperties: z.array(microsoft_graph_singleValueLegacyExtendedProperty).describe(
1715
+ "The collection of single-value extended properties defined for the post. Read-only. Nullable."
1716
+ ).optional()
1717
+ }).passthrough()
1718
+ );
1719
+ const microsoft_graph_conversationThread = z.object({
1720
+ id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1721
+ ccRecipients: z.array(microsoft_graph_recipient).describe("The Cc: recipients for the thread. Requires $select to retrieve.").optional(),
1722
+ hasAttachments: z.boolean().describe(
1723
+ "Indicates whether any of the posts within this thread has at least one attachment. Returned by default."
1724
+ ).optional(),
1725
+ isLocked: z.boolean().describe("Indicates if the thread is locked. Returned by default.").optional(),
1726
+ lastDeliveredDateTime: z.string().regex(
1727
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1728
+ ).datetime({ offset: true }).describe(
1729
+ "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.Returned by default."
1730
+ ).optional(),
1731
+ preview: z.string().describe(
1732
+ "A short summary from the body of the latest post in this conversation. Returned by default."
1733
+ ).optional(),
1734
+ topic: z.string().describe(
1735
+ "The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated. Returned by default."
1736
+ ).optional(),
1737
+ toRecipients: z.array(microsoft_graph_recipient).describe("The To: recipients for the thread. Requires $select to retrieve.").optional(),
1738
+ uniqueSenders: z.array(z.string()).describe("All the users that sent a message to this thread. Returned by default.").optional(),
1739
+ posts: z.array(microsoft_graph_post).optional()
1740
+ }).passthrough();
1741
+ const microsoft_graph_conversation = z.object({
1742
+ id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1743
+ hasAttachments: z.boolean().describe(
1744
+ "Indicates whether any of the posts within this Conversation has at least one attachment. Supports $filter (eq, ne) and $search."
1745
+ ).optional(),
1746
+ lastDeliveredDateTime: z.string().regex(
1747
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1748
+ ).datetime({ offset: true }).describe(
1749
+ "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z"
1750
+ ).optional(),
1751
+ preview: z.string().describe(
1752
+ "A short summary from the body of the latest post in this conversation. Supports $filter (eq, ne, le, ge)."
1753
+ ).optional(),
1754
+ topic: z.string().describe(
1755
+ "The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated."
1756
+ ).optional(),
1757
+ uniqueSenders: z.array(z.string()).describe("All the users that sent a message to this Conversation.").optional(),
1758
+ threads: z.array(microsoft_graph_conversationThread).describe(
1759
+ "A collection of all the conversation threads in the conversation. A navigation property. Read-only. Nullable."
1760
+ ).optional()
1761
+ }).passthrough();
1762
+ const microsoft_graph_conversationCollectionResponse = z.object({
1763
+ "@odata.count": z.number().int().nullable(),
1764
+ "@odata.nextLink": z.string().nullable(),
1765
+ value: z.array(microsoft_graph_conversation)
1766
+ }).partial().passthrough();
1767
+ const microsoft_graph_directoryObject = z.object({
1768
+ id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1769
+ deletedDateTime: z.string().regex(
1770
+ /^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$/
1771
+ ).datetime({ offset: true }).describe(
1772
+ "Date and time when this object was deleted. Always null when the object hasn't been deleted."
1773
+ ).nullish()
1774
+ }).passthrough();
1775
+ const microsoft_graph_directoryObjectCollectionResponse = z.object({
1776
+ "@odata.count": z.number().int().nullable(),
1777
+ "@odata.nextLink": z.string().nullable(),
1778
+ value: z.array(microsoft_graph_directoryObject)
1779
+ }).partial().passthrough();
1780
+ const ReferenceCreate = z.record(z.object({}).partial().passthrough());
1781
+ const microsoft_graph_conversationThreadCollectionResponse = z.object({
1782
+ "@odata.count": z.number().int().nullable(),
1783
+ "@odata.nextLink": z.string().nullable(),
1784
+ value: z.array(microsoft_graph_conversationThread)
1785
+ }).partial().passthrough();
1786
+ const reply_to_group_thread_Body = z.object({ Post: microsoft_graph_post }).partial().passthrough();
1787
+ const get_schedule_Body = z.object({
1788
+ Schedules: z.array(z.string().nullable()),
1789
+ EndTime: z.union([microsoft_graph_dateTimeTimeZone, z.object({}).partial().passthrough()]),
1790
+ StartTime: z.union([microsoft_graph_dateTimeTimeZone, z.object({}).partial().passthrough()]),
1791
+ AvailabilityViewInterval: z.number().gte(-2147483648).lte(2147483647).nullable()
1792
+ }).partial().passthrough();
1793
+ const microsoft_graph_freeBusyError = z.object({
1794
+ message: z.string().describe("Describes the error.").nullish(),
1795
+ responseCode: z.string().describe(
1796
+ "The response code from querying for the availability of the user, distribution list, or resource."
1797
+ ).nullish()
1798
+ }).passthrough();
1799
+ const microsoft_graph_scheduleItem = z.object({
1800
+ end: microsoft_graph_dateTimeTimeZone.optional(),
1801
+ isPrivate: z.boolean().describe(
1802
+ "The sensitivity of the corresponding event. True if the event is marked private, false otherwise. Optional."
1803
+ ).nullish(),
1804
+ location: z.string().describe("The location where the corresponding event is held or attended from. Optional.").nullish(),
1805
+ start: microsoft_graph_dateTimeTimeZone.optional(),
1806
+ status: microsoft_graph_freeBusyStatus.optional(),
1807
+ subject: z.string().describe("The corresponding event's subject line. Optional.").nullish()
1808
+ }).passthrough();
1809
+ const microsoft_graph_timeZoneBase = z.object({
1810
+ name: z.string().describe(
1811
+ "The name of a time zone. It can be a standard time zone name such as 'Hawaii-Aleutian Standard Time', or 'Customized Time Zone' for a custom time zone."
1812
+ ).nullish()
1813
+ }).passthrough();
1814
+ const microsoft_graph_workingHours = z.object({
1815
+ daysOfWeek: z.array(z.union([microsoft_graph_dayOfWeek, z.object({}).partial().passthrough()])).describe("The days of the week on which the user works.").optional(),
1816
+ endTime: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?$/).describe("The time of the day that the user stops working.").nullish(),
1817
+ startTime: z.string().regex(/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?$/).describe("The time of the day that the user starts working.").nullish(),
1818
+ timeZone: microsoft_graph_timeZoneBase.optional()
1819
+ }).passthrough();
1820
+ const microsoft_graph_scheduleInformation = z.object({
1821
+ availabilityView: z.string().describe(
1822
+ "Represents a merged view of availability of all the items in scheduleItems. The view consists of time slots. Availability during each time slot is indicated with: 0= free or working elswhere, 1= tentative, 2= busy, 3= out of office.Note: Working elsewhere is set to 0 instead of 4 for backward compatibility. For details, see the Q&A and Exchange 2007 and Exchange 2010 do not use the WorkingElsewhere value."
1823
+ ).nullish(),
1824
+ error: microsoft_graph_freeBusyError.optional(),
1825
+ scheduleId: z.string().describe(
1826
+ "An SMTP address of the user, distribution list, or resource, identifying an instance of scheduleInformation."
1853
1827
  ).nullish(),
1854
- isReminderOn: z.boolean().describe("Set to true if an alert is set to remind the user of the event.").nullish(),
1855
- attendees: z.array(microsoft_graph_attendee).describe("The collection of attendees for the event.").optional(),
1856
- recurrence: microsoft_graph_patternedRecurrence.optional(),
1857
- reminderMinutesBeforeStart: z.number().gte(-2147483648).lte(2147483647).describe("The number of minutes before the event start time that the reminder alert occurs.").nullish(),
1858
- allowNewTimeProposals: z.boolean().describe(
1859
- "true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional. The default is true."
1828
+ scheduleItems: z.array(microsoft_graph_scheduleItem).describe("Contains the items that describe the availability of the user or resource.").optional(),
1829
+ workingHours: microsoft_graph_workingHours.optional()
1830
+ }).passthrough();
1831
+ const microsoft_graph_onlineMeetingProviderType = z.enum([
1832
+ "unknown",
1833
+ "skypeForBusiness",
1834
+ "skypeForConsumer",
1835
+ "teamsForBusiness"
1836
+ ]);
1837
+ const microsoft_graph_calendarColor = z.enum([
1838
+ "auto",
1839
+ "lightBlue",
1840
+ "lightGreen",
1841
+ "lightOrange",
1842
+ "lightGray",
1843
+ "lightYellow",
1844
+ "lightTeal",
1845
+ "lightPink",
1846
+ "lightBrown",
1847
+ "lightRed",
1848
+ "maxColor"
1849
+ ]);
1850
+ const microsoft_graph_calendarRoleType = z.enum([
1851
+ "none",
1852
+ "freeBusyRead",
1853
+ "limitedRead",
1854
+ "read",
1855
+ "write",
1856
+ "delegateWithoutPrivateEventAccess",
1857
+ "delegateWithPrivateEventAccess",
1858
+ "custom"
1859
+ ]);
1860
+ const microsoft_graph_calendarPermission = z.object({
1861
+ id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1862
+ allowedRoles: z.array(z.union([microsoft_graph_calendarRoleType, z.object({}).partial().passthrough()])).describe(
1863
+ "List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom."
1864
+ ).optional(),
1865
+ emailAddress: microsoft_graph_emailAddress.optional(),
1866
+ isInsideOrganization: z.boolean().describe(
1867
+ "True if the user in context (recipient or delegate) is inside the same organization as the calendar owner."
1860
1868
  ).nullish(),
1861
- responseRequested: z.boolean().describe(
1862
- "Default is true, which represents the organizer would like an invitee to send a response to the event."
1869
+ isRemovable: z.boolean().describe(
1870
+ "True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar."
1863
1871
  ).nullish(),
1864
- categories: z.array(z.string().nullable()).describe("The categories associated with the item").optional(),
1865
- changeKey: z.string().describe(
1866
- "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
1867
- ).nullish()
1868
- }).passthrough().passthrough();
1872
+ role: microsoft_graph_calendarRoleType.optional()
1873
+ }).passthrough();
1869
1874
  const microsoft_graph_calendar = z.object({
1870
1875
  id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
1871
1876
  allowedOnlineMeetingProviders: z.array(z.union([microsoft_graph_onlineMeetingProviderType, z.object({}).partial().passthrough()])).describe(
@@ -1912,11 +1917,6 @@ const microsoft_graph_calendarCollectionResponse = z.object({
1912
1917
  "@odata.nextLink": z.string().nullable(),
1913
1918
  value: z.array(microsoft_graph_calendar)
1914
1919
  }).partial().passthrough();
1915
- const microsoft_graph_eventCollectionResponse = z.object({
1916
- "@odata.count": z.number().int().nullable(),
1917
- "@odata.nextLink": z.string().nullable(),
1918
- value: z.array(microsoft_graph_event)
1919
- }).partial().passthrough();
1920
1920
  const microsoft_graph_chatCollectionResponse = z.object({
1921
1921
  "@odata.count": z.number().int().nullable(),
1922
1922
  "@odata.nextLink": z.string().nullable(),
@@ -3762,12 +3762,6 @@ const microsoft_graph_roomCollectionResponse = z.object({
3762
3762
  "@odata.nextLink": z.string().nullable(),
3763
3763
  value: z.array(microsoft_graph_room)
3764
3764
  }).partial().passthrough();
3765
- const microsoft_graph_plannerContainerType = z.enum(["group", "unknownFutureValue", "roster"]);
3766
- const microsoft_graph_plannerPlanContainer = z.object({
3767
- containerId: z.string().describe("The identifier of the resource that contains the plan. Optional.").nullish(),
3768
- type: microsoft_graph_plannerContainerType.optional(),
3769
- url: z.string().describe("The full canonical URL of the container. Optional.").nullish()
3770
- }).passthrough();
3771
3765
  const microsoft_graph_plannerBucket = z.object({
3772
3766
  id: z.string().describe("The unique identifier for an entity. Read-only.").optional(),
3773
3767
  name: z.string().describe("Name of the bucket.").optional(),
@@ -3777,6 +3771,12 @@ const microsoft_graph_plannerBucket = z.object({
3777
3771
  planId: z.string().describe("Plan ID to which the bucket belongs.").nullish(),
3778
3772
  tasks: z.array(microsoft_graph_plannerTask).describe("Read-only. Nullable. The collection of tasks in the bucket.").optional()
3779
3773
  }).passthrough();
3774
+ const microsoft_graph_plannerContainerType = z.enum(["group", "unknownFutureValue", "roster"]);
3775
+ const microsoft_graph_plannerPlanContainer = z.object({
3776
+ containerId: z.string().describe("The identifier of the resource that contains the plan. Optional.").nullish(),
3777
+ type: microsoft_graph_plannerContainerType.optional(),
3778
+ url: z.string().describe("The full canonical URL of the container. Optional.").nullish()
3779
+ }).passthrough();
3780
3780
  const microsoft_graph_plannerCategoryDescriptions = z.object({
3781
3781
  category1: z.string().describe("The label associated with Category 1").nullish(),
3782
3782
  category10: z.string().describe("The label associated with Category 10").nullish(),
@@ -3827,6 +3827,11 @@ const microsoft_graph_plannerPlan = z.object({
3827
3827
  details: microsoft_graph_plannerPlanDetails.optional(),
3828
3828
  tasks: z.array(microsoft_graph_plannerTask).describe("Read-only. Nullable. Collection of tasks in the plan.").optional()
3829
3829
  }).passthrough();
3830
+ const microsoft_graph_plannerBucketCollectionResponse = z.object({
3831
+ "@odata.count": z.number().int().nullable(),
3832
+ "@odata.nextLink": z.string().nullable(),
3833
+ value: z.array(microsoft_graph_plannerBucket)
3834
+ }).partial().passthrough();
3830
3835
  const microsoft_graph_bucketAggregationRange = z.object({
3831
3836
  from: z.string().describe(
3832
3837
  "Defines the lower bound from which to compute the aggregation. This can be a numeric value or a string representation of a date using the YYYY-MM-DDTHH:mm:ss.sssZ format. Required."
@@ -4455,12 +4460,35 @@ const schemas = {
4455
4460
  microsoft_graph_licenseProcessingState,
4456
4461
  microsoft_graph_group,
4457
4462
  microsoft_graph_groupCollectionResponse,
4463
+ microsoft_graph_eventType,
4464
+ microsoft_graph_attachment,
4465
+ microsoft_graph_singleValueLegacyExtendedProperty,
4466
+ microsoft_graph_multiValueLegacyExtendedProperty,
4467
+ microsoft_graph_physicalAddress,
4468
+ microsoft_graph_outlookGeoCoordinates,
4469
+ microsoft_graph_locationType,
4470
+ microsoft_graph_locationUniqueIdType,
4471
+ microsoft_graph_location,
4472
+ microsoft_graph_freeBusyStatus,
4473
+ microsoft_graph_sensitivity,
4474
+ microsoft_graph_importance,
4458
4475
  microsoft_graph_emailAddress,
4476
+ microsoft_graph_attendeeType,
4477
+ microsoft_graph_timeSlot,
4478
+ microsoft_graph_responseType,
4479
+ microsoft_graph_responseStatus,
4480
+ microsoft_graph_attendee,
4481
+ microsoft_graph_dayOfWeek,
4482
+ microsoft_graph_weekIndex,
4483
+ microsoft_graph_recurrencePatternType,
4484
+ microsoft_graph_recurrencePattern,
4485
+ microsoft_graph_recurrenceRangeType,
4486
+ microsoft_graph_recurrenceRange,
4487
+ microsoft_graph_patternedRecurrence,
4488
+ microsoft_graph_event,
4489
+ microsoft_graph_eventCollectionResponse,
4459
4490
  microsoft_graph_recipient,
4460
- microsoft_graph_attachment,
4461
4491
  microsoft_graph_extension,
4462
- microsoft_graph_multiValueLegacyExtendedProperty,
4463
- microsoft_graph_singleValueLegacyExtendedProperty,
4464
4492
  microsoft_graph_post,
4465
4493
  microsoft_graph_conversationThread,
4466
4494
  microsoft_graph_conversation,
@@ -4472,9 +4500,7 @@ const schemas = {
4472
4500
  reply_to_group_thread_Body,
4473
4501
  get_schedule_Body,
4474
4502
  microsoft_graph_freeBusyError,
4475
- microsoft_graph_freeBusyStatus,
4476
4503
  microsoft_graph_scheduleItem,
4477
- microsoft_graph_dayOfWeek,
4478
4504
  microsoft_graph_timeZoneBase,
4479
4505
  microsoft_graph_workingHours,
4480
4506
  microsoft_graph_scheduleInformation,
@@ -4482,29 +4508,8 @@ const schemas = {
4482
4508
  microsoft_graph_calendarColor,
4483
4509
  microsoft_graph_calendarRoleType,
4484
4510
  microsoft_graph_calendarPermission,
4485
- microsoft_graph_eventType,
4486
- microsoft_graph_physicalAddress,
4487
- microsoft_graph_outlookGeoCoordinates,
4488
- microsoft_graph_locationType,
4489
- microsoft_graph_locationUniqueIdType,
4490
- microsoft_graph_location,
4491
- microsoft_graph_sensitivity,
4492
- microsoft_graph_importance,
4493
- microsoft_graph_attendeeType,
4494
- microsoft_graph_timeSlot,
4495
- microsoft_graph_responseType,
4496
- microsoft_graph_responseStatus,
4497
- microsoft_graph_attendee,
4498
- microsoft_graph_weekIndex,
4499
- microsoft_graph_recurrencePatternType,
4500
- microsoft_graph_recurrencePattern,
4501
- microsoft_graph_recurrenceRangeType,
4502
- microsoft_graph_recurrenceRange,
4503
- microsoft_graph_patternedRecurrence,
4504
- microsoft_graph_event,
4505
4511
  microsoft_graph_calendar,
4506
4512
  microsoft_graph_calendarCollectionResponse,
4507
- microsoft_graph_eventCollectionResponse,
4508
4513
  microsoft_graph_chatCollectionResponse,
4509
4514
  microsoft_graph_contact,
4510
4515
  microsoft_graph_contactCollectionResponse,
@@ -4685,13 +4690,14 @@ const schemas = {
4685
4690
  microsoft_graph_workspace,
4686
4691
  microsoft_graph_roomList,
4687
4692
  microsoft_graph_roomCollectionResponse,
4693
+ microsoft_graph_plannerBucket,
4688
4694
  microsoft_graph_plannerContainerType,
4689
4695
  microsoft_graph_plannerPlanContainer,
4690
- microsoft_graph_plannerBucket,
4691
4696
  microsoft_graph_plannerCategoryDescriptions,
4692
4697
  microsoft_graph_plannerUserIds,
4693
4698
  microsoft_graph_plannerPlanDetails,
4694
4699
  microsoft_graph_plannerPlan,
4700
+ microsoft_graph_plannerBucketCollectionResponse,
4695
4701
  microsoft_graph_bucketAggregationRange,
4696
4702
  microsoft_graph_bucketAggregationSortProperty,
4697
4703
  microsoft_graph_bucketAggregationDefinition,
@@ -6187,9 +6193,124 @@ You can create or update the following types of group: By default, this operatio
6187
6193
  },
6188
6194
  {
6189
6195
  method: "get",
6190
- path: "/groups/:groupId/conversations",
6191
- alias: "list-group-conversations",
6192
- description: `Retrieve the list of conversations in this group.`,
6196
+ path: "/groups/:groupId/calendarView",
6197
+ alias: "get-group-calendar-view",
6198
+ description: `Get the occurrences, exceptions, and single instances of events in a calendar view defined by a time range,
6199
+ from the default calendar of a group.`,
6200
+ requestFormat: "json",
6201
+ parameters: [
6202
+ {
6203
+ name: "startDateTime",
6204
+ type: "Query",
6205
+ schema: z.string().describe(
6206
+ "The start date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T19:00:00-08:00"
6207
+ )
6208
+ },
6209
+ {
6210
+ name: "endDateTime",
6211
+ type: "Query",
6212
+ schema: z.string().describe(
6213
+ "The end date and time of the time range, represented in ISO 8601 format. For example, 2019-11-08T20:00:00-08:00"
6214
+ )
6215
+ },
6216
+ {
6217
+ name: "$top",
6218
+ type: "Query",
6219
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
6220
+ },
6221
+ {
6222
+ name: "$skip",
6223
+ type: "Query",
6224
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
6225
+ },
6226
+ {
6227
+ name: "$search",
6228
+ type: "Query",
6229
+ schema: z.string().describe("Search items by search phrases").optional()
6230
+ },
6231
+ {
6232
+ name: "$filter",
6233
+ type: "Query",
6234
+ schema: z.string().describe("Filter items by property values").optional()
6235
+ },
6236
+ {
6237
+ name: "$count",
6238
+ type: "Query",
6239
+ schema: z.boolean().describe("Include count of items").optional()
6240
+ },
6241
+ {
6242
+ name: "$orderby",
6243
+ type: "Query",
6244
+ schema: z.array(z.string()).describe("Order items by property values").optional()
6245
+ },
6246
+ {
6247
+ name: "$select",
6248
+ type: "Query",
6249
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
6250
+ },
6251
+ {
6252
+ name: "$expand",
6253
+ type: "Query",
6254
+ schema: z.array(z.string()).describe("Expand related entities").optional()
6255
+ }
6256
+ ],
6257
+ response: z.void()
6258
+ },
6259
+ {
6260
+ method: "get",
6261
+ path: "/groups/:groupId/conversations",
6262
+ alias: "list-group-conversations",
6263
+ description: `Retrieve the list of conversations in this group.`,
6264
+ requestFormat: "json",
6265
+ parameters: [
6266
+ {
6267
+ name: "$top",
6268
+ type: "Query",
6269
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
6270
+ },
6271
+ {
6272
+ name: "$skip",
6273
+ type: "Query",
6274
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
6275
+ },
6276
+ {
6277
+ name: "$search",
6278
+ type: "Query",
6279
+ schema: z.string().describe("Search items by search phrases").optional()
6280
+ },
6281
+ {
6282
+ name: "$filter",
6283
+ type: "Query",
6284
+ schema: z.string().describe("Filter items by property values").optional()
6285
+ },
6286
+ {
6287
+ name: "$count",
6288
+ type: "Query",
6289
+ schema: z.boolean().describe("Include count of items").optional()
6290
+ },
6291
+ {
6292
+ name: "$orderby",
6293
+ type: "Query",
6294
+ schema: z.array(z.string()).describe("Order items by property values").optional()
6295
+ },
6296
+ {
6297
+ name: "$select",
6298
+ type: "Query",
6299
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
6300
+ },
6301
+ {
6302
+ name: "$expand",
6303
+ type: "Query",
6304
+ schema: z.array(z.string()).describe("Expand related entities").optional()
6305
+ }
6306
+ ],
6307
+ response: z.void()
6308
+ },
6309
+ {
6310
+ method: "get",
6311
+ path: "/groups/:groupId/events",
6312
+ alias: "list-group-events",
6313
+ description: `Retrieve a list of event objects.`,
6193
6314
  requestFormat: "json",
6194
6315
  parameters: [
6195
6316
  {
@@ -10173,6 +10294,78 @@ For example, if the user uploads a photo that is 504x504 pixels, all but the 648
10173
10294
  ],
10174
10295
  response: z.void()
10175
10296
  },
10297
+ {
10298
+ method: "post",
10299
+ path: "/planner/buckets",
10300
+ alias: "create-planner-bucket",
10301
+ description: `Create a new plannerBucket object.`,
10302
+ requestFormat: "json",
10303
+ parameters: [
10304
+ {
10305
+ name: "body",
10306
+ description: `New navigation property`,
10307
+ type: "Body",
10308
+ schema: microsoft_graph_plannerBucket
10309
+ }
10310
+ ],
10311
+ response: z.void()
10312
+ },
10313
+ {
10314
+ method: "get",
10315
+ path: "/planner/buckets/:plannerBucketId",
10316
+ alias: "get-planner-bucket",
10317
+ description: `Retrieve the properties and relationships of a plannerBucket object.`,
10318
+ requestFormat: "json",
10319
+ parameters: [
10320
+ {
10321
+ name: "$select",
10322
+ type: "Query",
10323
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
10324
+ },
10325
+ {
10326
+ name: "$expand",
10327
+ type: "Query",
10328
+ schema: z.array(z.string()).describe("Expand related entities").optional()
10329
+ }
10330
+ ],
10331
+ response: z.void()
10332
+ },
10333
+ {
10334
+ method: "patch",
10335
+ path: "/planner/buckets/:plannerBucketId",
10336
+ alias: "update-planner-bucket",
10337
+ description: `Update the properties of plannerbucket object.`,
10338
+ requestFormat: "json",
10339
+ parameters: [
10340
+ {
10341
+ name: "body",
10342
+ description: `New navigation property values`,
10343
+ type: "Body",
10344
+ schema: microsoft_graph_plannerBucket
10345
+ },
10346
+ {
10347
+ name: "If-Match",
10348
+ type: "Header",
10349
+ schema: z.string().describe("ETag value.")
10350
+ }
10351
+ ],
10352
+ response: z.void()
10353
+ },
10354
+ {
10355
+ method: "delete",
10356
+ path: "/planner/buckets/:plannerBucketId",
10357
+ alias: "delete-planner-bucket",
10358
+ description: `Delete plannerBucket.`,
10359
+ requestFormat: "json",
10360
+ parameters: [
10361
+ {
10362
+ name: "If-Match",
10363
+ type: "Header",
10364
+ schema: z.string().describe("ETag").optional()
10365
+ }
10366
+ ],
10367
+ response: z.void()
10368
+ },
10176
10369
  {
10177
10370
  method: "get",
10178
10371
  path: "/planner/plans/:plannerPlanId",
@@ -10193,6 +10386,56 @@ For example, if the user uploads a photo that is 504x504 pixels, all but the 648
10193
10386
  ],
10194
10387
  response: z.void()
10195
10388
  },
10389
+ {
10390
+ method: "get",
10391
+ path: "/planner/plans/:plannerPlanId/buckets",
10392
+ alias: "list-plan-buckets",
10393
+ description: `Retrieve a list of plannerBucket objects contained by a plannerPlan object.`,
10394
+ requestFormat: "json",
10395
+ parameters: [
10396
+ {
10397
+ name: "$top",
10398
+ type: "Query",
10399
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
10400
+ },
10401
+ {
10402
+ name: "$skip",
10403
+ type: "Query",
10404
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
10405
+ },
10406
+ {
10407
+ name: "$search",
10408
+ type: "Query",
10409
+ schema: z.string().describe("Search items by search phrases").optional()
10410
+ },
10411
+ {
10412
+ name: "$filter",
10413
+ type: "Query",
10414
+ schema: z.string().describe("Filter items by property values").optional()
10415
+ },
10416
+ {
10417
+ name: "$count",
10418
+ type: "Query",
10419
+ schema: z.boolean().describe("Include count of items").optional()
10420
+ },
10421
+ {
10422
+ name: "$orderby",
10423
+ type: "Query",
10424
+ schema: z.array(z.string()).describe("Order items by property values").optional()
10425
+ },
10426
+ {
10427
+ name: "$select",
10428
+ type: "Query",
10429
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
10430
+ },
10431
+ {
10432
+ name: "$expand",
10433
+ type: "Query",
10434
+ schema: z.array(z.string()).describe("Expand related entities").optional()
10435
+ }
10436
+ ],
10437
+ response: z.void()
10438
+ },
10196
10439
  {
10197
10440
  method: "get",
10198
10441
  path: "/planner/plans/:plannerPlanId/tasks",
@@ -10881,6 +11124,164 @@ To list them, include system in your $select statement.`,
10881
11124
  ],
10882
11125
  response: z.void()
10883
11126
  },
11127
+ {
11128
+ method: "get",
11129
+ path: "/sites/:siteId/onenote/notebooks",
11130
+ alias: "list-sharepoint-site-onenote-notebooks",
11131
+ description: `The collection of OneNote notebooks that are owned by the user or group. Read-only. Nullable.`,
11132
+ requestFormat: "json",
11133
+ parameters: [
11134
+ {
11135
+ name: "$top",
11136
+ type: "Query",
11137
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
11138
+ },
11139
+ {
11140
+ name: "$skip",
11141
+ type: "Query",
11142
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
11143
+ },
11144
+ {
11145
+ name: "$search",
11146
+ type: "Query",
11147
+ schema: z.string().describe("Search items by search phrases").optional()
11148
+ },
11149
+ {
11150
+ name: "$filter",
11151
+ type: "Query",
11152
+ schema: z.string().describe("Filter items by property values").optional()
11153
+ },
11154
+ {
11155
+ name: "$count",
11156
+ type: "Query",
11157
+ schema: z.boolean().describe("Include count of items").optional()
11158
+ },
11159
+ {
11160
+ name: "$orderby",
11161
+ type: "Query",
11162
+ schema: z.array(z.string()).describe("Order items by property values").optional()
11163
+ },
11164
+ {
11165
+ name: "$select",
11166
+ type: "Query",
11167
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
11168
+ },
11169
+ {
11170
+ name: "$expand",
11171
+ type: "Query",
11172
+ schema: z.array(z.string()).describe("Expand related entities").optional()
11173
+ }
11174
+ ],
11175
+ response: z.void()
11176
+ },
11177
+ {
11178
+ method: "get",
11179
+ path: "/sites/:siteId/onenote/notebooks/:notebookId/sections",
11180
+ alias: "list-sharepoint-site-onenote-notebook-sections",
11181
+ description: `The sections in the notebook. Read-only. Nullable.`,
11182
+ requestFormat: "json",
11183
+ parameters: [
11184
+ {
11185
+ name: "$top",
11186
+ type: "Query",
11187
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
11188
+ },
11189
+ {
11190
+ name: "$skip",
11191
+ type: "Query",
11192
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
11193
+ },
11194
+ {
11195
+ name: "$search",
11196
+ type: "Query",
11197
+ schema: z.string().describe("Search items by search phrases").optional()
11198
+ },
11199
+ {
11200
+ name: "$filter",
11201
+ type: "Query",
11202
+ schema: z.string().describe("Filter items by property values").optional()
11203
+ },
11204
+ {
11205
+ name: "$count",
11206
+ type: "Query",
11207
+ schema: z.boolean().describe("Include count of items").optional()
11208
+ },
11209
+ {
11210
+ name: "$orderby",
11211
+ type: "Query",
11212
+ schema: z.array(z.string()).describe("Order items by property values").optional()
11213
+ },
11214
+ {
11215
+ name: "$select",
11216
+ type: "Query",
11217
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
11218
+ },
11219
+ {
11220
+ name: "$expand",
11221
+ type: "Query",
11222
+ schema: z.array(z.string()).describe("Expand related entities").optional()
11223
+ }
11224
+ ],
11225
+ response: z.void()
11226
+ },
11227
+ {
11228
+ method: "get",
11229
+ path: "/sites/:siteId/onenote/pages/:onenotePageId/content",
11230
+ alias: "get-sharepoint-site-onenote-page-content",
11231
+ description: `The page's HTML content.`,
11232
+ requestFormat: "json",
11233
+ response: z.void()
11234
+ },
11235
+ {
11236
+ method: "get",
11237
+ path: "/sites/:siteId/onenote/sections/:onenoteSectionId/pages",
11238
+ alias: "list-sharepoint-site-onenote-section-pages",
11239
+ description: `The collection of pages in the section. Read-only. Nullable.`,
11240
+ requestFormat: "json",
11241
+ parameters: [
11242
+ {
11243
+ name: "$top",
11244
+ type: "Query",
11245
+ schema: z.number().int().gte(0).describe("Show only the first n items").optional()
11246
+ },
11247
+ {
11248
+ name: "$skip",
11249
+ type: "Query",
11250
+ schema: z.number().int().gte(0).describe("Skip the first n items").optional()
11251
+ },
11252
+ {
11253
+ name: "$search",
11254
+ type: "Query",
11255
+ schema: z.string().describe("Search items by search phrases").optional()
11256
+ },
11257
+ {
11258
+ name: "$filter",
11259
+ type: "Query",
11260
+ schema: z.string().describe("Filter items by property values").optional()
11261
+ },
11262
+ {
11263
+ name: "$count",
11264
+ type: "Query",
11265
+ schema: z.boolean().describe("Include count of items").optional()
11266
+ },
11267
+ {
11268
+ name: "$orderby",
11269
+ type: "Query",
11270
+ schema: z.array(z.string()).describe("Order items by property values").optional()
11271
+ },
11272
+ {
11273
+ name: "$select",
11274
+ type: "Query",
11275
+ schema: z.array(z.string()).describe("Select properties to be returned").optional()
11276
+ },
11277
+ {
11278
+ name: "$expand",
11279
+ type: "Query",
11280
+ schema: z.array(z.string()).describe("Expand related entities").optional()
11281
+ }
11282
+ ],
11283
+ response: z.void()
11284
+ },
10884
11285
  {
10885
11286
  method: "get",
10886
11287
  path: "/sites/delta()",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softeria/ms-365-mcp-server",
3
- "version": "0.85.2",
3
+ "version": "0.86.0",
4
4
  "description": " A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -640,6 +640,30 @@
640
640
  "toolName": "get-onenote-page-content",
641
641
  "scopes": ["Notes.Read"]
642
642
  },
643
+ {
644
+ "pathPattern": "/sites/{site-id}/onenote/notebooks",
645
+ "method": "get",
646
+ "toolName": "list-sharepoint-site-onenote-notebooks",
647
+ "workScopes": ["Notes.Read"]
648
+ },
649
+ {
650
+ "pathPattern": "/sites/{site-id}/onenote/notebooks/{notebook-id}/sections",
651
+ "method": "get",
652
+ "toolName": "list-sharepoint-site-onenote-notebook-sections",
653
+ "workScopes": ["Notes.Read"]
654
+ },
655
+ {
656
+ "pathPattern": "/sites/{site-id}/onenote/sections/{onenoteSection-id}/pages",
657
+ "method": "get",
658
+ "toolName": "list-sharepoint-site-onenote-section-pages",
659
+ "workScopes": ["Notes.Read"]
660
+ },
661
+ {
662
+ "pathPattern": "/sites/{site-id}/onenote/pages/{onenotePage-id}/content",
663
+ "method": "get",
664
+ "toolName": "get-sharepoint-site-onenote-page-content",
665
+ "workScopes": ["Notes.Read"]
666
+ },
643
667
  {
644
668
  "pathPattern": "/me/onenote/pages",
645
669
  "method": "post",
@@ -777,6 +801,39 @@
777
801
  "scopes": ["Tasks.ReadWrite"],
778
802
  "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-task-details (use includeHeaders=true). Checklist items use GUID keys: {\"checklist\": {\"<guid>\": {\"title\": \"...\", \"isChecked\": false}}}."
779
803
  },
804
+ {
805
+ "pathPattern": "/planner/plans/{plannerPlan-id}/buckets",
806
+ "method": "get",
807
+ "toolName": "list-plan-buckets",
808
+ "scopes": ["Tasks.Read"]
809
+ },
810
+ {
811
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
812
+ "method": "get",
813
+ "toolName": "get-planner-bucket",
814
+ "scopes": ["Tasks.Read"],
815
+ "llmTip": "Response includes @odata.etag — required as If-Match for update-planner-bucket and delete-planner-bucket. Use includeHeaders=true."
816
+ },
817
+ {
818
+ "pathPattern": "/planner/buckets",
819
+ "method": "post",
820
+ "toolName": "create-planner-bucket",
821
+ "scopes": ["Tasks.ReadWrite"]
822
+ },
823
+ {
824
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
825
+ "method": "patch",
826
+ "toolName": "update-planner-bucket",
827
+ "scopes": ["Tasks.ReadWrite"],
828
+ "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true)."
829
+ },
830
+ {
831
+ "pathPattern": "/planner/buckets/{plannerBucket-id}",
832
+ "method": "delete",
833
+ "toolName": "delete-planner-bucket",
834
+ "scopes": ["Tasks.ReadWrite"],
835
+ "llmTip": "CRITICAL: Requires If-Match header with ETag from get-planner-bucket (use includeHeaders=true)."
836
+ },
780
837
  {
781
838
  "pathPattern": "/me/contacts",
782
839
  "method": "get",
@@ -901,6 +958,20 @@
901
958
  "workScopes": ["Group.Read.All"],
902
959
  "llmTip": "Gets a specific group's details: displayName, description, mail, visibility, groupTypes, membershipRule, createdDateTime. Use $select to limit returned properties."
903
960
  },
961
+ {
962
+ "pathPattern": "/groups/{group-id}/calendarView",
963
+ "method": "get",
964
+ "toolName": "get-group-calendar-view",
965
+ "workScopes": ["Group.Read.All"],
966
+ "supportsTimezone": true
967
+ },
968
+ {
969
+ "pathPattern": "/groups/{group-id}/events",
970
+ "method": "get",
971
+ "toolName": "list-group-events",
972
+ "workScopes": ["Group.Read.All"],
973
+ "supportsTimezone": true
974
+ },
904
975
  {
905
976
  "pathPattern": "/groups/{group-id}/members",
906
977
  "method": "get",