22 2.07 Manage Task Integrations
github-actions[bot] edited this page 2026-11-10 17:59:15 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Manage Task Integrations

This how-to describes how to set up and use issue integrations (Jira, GitHub, GitLab, and others) and calendars to import and link tasks from external systems. For an overview of how integrations work, see 4.24-Integrations. For a comparison of which provider supports worklogs, status transitions, subtasks, and other features, see 3.07-Issue-Integration-Comparison.

Open the Issue and Calendar Panel

The issue provider panel (Integrations & Calendars) is a side panel that lists your configured providers and lets you search and add issues or calendar events as tasks.

From the header: Click the panel button that shows or hides the issue provider panel. Its tooltip is Show/hide issue provider panel. On desktop it appears in the top bar; on mobile it is in the side menu.

With the keyboard: If configured, use the shortcut for “Show/hide issue provider panel” (see 3.02-Settings-and-Preferences → Keyboard and 3.03-Keyboard-Shortcuts).

Add a New Integration (issue Provider or calendar)

  1. Open the issue provider panel (see above).
  2. Click the last tab — the one with the plus (add) icon. The view shows two sections: Connect Calendar and Setup Issue Provider.
  3. For a calendar: Under Connect Calendar, click Google Calendar (iCal), Outlook 365, Other (iCal), or CalDAV Events. A configuration dialog opens (e.g. URL for iCal, or OAuth for Google/Outlook). Fill in the details and save.
  4. For an issue provider: Under Setup Issue Provider, click the provider you want: Jira, Trello, GitHub, Redmine, GitLab, CalDAV Todo, Open Project, Gitea, Linear, ClickUp, Nextcloud Deck, or Plainspace. A configuration dialog opens. Enter the required fields (host URL, token or password, project/repo ID, etc. — the exact fields depend on the provider). Save to create the integration. For Plainspace (collaboration), the easiest path is the project menu — see Collaborate on a Project with Plainspace below.

If a Google Calendar time-block write fails because this device is not connected, the error notification offers Connect. It opens that calendar integration's settings, where you can connect the Google account on this device. Other write failures keep their usual error notification.

Calendar Integrations: iCal Vs CalDAV (e.g. Nextcloud)

iCal and CalDAV are two different integrations and need different link types:

  • iCal (Calendar): Use a subscription or export URL. No login. The app shows events (VEVENT) in the Schedule/Planner. In Nextcloud, use “Copy subscription link” and paste it into “URL of the iCal source” in the app. Do not use “Copy private link” for iCal—that is for CalDAV.
  • CalDAV: Use the CalDAV URL for your user and calendar, and enter username and password. The app shows tasks/todos (VTODO). For already-imported VTODOs, completion status, title, and notes can each be configured as off, pull only, push only, or both. New top-level tasks added in the provider's default project can optionally be uploaded as new VTODOs (Create a CalDAV task for each new task in the default project, off by default; subtasks and repeating tasks stay local, and the category filter, if set, is added to the VTODO). Deleting a linked task can optionally delete its VTODO on the server too (Delete the CalDAV task when the linked task is deleted, off by default). Undo, or restoring the task from Recently deleted, within the undo period keeps the VTODO; a later restore does not bring it back. In Nextcloud, use “Copy private link” (or the CalDAV calendar URL, e.g. …/remote.php/dav/calendars/<USER>/<CALENDAR>/). Do not use the subscription link for CalDAV.

If the integration “doesn’t work,” check that you used the right link and the right provider (iCal vs CalDAV). For more detail see 4.24-Integrations and 3.07-Issue-Integration-Comparison. For step-by-step CalDAV setup and troubleshooting, see 2.24-Set-Up-CalDAV.

For CalDAV Events calendar lists, enter the server URL, username, and password first, then click Load Options before choosing calendars. The calendar dropdowns stay disabled until options are loaded. Both the server root (for example, https://host/remote.php/dav for Nextcloud) and a specific calendar-home URL are supported. If no calendars are found, check the credentials and confirm that the account has at least one event calendar available.

Add tracked time to calendar (CalDAV Events, off by default): when you stop tracking time on a task or switch to another task, the app adds an event with the actual start and end time to the Tracked time calendar (or, if none is chosen, the default calendar for new events). Sessions under a minute are skipped, and only the device that tracked the time adds the event. If several CalDAV Events integrations have this on, only the first one adds events. A session still running when the app is quit, closed or stops unexpectedly is added at the next start, ending where its tracked time ends. On Android, if the system closes the app while it tracks time in the background, that event ends when the app went to the background; the time itself is still added to the task. If adding an event fails (for example while offline), the app shows one error and tries again when the next session ends or the app starts. The CalDAV Events integration does not show these events in the app's schedule.

After saving, a new tab appears in the panel for that provider. You can have multiple instances of the same type (e.g. two Jira configurations) and reorder tabs by dragging.

Azure DevOps and Self-Hosted TFS URLs

For Azure DevOps, enter the full organization or collection URL in Host. For Azure DevOps Services this looks like https://dev.azure.com/<organization>. For self-hosted Azure DevOps Server/TFS this can include the collection path, for example https://server:8080/tfs/DefaultCollection. The separate Project field is still required.

Gitea Behind a Reverse Proxy with Basic Auth

The Gitea integration sends your access token in the Authorization header, so it cannot also send reverse-proxy Basic auth credentials. If your Gitea instance sits behind a proxy that requires Basic auth, exempt the API path (/api/) from it. The API stays protected because every request needs your Gitea token. For example, in nginx:

location /api/ {
    auth_basic off;
    proxy_pass http://gitea:3000;
}

Add an Issue or Calendar Item as a Task

  1. Open the issue provider panel and select the tab for the provider (e.g. Jira or GitHub).
  2. For issue providers: In the Search field, type a query (syntax depends on the provider; a hint or link to search syntax may appear). Matching issues are listed. Click the add (plus) button next to an issue to add it as a task in the current project. The task is linked to that issue.
  3. For calendars (e.g. iCal): The tab may show an agenda or list of events. Use the controls in that tab to add an event as a task or open it, depending on the calendar integration.

Tasks added from the panel are created in the current project (or the default project set for that provider; see below).

Edit or Reconfigure an Integration

From the provider tab: In the header of the provider tab there is a settings (gear) icon. Click it to open the same configuration dialog and change host, token, project, or other options. Save to apply.

From the tab label: Long-press (or long-click) on the provider’s tab (the tab with the provider icon and initials). The configuration dialog opens. This is useful on mobile or when the tab is selected.

Set a Default Project for an Integration

When a provider has a default project set, new issues added from that provider’s tab are created in that project. In the header of the provider tab you may see an arrow and a project name; that is the current default. To change it, open the provider’s settings (gear icon or long-press on the tab) and set the default project in the dialog, if the provider supports it.

Add Existing Issues from the Add Task bar (search mode)

You can also add issues (and existing tasks) without opening the issue panel:

  1. Open the add task bar (e.g. Shift+A or the “Add new task” button).
  2. Click the search icon or press Ctrl+2 (if configured) to switch to issue search mode. The placeholder becomes “Add existing task or issues…”.
  3. Type to search across configured providers and your existing tasks. Select an issue from the list to add it as a linked task in the current context.

See 2.03-Add-Tasks for more on the add task bar and search mode.

Collaborate on a Project with Plainspace

Plainspace is Super Productivity's optional collaboration layer: it turns a local project into a shared Space so you can work on it with others. Tasks assigned to you import automatically, and done state, title and scheduled time stay in sync both ways (changes made in Plainspace pull in on the next poll). This is a network feature — task data in a shared project leaves your device; your other projects and core offline use are unaffected.

Share an existing project:

  1. Open the project's context menu (the ⋮ menu next to the project in the sidebar, or the project header menu).
  2. Click Collaborate on Plainspace.
  3. If you haven't connected yet, a guided dialog asks for your email and then the 6-digit code Plainspace emails you; a new account also asks for your name and gets a first Space named after the project, linked directly (skipping the next step). Use the browser instead lets you paste an API token (pat_…) created in Plainspace instead.
  4. Choose to create a new Space for this project or link an existing one, then confirm. A bound Plainspace provider is created and tasks assigned to you start importing.

Share at creation time: When creating a project, enable Collaborate on this project on Plainspace in the create-project dialog to do the same in one step.

Once a project is shared, the Collaborate on Plainspace menu item is hidden for it and Copy invite link takes its place: it copies the Space's address to send to the people you want to work with. Unclaimed tasks in the Space appear in a claim pool in the work view, where you can claim them into your own list.

Deleting a shared task deletes it in Plainspace too, for everyone in the Space. When you delete it in the app, Super Productivity always asks first, even if Confirm before deleting tasks is turned off. The exception is a task that is no longer in your Plainspace list (unassigned or removed there): deleting it removes only the local copy, and the app asks first only if Confirm before deleting tasks is on. Plugins and the local REST API delete without asking. After deleting a single task you can still undo for a few seconds. Deleting several selected tasks at once has no undo.

Project-level Integration Settings

Some integrations can be configured per project (e.g. which Jira project to use). Open Project settings for the project (via the project menu or sidebar) and look for the Issue Integration or provider-specific section. There you can attach a project to a given issue provider or override integration settings for that project.

Troubleshooting

  • No issues in search / “Check your config!”: Open the provider’s settings (gear in the tab) and check host URL, token, and project/repo ID. Test the connection if the dialog offers it. For Jira in the web app, a browser extension may be required; the tab will show a notice if so.
  • Provider tab is disabled: The tab appears grayed out when the provider is disabled. Long-press the tab (or use the settings gear from another route) to open the dialog and enable it again.
  • Issues not updating: Some providers poll for updates on an interval. Check the provider’s configuration for options like “Check for updates every X” or polling interval. Refreshing the list in the tab may also trigger an update.
  • “Linked issue … was not found”: A refresh could not find the linked issue. It may have been deleted or moved, your token may have lost access, or the host URL may be wrong. The task is kept and the warning stays until you close it: use Delete in it if the issue is really gone, otherwise check the provider’s settings. When several linked issues are missing at once, one warning gives their number and offers no Delete, since a wrong setting is the likelier cause. Each task is warned about once until the app restarts.