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

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-01T00:00:00Z to=2026-06-30T23:59:59Z
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

MethodDescription
ui.showShow the calendar window
ui.hideHide the calendar window
ui.toggleToggle the calendar window
ui.quitQuit the running daemon

Events

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

Calendars

MethodParams
calendars.list
calendars.setHiddencalendarId*, hidden* (true|false)
calendars.renamecalendarId*, name (empty clears)

Accounts

MethodParams
accounts.list
accounts.refreshaccountId (empty syncs all)

Reminders

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

System

MethodParams
system.autostart.getReport autostart status
system.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"; }
}