██████╗ ██████╗ █████╗ ██╗ ██╔══██╗██╔════╝██╔══██╗██║ ██║ ██║██║ ███████║██║ ██║ ██║██║ ██╔══██║██║ ██████╔╝╚██████╗██║ ██║███████╗ ╚═════╝ ╚═════╝╚═╝ ╚═╝╚══════╝
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
local.ics filesgooglemicrosoftcaldaviclouddcal account list # list connected accounts and their status
dcal account remove <account-id> # remove an account and its synced data
dcal account reauth <account-id> # re-authorize an account that needs it
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
Works with any CalDAV-compatible server. You'll be prompted for the URL, username, and password.
dcal account add caldav
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 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
dcal account setup microsoft
dcal account add microsoft
The daemon syncs accounts automatically in the background. To force a sync:
dcal sync # sync all accounts
dcal sync <account-id> # sync one account