# Integrations — Dondori Docs

> Connect Linear, Jira, YouTrack, Obsidian, Google Calendar, and Toggl Track: import assigned issues, write statuses back, map custom workflows.

All configuration lives in **Settings (⌘,) → Integrations**. Credentials go to the macOS Keychain — never to disk or the database.

Every tracker integration follows the same loop: **import** pulls issues assigned to you into the shown day (or the Task Pool), **write-back** pushes status changes — including a toggle made in the panel — back to the tracker. Per-workspace **status mapping** lets your custom status registry drive each tracker's workflow states, and ⌘O opens any imported task in its source.

## Linear

Two ways to connect:

- **API key** — paste a personal key (`lin_api_…`) from Linear's Settings → API.
- **OAuth** — create an OAuth app in Linear (Settings → API → OAuth applications) with the callback URL `dondori://oauth/linear`, then use **Sign in with Linear**.

Comments on a Linear issue show on the task's detail page; you can reply from there without opening the browser.

## Jira

Three fields: the **base URL** of your instance, your **account email**, and an **API token** — create one at https://id.atlassian.com/manage-profile/security/api-tokens

## YouTrack

The instance **base URL** plus a **permanent token** (Profile → Account Security → Tokens).

## Obsidian

Choose a vault folder. **Import** collects the vault's `- [ ]` tasks into the Backlog; **write-back** pushes checkbox state back into the `.md` files when you complete a task in the app.

## Google Calendar

Google requires a one-time setup in Google Cloud Console (https://console.cloud.google.com), because desktop apps bring their own OAuth client:

1. Create (or pick) a project and enable the **Google Calendar API** (APIs & Services → Library).
2. Configure the OAuth consent screen — External, with your own account as a test user, is enough for personal use.
3. Create credentials: **OAuth client ID**, application type **Desktop app**. No redirect URL needed — desktop clients use the loopback redirect.
4. Paste the client ID and secret into **Settings → Google Calendar** and click **Sign in with Google**. Both values and the minted tokens live in the Keychain.

After signing in: pick the calendars to show in the Calendar window (⌘⇧C) as read-only events, choose the calendar that time blocks push into, and optionally enable **Sync time blocks** — scheduled todos of the shown week become events, and moving or deleting those events in Google moves or unschedules the todo.

## Toggl Track

Paste your **API token** (Toggl Profile → API Token). Timer sessions then mirror into Toggl automatically — push-only, best-effort, with the local session log staying the source of truth. See https://dondori.io/docs/time-tracking.md

## Statuses & mapping

Statuses aren't hardcoded open/done. Define your own registry in **Settings → Statuses** — each status carries open or closed semantics, like Linear's backlog/started/completed categories. Then, per workspace, map your statuses onto the tracker's workflow states so a status change in the panel lands as the right transition in Linear, Jira, or YouTrack.

Want a tracker we don't ship? A plugin API for custom task sources is on the roadmap: https://dondori.io/docs/plugins.md
