Skip to content

feat: Add contact create/update/delete via CardDAV #17

@kerryhatcher

Description

@kerryhatcher

Feature Request

The contacts subcommand currently supports list and search, but there's no way to create, update, or delete contacts.

Proposed Commands

# Create a new contact
fastmail-cli contacts create --name "Jane Doe" --email "jane@example.com" --organization "Acme Corp"

# Update an existing contact
fastmail-cli contacts update CONTACT_ID --organization "Acme Corp"

# Delete a contact
fastmail-cli contacts delete CONTACT_ID

GraphQL Mutations (MCP Server)

It would also be great to expose these as GraphQL mutations for the MCP server:

mutation {
  createContact(name: "Jane Doe", email: "jane@example.com", organization: "Acme Corp") { id name }
  updateContact(id: "abc123", organization: "Acme Corp") { id name organization }
  deleteContact(id: "abc123") { success }
}

Use Case

When triaging emails from new contacts, it's useful to be able to create or update contact records without leaving the terminal or AI assistant. For example, adding an organization field to multiple contacts or creating a contact from a sender's email address.

Since CardDAV is already integrated for read operations, the plumbing for write operations should be straightforward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions