tagwerk at university

Guide · 2026-08-29 · written against tagwerk 1.0 for Android

A degree runs on dates: a lecture is on Tuesday, a problem sheet is due on the 14th, and the vocabulary is every day until the exam. tagwerk writes one Markdown file per day, and the date is the file name — so most of what a semester needs is already in the format rather than in a feature. This page shows the parts that matter for studying, and says plainly where they are free and where they are Pro.

A week of lectures, as files

Nothing is set up first. You write, and the first characters of a line decide what it becomes. This is one Tuesday:

Notes/2026/11/2026-11-10.md

08:15-09:45 Analysis II #maths
10:15-11:45 Databases #db
- [ ] Problem sheet 6 #maths !
  - [x] Question 1
  - [ ] Question 2, ask about the proof
- [>] Send the seminar outline @kern >2026-11-14
- [ ] Spanish vocabulary R/P1D #spanish
--- Besides that ---
- [ ] Library: return the Habermas ~
#studytime:3.5

Two times at the start of a line are a lecture slot; a line starting with - [ ] is a task. #maths is a tag, @kern a person, ! important and ~ can wait. The indented lines under the problem sheet belong to it. Everything else is ordinary Markdown and passes through untouched.

The file stays a file. It opens in Obsidian, Markor or any editor on a laptop, and the markers tagwerk adds degrade there to plain text. The complete rules are in the format specification.

Deadlines: the date does the work

A submission has two dates — the day you hear about it and the day it is due. Write it on the first and forward it to the second:

- [>] Send the seminar outline @kern >2026-11-14

The copy lands on 14 November, and the trail stays on the day you wrote it, so the history of a piece of work stays readable. Forwarding moves a task, so put it on the day you want to be working on it, not on the day it is due — that is usually two days earlier and it is the whole trick. >2026-11-14 is a link to that day wherever it stands, in a task or in a sentence, and a bare date leads there too without moving anything.

Nothing falls off the end. A task that stayed open on a past day shows up as overdue, in the app and in the widget on the home screen, until it is done, dropped or moved on. The overdue stack and today's open tasks are free; looking forward across the coming days, filtering the list by #maths and moving everything overdue to today in one go are part of Pro.

The timetable is a template, the semester is a counted repeat

A timetable does not change for fourteen weeks, so it should not be typed fourteen times. The files in templates/ next to your notes say what a new day starts with — one per weekday, named in English:

templates/template-tuesday.md

08:15-09:45 Analysis II #maths
10:15-11:45 Databases #db
--- Besides that ---

Every Tuesday that you open for the first time starts like that. There is template.md for all other days and template-day1.md for a day of the month; a day takes the most specific one that exists. Templates are part of Pro.

What repeats but is not a lecture is written into the line itself, as an ISO 8601 interval. A count says when to stop, which is what makes it fit a semester rather than a life:

- [ ] Spanish vocabulary R/P1D #spanish        ← every day, indefinitely
- [ ] Statistics tutorial R13/P1W #stats       ← thirteen more weeks
- [ ] Hand in the lab report R/2026-10-20/P2W  ← every two weeks from 20 October

Ticking a repeating task off puts the next one on its next date; a counted rule is spent when the count runs out. The calendar draws the coming ones on days whose file does not exist yet, as a promise rather than as a line — the day view is free, the week, month and agenda views are Pro.

Grades are the same mechanism seen from the other end. A tag can carry a reading after a colon, and the statistics work the numbers out — minimum, maximum, average, median and the run over time:

Databases exam back #grade:2.3 #db

A reading belongs to the day it was written on: when a task is moved or repeats, the copy carries the tag but not the reading. Tags and readings stay in the notes and stay searchable without Pro — what Pro buys is the evaluation.

Your university's cloud as the sync target

Many universities run storage of their own on Nextcloud or ownCloud, which speak WebDAV — and WebDAV is what tagwerk syncs with. There is no account with us in between: the app talks to your university's server, and nothing about your notes reaches caliora.

In Settings → Sync, the plain server address is enough for Nextcloud and ownCloud — the remote.php/dav/files path is derived. For Nextcloud there is Sign in through the browser: the sign-in happens on your university's own page, and the app receives an app password of its own and never sees your account password. Where the server does not offer it, or where your account is behind two-factor or single sign-on, create an app password in the web interface and use that — an SSO password rarely works over WebDAV. If the connection fails, the app names the stage it failed at rather than shrugging: network, server name, connection and encryption, sign-in, WebDAV and notes folder, write test.

Uploads are conditional, so two devices writing the same day cannot silently overwrite each other; a conflict keeps both versions side by side and asks. In-app sync is part of Pro. Without it nothing is walled off: put your notes in a folder of your own through the system folder picker and let your university's own sync client, or Syncthing, carry that folder. A folder synced by another program is not a feature of this app and can never be gated.

Whether your university's storage exposes WebDAV to applications, and whether it hands out app passwords, is their decision and stands in their documentation — we cannot promise it for an instance we have never seen.

Keeping the degree and the rest apart

One day is one page, and that is the point: the seminar and the shopping stand in the same file, because that is how a day happens. Where you want a harder line — a thesis that gets its own folder on a different server, its own accent colour — profiles do that: separate spaces, each with a folder, sync configuration and colour of its own. Creating a second profile is Pro; switching between the ones that exist stays free whatever the licence says.

Inside one set of notes, tags are the softer version of the same thing. A tag can nest, so #thesis/reading is filed under #thesis and the statistics count it towards it.

What it costs

One purchase, no subscription: tagwerk Pro is €12 / US$12 once, bought in the app, and it covers every platform we ship. The free version is not a trial and does not expire. This is the split as it matters for a semester:

FreePro
The full syntax, every day, in your own files The task list across all days, with filters and the look ahead
Today's tasks and everything overdue Week, month and agenda in the calendar
The day view of the calendar Day templates — your timetable
Full-text search across every day Statistics for tags, people and readings
Revision history: snapshots, diffs, restore WebDAV sync inside the app
A ZIP export of everything, any time Colours for tags, widget configuration, reminders, more than one profile

The revision history is free on purpose: it is what stands between a mistake and a lost note, and a safety net behind a price is a safety net for the people who happened to pay. The licence is a small signed file that lives with your notes, so your own sync unlocks your other devices — see the licence page.

What tagwerk is not

It is a personal notebook, and it stays one. It does not read your timetable out of the campus system, does not import from Moodle, Ilias or Stud.IP, and there is nothing shared: no group, no seat in a study team, no handing a task to somebody else. If your course lives in one of those systems, tagwerk sits beside it and holds what you decide to write down.

Android is the reference platform; Android, Windows and Linux are the released apps, Linux free and from the Snap Store. iOS and macOS are planned, with no date yet. Until then the honest answer for a Mac is the files themselves: they are Markdown in your cloud, and any editor opens them.

Anything missing here, or wrong? Write to please enable JavaScript to see the address, or open an issue in the tracker.

All guides · ← Back to the start page