chainmail freebusy
Show James's busy time across every account's calendars, leaving out events he declined, transparent events and cancelled ones. It names no event. Each address asks the provider of the account --account names for that person's busy time. A person the provider cannot see shows as unknown, never as free.
--from defaults to now, and --to to --days after --from, 7 by default. A date alone in --from starts at the beginning of that day, and in --to takes in the whole of that day. The range is at most 400 days.
Times are RFC 3339, such as 2026-11-10T09:00:00Z, or a time without a zone, 2026-11-10 09:00, or a date, 2026-11-10. A time or date without a zone is read in this machine's local zone, or in the zone --tz names. A time the clocks skip when daylight saving time starts is refused, and a time they show twice when it ends means the first of the two. The daemon's [calendar] timezone does not apply here: the CLI never reads the daemon config.
Usage
chainmail freebusy [--account NAME] [--days N | --from T --to T] [--tz ZONE] [address...] [flags]
Examples
chainmail freebusy --days 3
chainmail freebusy --account work --from 2026-11-10 --to 2026-11-10 [email protected] [email protected]
Flags
--account string the account whose provider is asked about the addresses
--days int length of the range in days, when --to is not given (default 7)
--from string start of the range (default: now)
--to string end of the range; a date alone takes in that whole day (default: --days after --from)
--tz string IANA zone to read times without a zone in, and to show times in (default: this machine's zone)
Global flags
--output string output format: json or table (default $CHAINMAIL_OUTPUT, then cli.toml, then table on a terminal, json otherwise)
--socket string daemon socket (default $CHAINMAIL_SOCKET, then cli.toml, then /run/chainmail/chainmail.sock)