Skip to content

#17 feat(contacts): add create/update/delete via CardDAV#22

Open
radiosilence wants to merge 1 commit intomainfrom
17-contact-crud
Open

#17 feat(contacts): add create/update/delete via CardDAV#22
radiosilence wants to merge 1 commit intomainfrom
17-contact-crud

Conversation

@radiosilence
Copy link
Copy Markdown
Owner

Summary

  • CardDAV write operations: create_contact, update_contact, delete_contact on CardDavClient using HTTP PUT/DELETE with vCard 3.0 payloads
  • CLI commands: contacts create --name "..." --email "..." [--phone/--organization/--title/--notes], contacts update ID [--fields], contacts delete ID -y
  • GraphQL mutations: createContact, updateContact, deleteContact for MCP server
  • vCard builder: generates proper vCard 3.0 with UID, FN, N, EMAIL, TEL, ORG, TITLE, NOTE
  • Merge updates: update_contact fetches existing vCard, merges only provided fields
  • 4 new unit tests (vCard building, roundtrip, UID generation)

Closes #17

Test plan

  • cargo test -- 59/59 pass
  • cargo clippy -- -D warnings -- clean
  • cargo fmt --check -- clean
  • Manual: contacts create --name "Test" --email "test@example.com"
  • Manual: contacts update <id> --organization "Acme"
  • Manual: contacts delete <id> -y
  • MCP: createContact / updateContact / deleteContact mutations

🤖 Generated with Claude Code

CardDAV write operations for contacts: create new contacts, update
existing ones (field-level merge), and delete by ID. Exposed as CLI
subcommands and GraphQL mutations for MCP server.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add contact create/update/delete via CardDAV

1 participant