Skip to main content
Glama
shadowfax92

MCP Apple Reminders

by shadowfax92

deleteReminder

Remove a specific reminder from an Apple Reminders list by specifying both the list name and reminder name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
listNameYes
reminderNameYes

Implementation Reference

  • MCP tool handler for 'deleteReminder' that delegates to the reminders.deleteReminder helper function and formats the response as MCP content.
    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
        };
      }
    }
  • Zod input schema validating listName and reminderName parameters for the deleteReminder tool.
    { 
      listName: z.string(),
      reminderName: z.string()
    },
  • src/index.ts:121-146 (registration)
    Registration of the 'deleteReminder' tool with the MCP server using server.tool().
    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
          };
        }
      }
    );
  • Helper function implementing the core logic to delete a specific reminder from a list by finding the list ID, reminder ID, and calling the node-reminders library's deleteReminder.
    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}`);
      }
    } 

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shadowfax92/apple-reminders-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server