Skip to main content
Glama
byndcloud

Unofficial Dex CRM MCP Server

by byndcloud

dex_delete_reminder

Permanently delete a reminder from your CRM. For recurring reminders, this action stops all future occurrences by removing the specified reminder ID.

Instructions

Permanently delete a reminder. For recurring reminders, this stops all future occurrences.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reminderIdYes

Implementation Reference

  • Handler implementation for the dex_delete_reminder tool.
    server.tool(
      "dex_delete_reminder",
      "Permanently delete a reminder. For recurring reminders, this stops all future occurrences.",
      { reminderId: z.string() },
      async (args) => {
        try {
          const result = await dex.delete(`/v1/reminders/${args.reminderId}`);
          return toResult(result);
        } catch (error) {
          return toError(error);
        }
      }
    );
  • Registration of reminder tools, including dex_delete_reminder, within the registerReminderTools function.
    export function registerReminderTools(server: McpServer): void {
      server.tool(
        "dex_create_reminder",
        "Create a new reminder, optionally linked to contacts. Supports recurrence (e.g. 'weekly', 'monthly').",
        {
          text: z.string().describe("Reminder text / title"),
          dueDate: z.string().describe("Due date — accepts 'YYYY-MM-DD' or full ISO 8601 datetime (e.g. '2025-12-31' or '2025-12-31T10:00:00Z')"),
          dueTime: z.string().optional().describe("Optional due time as ISO 8601 datetime (e.g. '2025-12-31T14:00:00Z')"),
          contactIds: z.array(z.string()).optional().describe("Optional list of contact IDs to link to this reminder"),
          recurrence: z.string().optional().describe("Recurrence pattern (e.g. 'weekly', 'monthly')"),
          isComplete: z.boolean().optional(),
        },
        async (args) => {
          try {
            const result = await dex.post("/v1/reminders/", {
              reminder: toReminderBody(args),
            });
            return toResult(result);
          } catch (error) {
            return toError(error);
          }
        }
      );
    
      server.tool(
        "dex_update_reminder",
        "Update a reminder by ID. Modify text, due date/time, linked contacts, recurrence, completion status, and notification flags.",
        {
          reminderId: z.string(),
          reminder: z.object({
            text: z.string().optional().describe("Reminder text / title"),
            dueDate: z.string().optional().describe("Due date — accepts 'YYYY-MM-DD' or full ISO 8601 datetime"),
            dueTime: z.string().optional().describe("Optional due time as ISO 8601 datetime"),
            contactIds: z.array(z.string()).optional().describe("List of contact IDs to link to this reminder"),
            recurrence: z.string().optional().describe("Recurrence pattern (e.g. 'weekly', 'monthly')"),
            isComplete: z.boolean().optional(),
            lastCompletedAt: z.string().optional().describe("ISO 8601 datetime of last completion"),
            nextOccurrenceAt: z.string().optional().describe("ISO 8601 datetime of next occurrence"),
            emailSent: z.boolean().optional(),
            pushNotificationSent: z.boolean().optional(),
          }),
        },
        async (args) => {
          try {
            const { lastCompletedAt, nextOccurrenceAt, emailSent, pushNotificationSent, ...base } = args.reminder;
            const result = await dex.put(`/v1/reminders/${args.reminderId}`, {
              reminder: {
                ...toReminderBody(base),
                ...(lastCompletedAt !== undefined && { last_completed_at: toDateTime(lastCompletedAt) }),
                ...(nextOccurrenceAt !== undefined && { next_occurrence_at: toDateTime(nextOccurrenceAt) }),
                ...(emailSent !== undefined && { email_sent: emailSent }),
                ...(pushNotificationSent !== undefined && { push_notification_sent: pushNotificationSent }),
              },
            });
            return toResult(result);
          } catch (error) {
            return toError(error);
          }
        }
      );
    
      server.tool(
        "dex_delete_reminder",
        "Permanently delete a reminder. For recurring reminders, this stops all future occurrences.",
        { reminderId: z.string() },
        async (args) => {
          try {
            const result = await dex.delete(`/v1/reminders/${args.reminderId}`);
            return toResult(result);
          } catch (error) {
            return toError(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/byndcloud/unofficial-dex-mcp'

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