Manual · Sync and servers
Sync
How tagwerk keeps your notes on several devices - with the built-in WebDAV sync or a folder of your own - and what to do when a sync stops or two devices disagree.
Two ways to sync
tagwerk has no server of its own. Your notes reach your other devices in one of two ways:
| Built-in sync | A folder of your own | |
|---|---|---|
| How | The app talks WebDAV to your server: Nextcloud, ownCloud, Synology, any WebDAV address. | The notes lie in a folder that another program carries: Syncthing, the Nextcloud app, a desktop sync client. |
| Where to set it up | Settings → Sync → Set up sync... | Settings → Storage → Choose folder..., then set up the other program for that folder. |
| Conflicts | Settled by tagwerk's rules, see Conflicts. | Settled by the other program's rules; tagwerk recognises its conflict copies. |
| Cost | Part of tagwerk Pro. | Free, and always will be. |
On Android, Choose folder... opens the system folder picker. On Windows and Linux it is an ordinary folder dialog. The guide to your own sync walks through both ways with the reasoning behind them.
Use one of the two ways per profile. A folder that the Nextcloud client already carries does not also need the built-in sync to the same server folder.
What the built-in sync moves
Four kinds of file, each by a rule of its own:
| File | Where it lies | Rule |
|---|---|---|
| Day notes | 2026/10/2026-10-28.md | Both ways. Uploads are conditional, so a device cannot overwrite a version it never saw. |
| Day templates | templates/ | Both ways, like the notes. Removing a template removes it on the other devices too. |
| Tag colours | settings/tagwerk.colors | Both ways, like the notes. Clearing every colour removes the file, and that removal travels too. |
| Licence | settings/tagwerk.license | Uploaded only when the server has none, downloaded only when this device has none. Never replaced, never deleted. |
What the built-in sync never does:
- It does not pass on a deleted day. Removing a note on one device leaves it on the server and on every other device, and the next sync brings it back to this one. A tidy-up on one device cannot take a year of notes with it. To clear a day everywhere, empty it in the app: an empty day is passed on like any other change.
- It does not take the licence away. Removing the licence on one device leaves the copy on the server and on every other device. Where that device keeps Pro another way - a Google Play purchase, or Linux - its next sync brings the file back; elsewhere removing the licence also ends the built-in sync on that device. To remove it everywhere, delete it in the folder on the server.
- It does not touch other files. Only the files above are read and written. Anything else in the folder on the server, or in your notes folder, stays where it is.
- It does not upload conflict copies. A conflict copy stays on the device that made it, until you decide (see Conflicts).
- It does not upload the untouched welcome note. A second device would otherwise show the tutorial a first device wrote. Once you have edited it, it travels like any note.
When the sync replaces a note on this device with the server's version, the state before is kept in that day's history first.
Before you start
You need:
- the address of your WebDAV server, for example
https://cloud.example.org. For Nextcloud and ownCloud the plain address of the server is enough; - a username and a password. With two-factor authentication on the account, an app password instead of the account password - or, for Nextcloud, the sign-in through the browser;
- Pro on Android and Windows (see above).
Which address a particular server wants, and what it has to support, is in Sync servers.
Setting it up
Open Settings → Sync and press Set up sync.... The wizard has three steps; the counter in its title shows where you are. Nothing is saved before the last step: Cancel at any point leaves an existing setup as it was.
Step 1: server and sign-in
- Enter the Server address. An address without
https://gets it added. - Enter Username and Password. Under the password the wizard reminds you: With two-factor authentication, use an app password.
- Press Continue. The wizard checks the connection up to the WebDAV stage and shows each stage as it runs.
Step 2: the notes folder
The wizard lists the folders on the server, starting at your account's top folder.
- Tap a folder to open it, Up to go back one level.
- To make a new folder, type its name into New folder and press Create folder beside it.
- Use this folder takes the folder you are in. Your notes go below it, filed by year and month.
A folder somebody shared with you appears only once your account has accepted the share, and then inside the folder that account files received shares into - not at the top.
Step 3: the full check
The wizard runs all six stages again, now with a write test in the chosen folder. When every stage is green, press Finish. The password goes into the device's credential store, never into a file, and the first sync starts at once.
If the first sync finds days that exist both on this device and on the server with different text, it overwrites neither: each becomes a conflict for you to settle (see Conflicts).
Signing in to Nextcloud
For Nextcloud the wizard offers a second way in step 1: Sign in through the browser (Nextcloud).
- Enter the Server address.
- Press Sign in through the browser (Nextcloud). Your browser opens your server's sign-in page, where your password manager and your second factor work as usual.
- Confirm there. The wizard waits with Confirm the sign-in in your browser. If you closed the page by mistake, Open the sign-in page again brings it back.
Your server then hands tagwerk an app password of its own. The app never sees your account password. The connection appears in your Nextcloud's security settings, where you can revoke it.
If the server does not offer this, the wizard says This server does not offer browser sign-in - use your username and password above.
Without the browser sign-in - ownCloud, or an account with two-factor authentication - create an app password in the server's web interface (Nextcloud and ownCloud: Settings → Security → Devices & sessions) and enter it as the password.
When it runs
| Occasion | What happens |
|---|---|
| You change a note | A sync starts about ten seconds after the last change, so a burst of typing is one upload. |
| The app starts | One sync. |
| You come back to the app and a note changed in another app meanwhile | The same as a change of your own: a sync about ten seconds later. |
| You switch profiles | A sync for the new profile starts at once; one still running for the old profile is stopped. |
| You press the cloud in the toolbar, or Sync now in the settings | A sync starts at once. |
| Check for changes | While the app is open, it asks the server on a clock: Off, 5, 15, 30 or 60 minutes. 15 minutes by default. |
| Sync in the background (Android) | With the app closed: Off, 15 or 30 minutes, 1, 3 or 6 hours. 1 hour by default. |
| The app closes or goes to the background | Changes still waiting are sent, for up to eight seconds. |
| You change a task on an Android widget with the app closed | A sync about a minute later, when Android allows it - also with Sync in the background off. |
Check for changes is set per profile in Settings → Sync, and appears once sync is set up. A check that finds nothing leaves the cloud in the toolbar alone.
Sync in the background exists only on Android, under Settings → Home screen & system. It is set once per device and syncs the profile that is open when it runs. Android picks the exact moment and may postpone it to save battery. Whatever comes down goes onto the widgets straight away. On Windows and Linux nothing syncs while the app is closed.
A failure that may pass on its own - no network, a server that does not answer, a timeout, a server error - is retried after 20 seconds, 90 seconds and 5 minutes before it is reported. A rejected password or a missing folder is reported at once, because trying again does not change it.
The connection test
Test connection in Settings → Sync runs the same check as the wizard: six stages in order. It stops at the first one that fails and names the cause instead of "sync failed".
| Stage | What it checks |
|---|---|
| Network available | The device has a network connection. |
| Server name resolves | The address is valid and its name can be looked up. |
| Connection and encryption | The server answers on its port, and its certificate is valid for that name. |
| Sign-in accepted | The server takes the username and password, and tagwerk finds its WebDAV address. |
| WebDAV and notes folder | The address speaks WebDAV, and the notes folder exists or can be created. |
| Write test | A test file can be written into the notes folder and removed again. |
Every failure comes with a sentence on what to do. The causes for each stage, and how a server admin fixes them, are in Sync servers.
Conflicts
Every upload carries the version the device started from, so the server refuses a write that would land on top of something newer. When both sides really did change the same day, nothing is thrown away: this device's version keeps the file, and the other version is written beside it.
2026/10/2026-10-28.md
2026/10/2026-10-28.sync-conflict-tagwerk.md
A second conflict on the same day gets -2, then -3. The same happens without any sync: if another editor or a sync client writes the day tagwerk has open, that version is kept beside it.
A day that lies in the folder twice - 2026-10-28.md loose in the notes folder and 2026/10/2026-10-28.md - is read from the one under its year. If the loose one says something else, it is offered the same way, as the other version of that day.
A day is not a conflict when this device's version of it is empty, or when the server holds an earlier state of this device's own text. Then the newer side is simply taken.
Where conflicts show
- the cloud in the toolbar: Conflicts waiting: and the number;
- above the note of an affected day: This day exists twice. with Compare the versions;
- Settings → Storage: One day exists twice - changed here and somewhere else. with Review.
Settling a conflict
The sheet Days that exist twice lists every copy. Choose one, and both versions stand as one list: lines both versions have are already in, and every line only one of them has carries a tick box.
| Choice | Result |
|---|---|
| Tick lines, then Apply selection | The day holds the shared lines and the ticked ones. Everything, All of the current version and All of the copy set the ticks in one go. |
| Keep both | The copy is appended below the current version, after the line --- The other version ---. Not offered for templates. |
| Keep the current version | The file stays as it is; the copy is deleted. |
| Take the copy | The copy replaces the current version. |
The current version is what the day's file holds now, and the copy shows the date it was made. When the copy is made, the current version is this device's. If a later sync brings a newer version of the day down, the current version is the server's, and the sheet says so; what this device had before is in the day's history. A copy whose every line the downloaded day already holds is removed by the sync, because there is nothing left to decide.
When this device has nothing for that day, Keep the current version is called Discard the copy, because that is what it does. Before a choice writes over the current version, the day's history keeps it. A conflict copy of a template is written back into the template, never into a day.
Errors during a sync
Most errors stop the connection test at a stage (see above). A few are only found by a sync that has been running for a while:
| Message | What it means | What to do |
|---|---|---|
| Reading works, but writing is not allowed. | The folder is read-only for this account, typical for a share without edit permission. Downloads still arrive. | Ask for write access or choose another folder. Your notes stay on the device and go up once writing works. |
| The storage on the server is full. | The server refused the upload for lack of space. | Free up space or ask the admin to raise the quota. |
| The sign-in works, but the server keeps it away from the files. | The account sees no folder at all and may create none, while the web interface shows folders. | Set the password anew and sign in again; check whether the app password may access the files. |
| A note on this device could not be read. | Another program holds the file open. | Nothing; the note follows on the next run. |
| The notes folder on this device cannot be reached. | The drive is not connected, the folder is gone, or the app may no longer open it. Nothing was synced. | Connect the drive or choose the folder again. |
| The app password could not be saved. | The device's credential store refused the password. | Unlock the keychain and finish the wizard again. In the Linux snap, run sudo snap connect tagwerk:password-manager-service once. |
| The server sent the request somewhere else, and that address refused it. | The address forwards to another one, usually http:// to https://, and the sign-in is dropped on the way. | Enter the address the message shows. |
Server speed
Settings → Help → Server speed shows how long your server takes, measured on every request the sync makes. It helps when a sync feels slow and you want to know why.
- Server - Address, Account, Requests measured and Since. With more than one server measured, buttons switch between them.
- By operation - one row each for Connect, List folder, Download, Upload, Create folder and Delete, with Count, First, Then, 95th percentile, Slowest and Failed. First is the first request of its kind in a sync; a large gap to Then points at a server that is slow to start rather than slow in general.
- A chart of the last requests on a logarithmic scale, one bar per request, failed ones in a colour of their own.
- For your hosting provider - the same numbers as plain English text. Copy puts them on the clipboard for a support request; Clear measurements starts over.
The measurements stay on this device. Nothing is sent anywhere.
Profiles
Each profile has a sync of its own: server, account, folder, password and Check for changes. The work profile's Nextcloud and the private profile's server never see each other's notes or credentials. Settings → Sync always belongs to the profile that is open; with more than one profile, the heading above it names that profile.
Only Sync in the background on Android is set once per device; it syncs whichever profile is open when it runs.
Without the built-in sync
Put your notes in a folder of your own (Settings → Storage → Choose folder...) and let another program carry that folder. For the notes this works as well as the built-in sync. Two differences:
- Conflicts follow the other program's rules. tagwerk recognises the conflict copies of Syncthing, Nextcloud and Dropbox and lists them under Days that exist twice, like its own.
- The licence travels with the folder.
settings/tagwerk.licenselies in the notes folder, so every device on that folder has Pro from one purchase.
A device that does not have Pro yet cannot use the built-in sync to fetch its licence. It gets the licence through a folder synced by another program, through Import licence in the tagwerk Pro settings, or from the purchase mail.
What a server needs for either way, and how to check it, is in Sync servers.