Skip to main content

Sync with Custom CalDAV (Fruux, Yahoo, Nextcloud, and more)

2Do syncs with any server that speaks CalDAV correctly. You can use a hosted service, your own server, or your company's CalDAV server.

Supported Servers

  • Fruux, its own entry in the Account Type menu
  • Yahoo Calendar, also its own entry
  • ownCloud and Nextcloud
  • Synology Calendar
  • Kerio Connect
  • Oracle Calendar
  • SabreDAV-based servers
  • Apple Calendar Server (iCal Server)
  • Other CalDAV providers

Two providers have their own pages: iCloud CalDAV on Sync with iCloud CalDAV, and Fastmail on Sync with Fastmail.

tip

For self-hosters, Nextcloud and 2Do are a popular combination: your tasks live entirely on your own server, and Nextcloud Tasks shows your projects with their sub-tasks nested.

Lists and Task Calendars

Every list you sync over CalDAV lives on the server as a task calendar, the CalDAV name for a collection that holds tasks rather than events. It is the same container as your list in 2Do under a different name: 2Do shows it as a List, while other CalDAV apps may label the identical collection a task calendar, a task list, or simply a calendar.

Changes travel in both directions:

  • Create a list in 2Do and the matching task calendar appears on the server; rename the list and the server follows.
  • A task calendar created in another CalDAV app arrives in 2Do as an ordinary list.
  • Only apps that speak CalDAV can see these collections.

What CalDAV Sync Carries

  • All core task fields: title, notes, dates, alerts, recurrence, priority, action, location, and duration.
  • Multiple alerts per task can sync between your 2Do devices through CalDAV.
  • One picture and one audio note per task, controlled by the Sync pictures and Sync audio notes switches under the account. Sync list ordering and Sync app preferences sit alongside them.
  • Tasks added in 2Do can appear in other CalDAV apps signed in to the same account.

What Stays on This Device

Some 2Do features are not carried by CalDAV sync and stay on this device:

  • Smart Lists
  • Tag groups
  • List groups
  • Unused tags

The paused state of a tag is also per device, so pausing a tag on one device leaves it active on the others.

note

Other apps and devices signed in to this account see your projects and checklists as a flat list of tasks, unless the app understands task links; see Projects and Sub-Tasks.

A few things behave differently on the server side as well:

  • List colors may not sync on some CalDAV servers.
  • Repeating tasks sync as plain tasks to the server, but still repeat correctly between your own 2Do devices.
  • Some unusual repeating alert setups may not look exactly the same on the server.

Limitations

In short, the following do not sync as full 2Do features over CalDAV: List Groups, Tag Groups, Smart Lists, unused tags, more than one picture and one audio note per task, and the paused state of a tag.

Projects and Sub-Tasks (Nextcloud and other CalDAV servers)

2Do syncs your project and sub-task structure two ways over CalDAV automatically; there is no setting to turn on. The parent and child relationship travels using the standard iCalendar RELATED-TO link, so a parent task and its sub-tasks stay connected on the server.

  • Create a project or checklist with sub-tasks in 2Do, and the structure syncs up to the server.
  • A parent with children created directly in Nextcloud, or another CalDAV app, arrives in 2Do as a project with sub-tasks.
  • Between your own 2Do devices, a project stays a project and a checklist stays a checklist.

How that structure appears elsewhere depends on the app. Clients that understand RELATED-TO, such as Nextcloud Tasks, nest your sub-tasks under their parent. Clients that ignore it show everything as a flat list of tasks.

Read-Only Lists

Some CalDAV servers share a calendar with you without granting permission to change it. 2Do reads that from the server and marks the list read-only, so you do not make edits the server would reject. The sort bar above the task list carries a Read Only indicator while such a list is selected, and its tasks cannot be edited, completed, moved, or deleted. Existing attachments stay viewable.

You can still change how a read-only list is presented on this device: rename it locally, change its color, hide it, change its sort, or move it into a list group. Those choices stay on the device and survive syncs.

Setup

  1. Open Settings > Sync and stay on the Setup tab.
  2. Open Account Type and choose your server:
    • Fruux or Yahoo, built-in entries that discover the server for you. You only enter a username and password.
    • Custom CalDAV, for Nextcloud, ownCloud, Synology, Kerio, and any other self-hosted or third-party CalDAV server. There is no named Nextcloud or Synology entry; they all connect through Custom CalDAV.
  3. Enter your credentials. Custom CalDAV adds Server Address, Path, Port, and Use SSL alongside Username and Password.
  4. Tap Set Up Sync. 2Do discovers your task collections on the server.
  5. Repeat on each device, using the same account type and credentials.
tip

If your server offers app-specific passwords, generate one for 2Do so you can revoke it later without changing your main account password.

Fruux Setup

  1. Open Settings > Sync > Account Type and choose Fruux.
  2. Generate an app-specific password at www.fruux.com.
  3. Enter your username and that password, then tap Set Up Sync.

2Do discovers the server and account paths, so there is no URL to enter.

Custom CalDAV Server

For Nextcloud, ownCloud, Synology, Kerio, and similar servers:

  1. Open Settings > Sync > Account Type and choose Custom CalDAV.
  2. Fill in the connection fields as your provider documents them:
    • Server Address, your server's host (for Nextcloud, often something like your-server.example).
    • Path, the CalDAV path your provider specifies (Nextcloud commonly uses /remote.php/dav).
    • Port and Use SSL, matching your server's configuration. SSL is on to start.
  3. Enter your Username and Password.
  4. Tap Set Up Sync. 2Do discovers your task collections.
note

The first time you connect to a private or self-signed server, 2Do shows a Can't Verify This Server prompt with the server's fingerprint, explaining that this is normal for private or self-hosted servers but can also mean the connection is not secure. If you set up the server and recognize it, tap Continue; 2Do remembers the choice for that account.

Your first sync

Close Settings and return to the task list, then pull down to run the first sync. When both sides already hold data, 2Do asks how to combine them; read Merge vs Replace before choosing. You can override the next sync any time from Settings > Sync > Next sync action; it applies once, then returns to Sync Normally.

Daily Sync

CalDAV syncs when you open 2Do, when iOS grants it background time, and whenever you pull down on the task list.

Troubleshooting

Synology server compatibility

Synology Calendar works with 2Do over CalDAV. Use the address and path from your Synology Calendar's CalDAV documentation.

301 Moved Permanently

Some servers redirect the discovery URL. Update to the latest 2Do, which follows redirects automatically. If it persists, enter the address the server redirects to.

Alerts on shared CalDAV lists do not sync

Alerts attached to tasks on shared CalDAV lists do not always copy across, depending on the server's sharing rules. Add those alerts again locally if you need them.

Multiple alerts on repeating tasks disappear

Some CalDAV servers accept only one alert on a repeating task. Use iCloud or Dropbox if you rely on several alerts per repeating task.

Setting Up Another Device

  • Adding another device: install 2Do, point it at the exact same server and credentials, and let the first sync pull your data down. See Setting up a new device.
  • One device showing different tasks: sync the most up-to-date device, then choose Replace Local Data on the ones that are behind. See One of my devices isn't syncing correctly.
  • Choosing a direction: picking the wrong side can overwrite good data. Read Merge vs Replace before confirming.