This commit is contained in:
2026-07-10 16:36:22 +03:00
parent 990a8d09b6
commit 17a6f91b3f
7 changed files with 56 additions and 219 deletions
+12 -10
View File
@@ -6,20 +6,21 @@ export function registerAvailabilityTools(server: McpServer): void {
server.registerTool(
"find_free_time",
{
description: "Find free time slots in your own calendar",
description:
"Find free time slots in your own calendar. Queries your free/busy status and returns available slots within working hours that meet the minimum duration. Returns {freeSlots: {date: [{start, end, durationMinutes}]}}. Defaults: durationMinutes=30, startHour=9, endHour=18.",
inputSchema: z.object({
startDate: z.string().describe("Start date in YYYY-MM-DD format"),
endDate: z.string().optional().describe(
"End date in YYYY-MM-DD format (defaults to startDate)",
"End date in YYYY-MM-DD format. Defaults to startDate",
),
durationMinutes: z.number().default(30).describe(
"Minimum slot duration in minutes (default 30)",
"Minimum slot duration in minutes. Default: 30",
),
startHour: z.number().default(9).describe(
"Working day start hour (0-23, default 9)",
"Working day start hour (0-23). Default: 9",
),
endHour: z.number().default(18).describe(
"Working day end hour (0-23, default 18)",
"Working day end hour (0-23). Default: 18",
),
}),
},
@@ -94,23 +95,24 @@ export function registerAvailabilityTools(server: McpServer): void {
server.registerTool(
"find_meeting_time",
{
description: "Find meeting times that work for multiple people",
description:
"Find common free time for multiple attendees. Queries free/busy for all attendees and returns slots where everyone is available. Returns {period, attendees, freeSlots}. Defaults: durationMinutes=30, startHour=9, endHour=18.",
inputSchema: z.object({
emails: z.string().describe(
"Comma-separated email addresses of attendees",
),
startDate: z.string().describe("Start date in YYYY-MM-DD format"),
endDate: z.string().optional().describe(
"End date in YYYY-MM-DD format (defaults to startDate)",
"End date in YYYY-MM-DD format. Defaults to startDate",
),
durationMinutes: z.number().default(30).describe(
"Minimum slot duration in minutes (default 30)",
"Minimum slot duration in minutes. Default: 30",
),
startHour: z.number().default(9).describe(
"Working day start hour (0-23, default 9)",
"Working day start hour (0-23). Default: 9",
),
endHour: z.number().default(18).describe(
"Working day end hour (0-23, default 18)",
"Working day end hour (0-23). Default: 18",
),
}),
},