Skip to content

Integration: Microsoft To Do #54

Description

@desimpson

Parent tracker: #64
Phase: 1
Complexity: L1

User Value

Users on Microsoft 365 can process To Do tasks from a single Syncer inbox in Obsidian without manually copying items between systems.

In Scope

  • Connect/disconnect Microsoft To Do account(s) from Syncer.
  • Let users choose which To Do lists are included in sync.
  • Surface synced To Do items in the configured Syncer target location with source attribution and working links.
  • Define clear completion and removal behavior consistent with the shared integration contract.

Out of Scope

  • Implementation design and technical architecture details.
  • Non-To Do Microsoft integrations and unrelated refactors.

Sync Model and Directionality

  • Sync model: periodic pull
  • Directionality: bidirectional for completion where supported; document any exceptions

Identity Strategy

Canonical identity target: {source, externalItemId} using stable To Do task IDs. Document fallback only if provider constraints require it.

Acceptance Criteria

  • User can connect and disconnect the account and see current connection state.
  • User can choose which provider content is included in sync.
  • Included items appear in the configured Syncer destination with source attribution and valid links.
  • Completion behavior is explicitly defined and behaves consistently with Syncer expectations for this integration.
  • Deselection/removal behavior is explicitly defined and user-safe (no surprise destructive behavior).
  • Disabling or disconnecting the integration does not corrupt existing Syncer state or create duplicates.
  • Error handling is actionable and categorized for authentication/authorization failure, provider sync/read failure, and provider limitation/constraint.
  • Release note and documentation updates required for this integration are identified.

AC Testability Checks

  • Every AC is verifiable via UI observation or an observable product state change.
  • No AC requires logs, console output, or developer tooling to validate.
  • AC statements avoid implementation language.

Open Questions

Blocking:

  • What is the user-visible completion behavior when a task is completed in To Do outside Obsidian?

Non-blocking:

  • Should initial rollout support list selection only before advanced filters?

Dependencies / Follow-ups

  • Multi-account support as a cross-cutting capability.
  • Per-source target heading support for better multi-integration workflows.
  • Any overlap with other integrations must be explicitly justified in the parent tracker.

Implementation-Readiness Gate

Mark this issue ready only when:

  • Contract alignment is explicit (identity, lifecycle, directionality, sync model).
  • Scope boundaries are clear.
  • Blocking question(s) are resolved.
  • Phase and complexity tier are assigned.

Metadata

Metadata

Assignees

Labels

complexity-l1Low integration complexityenhancementNew feature or requestintegrationExternal source integration workphase-1Rollout phase 1 (highest ROI)

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions