Dux Calendar
Accounts
Accounts
DankCalendar pulls every calendar into one unified agenda. You can manage accounts entirely from the GUI (Settings → Accounts) or from the CLI.
dcal connects directly to your providers. There is no DankLinux server in between. Credentials (OAuth tokens and CalDAV/iCloud passwords) are stored in your system keyring (GNOME Keyring / KWallet via the Secret Service API) rather than your config files; on systems without a keyring, dcal falls back to an encrypted on-disk store. Synced calendars and events are cached locally in a SQLite database under ~/.local/share/dankcal/, so everything works offline.
List supported providers anytime:
dcal account providers
| Provider | Auth |
|---|---|
local | A directory of .ics files |
google | OAuth (your own client app) |
microsoft | OAuth (your own client app) |
caldav | URL + username/password |
icloud | Apple ID + app-specific password |
ical | A read-only iCal/webcal feed URL |
evolution | Calendars already managed by Evolution Data Server |
Managing Accounts
dcal account list # list connected accounts and their status
dcal account remove <account-id> # remove an account and its synced data
dcal account remove <account-id> -y # skip the confirmation prompt
dcal account reauth <account-id> # re-authorize a Google/Microsoft login that expired
Local Calendars
Point dcal at a directory of .ics files. Each subdirectory or .ics file becomes a calendar, compatible with vdirsyncer/khal layouts.
dcal account add local ~/.calendars
CalDAV
Works with any CalDAV-compatible server. You'll be prompted for the URL, username, and password, or you can pass them as flags:
dcal account add caldav
dcal account add caldav --url https://dav.example.com --username me --name "Work"
For servers using a self-signed certificate, add --insecure to skip TLS certificate verification. Only do this for servers you control:
dcal account add caldav --url https://dav.homelab.lan --insecure
In the GUI, the same option appears as Skip certificate verification in the CalDAV add-account form.
iCloud
iCloud uses CalDAV under the hood but requires an app-specific password. Your regular Apple ID password will not work.
dcal account add icloud
Create an app-specific password at account.apple.com/account/manage.
Google
Google and Microsoft require you to create your own OAuth application (a one-time setup). Print step-by-step instructions:
dcal account setup google
Then complete the OAuth flow:
dcal account add google
Microsoft
dcal account setup microsoft
dcal account add microsoft
iCal / webcal Subscriptions
Subscribe to a read-only external feed, such as a university timetable or a published Google/Outlook calendar. Both https:// and webcal:// URLs are accepted, and the feed refreshes in the background.
dcal account add ical https://example.com/schedule.ics
dcal account add ical webcal://example.com/team.ics --name "Team"
If the feed is behind HTTP basic auth, pass --username (you'll be prompted for the password). You can also hand a webcal:// link straight to the app, which opens the subscribe dialog:
dcal open webcal://example.com/team.ics
Evolution
Reuse the calendars that Evolution Data Server already manages on this machine (from Evolution, GNOME Online Accounts, and similar). EDS owns the credentials and remote sync, so there's nothing else to configure.
dcal account add evolution
Syncing
The daemon syncs accounts automatically in the background. To force a sync:
dcal sync # sync all accounts
dcal sync <account-id> # sync one account