completeReminder
Mark reminders as completed in Apple Reminders using the MCP Apple Reminders server. Specify list and reminder names to update tasks efficiently.
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:104-137 (handler)Core handler function that implements the logic to mark a reminder as completed in the specified list using the node-reminders library.export async function completeReminder(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 } // Update the reminder to mark it as completed await reminders.updateReminder(targetReminder.id, { completed: true }); return true; } catch (error) { console.error(`Failed to complete reminder "${reminderName}" in list "${listName}":`, error); throw new Error(`Failed to complete reminder: ${error}`); } }
- src/index.ts:94-118 (registration)MCP server tool registration for 'completeReminder', including input schema and wrapper handler that delegates to the core implementation."completeReminder", { listName: z.string(), reminderName: z.string() }, async ({ listName, reminderName }) => { try { const success = await reminders.completeReminder(listName, reminderName); return { content: [{ type: "text", text: JSON.stringify({ success, message: success ? "Reminder marked as completed" : "Reminder not found" }) }] }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ error: "Failed to complete reminder" }) }], isError: true }; } } );
- src/index.ts:95-98 (schema)Zod schema defining input parameters for the completeReminder tool: listName and reminderName as strings.{ listName: z.string(), reminderName: z.string() },