deleteReminder
Remove specific reminders from Apple Reminders by specifying the list name and reminder name. Simplify task management by eliminating completed or unnecessary reminders directly through natural language commands.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| reminderName | Yes |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"listName": {
"type": "string"
},
"reminderName": {
"type": "string"
}
},
"required": [
"listName",
"reminderName"
],
"type": "object"
}
Implementation Reference
- src/reminders.ts:142-173 (handler)Main handler function implementing the deleteReminder logic: finds the reminder list, locates the specific reminder by name, and deletes it using the node-reminders library.export async function deleteReminder(listName: string, reminderName: string): Promise<boolean> { try { // First get the list ID by name const lists = await reminders.getLists(); const targetList = lists.find(list => list.name === listName); if (!targetList) { throw new Error(`List "${listName}" not found`); } // Get all reminders from the list const reminderItems = await reminders.getReminders( targetList.id, ['name', 'id'] ); // Find the specific reminder by name const targetReminder = reminderItems.find(item => item.name === reminderName); if (!targetReminder) { return false; // Reminder not found } // Delete the reminder await reminders.deleteReminder(targetReminder.id); return true; } catch (error) { console.error(`Failed to delete reminder "${reminderName}" in list "${listName}":`, error); throw new Error(`Failed to delete reminder: ${error}`); } }
- src/index.ts:123-126 (schema)Zod schema defining input parameters for the deleteReminder tool: listName and reminderName as required strings.{ listName: z.string(), reminderName: z.string() },
- src/index.ts:121-146 (registration)MCP server.tool registration for 'deleteReminder', including schema, thin wrapper handler that calls the core implementation, and formats the response.server.tool( "deleteReminder", { listName: z.string(), reminderName: z.string() }, async ({ listName, reminderName }) => { try { const success = await reminders.deleteReminder(listName, reminderName); return { content: [{ type: "text", text: JSON.stringify({ success, message: success ? "Reminder deleted" : "Reminder not found" }) }] }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ error: "Failed to delete reminder" }) }], isError: true }; } } );