Skip to main content
Version: 1.5
██████╗  ██████╗ █████╗ ██╗     
██╔══██╗██╔════╝██╔══██╗██║     
██║  ██║██║     ███████║██║     
██║  ██║██║     ██╔══██║██║     
██████╔╝╚██████╗██║  ██║███████╗
╚═════╝  ╚═════╝╚═╝  ╚═╝╚══════╝

IPC

The dcal daemon exposes a scriptable IPC surface, handy for compositor keybinds and automation. Invoke a method and pass params as key=value pairs:

dcal ipc ui.toggle
dcal ipc events.list from=2026-06-01 to=2026-06-30
dcal ipc reminders.upcoming limit=5

List every available method and its params:

dcal ipc list

Results are printed as JSON, so they pipe cleanly into jq and friends.

Common Methods

UI

MethodDescriptionui.showShow the calendar windowui.hideHide the calendar windowui.toggleToggle the calendar windowui.quitQuit the running daemon

Events

MethodParamsevents.listquery, from (RFC3339), to (RFC3339), limit, offset (all optional)events.createcalendarId*, summary*, start*, end*, description, location, allDay, status, remindersevents.updateid*, plus any of the create fieldsevents.deleteid*

Calendars

MethodParamscalendars.listcalendars.setHiddencalendarId*, hidden* (true|false)calendars.renamecalendarId*, name (empty clears)

Accounts

MethodParamsaccounts.listaccounts.refreshaccountId (empty syncs all)

Reminders

MethodParamsreminders.upcominglimit (default 20)reminders.testFire a test notification

System

MethodParamssystem.autostart.getReport autostart statussystem.autostart.setenabled* (true|false)
tip

* marks a required param. Run dcal ipc list for the complete, always-up-to-date set of methods on your installed version.

Keybind Example

Bind a key in your compositor to toggle the calendar. For niri:

binds {
Mod+Shift+C { spawn "dcal" "ipc" "ui.toggle"; }
}