sonarr_get_calendar
Retrieve upcoming TV episodes from Sonarr to monitor release schedules and plan media management.
Instructions
Get upcoming TV episodes from Sonarr
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look ahead (default: 7) |
Implementation Reference
- src/index.ts:1121-1130 (handler)MCP tool handler for sonarr_get_calendar: computes date range from optional 'days' parameter (default 7), calls SonarrClient.getCalendar(start, end), and returns JSON response.case "sonarr_get_calendar": { if (!clients.sonarr) throw new Error("Sonarr not configured"); const days = (args as { days?: number })?.days || 7; const start = new Date().toISOString().split('T')[0]; const end = new Date(Date.now() + days * 24 * 60 * 60 * 1000).toISOString().split('T')[0]; const calendar = await clients.sonarr.getCalendar(start, end); return { content: [{ type: "text", text: JSON.stringify(calendar, null, 2) }], }; }
- src/index.ts:216-228 (registration)Registration of sonarr_get_calendar tool in TOOLS array (conditional on Sonarr client configured), including input schema defining optional 'days' parameter.name: "sonarr_get_calendar", description: "Get upcoming TV episodes from Sonarr", inputSchema: { type: "object" as const, properties: { days: { type: "number", description: "Number of days to look ahead (default: 7)", }, }, required: [], }, },
- src/arr-client.ts:499-505 (handler)Core implementation in ArrClient.getCalendar (inherited by SonarrClient): constructs /api/v3/calendar?start=YYYY-MM-DD&end=YYYY-MM-DD query and makes authenticated API request to Sonarr.async getCalendar(start?: string, end?: string): Promise<unknown[]> { const params = new URLSearchParams(); if (start) params.append('start', start); if (end) params.append('end', end); const query = params.toString() ? `?${params.toString()}` : ''; return this.request<unknown[]>(`/calendar${query}`); }