booksy-cli
Command reference

watch

Get told when a slot opens: add, check, run, schedule

booksy watch

Get told when a slot opens: add, check, run, schedule

A watch remembers which slots were open for one service and reports the ones that open later, typically because someone cancelled. Watches live locally in the state database; Booksy knows nothing about them.

The first check records what is open without reporting it (--emit-initial reports it). Slots that appear only because the booking window rolled forward a day are not reported either.

"check" runs due watches once, "run" loops in the foreground, and "service install" sets up a systemd timer or launchd agent that runs "check".

booksy watch add

Create a watch

booksy watch add slots

Watch one service for newly opened slots

booksy watch add slots <business> [flags]
booksy watch add slots 3349 --service corte --staff Javier --between 17:00-20:00
booksy watch add slots 3349 --service 273164 --before 2026-11-07 --notify phone --name barber
booksy watch add slots 3349 --service corte --weekdays sat --days 21 --interval 10m
FlagTypeDefaultDescription
--beforestring-only slots starting before this date or date and time
--betweenstring-only start times in HH:MM-HH:MM, e.g. 17:00-20:00
--daysint14how many days to look ahead (booksy caps this, usually at a month)
--emit-initialboolfalsereport the slots open right now as an event
--fromstring-first day to look at, YYYY-MM-DD (default today)
--intervalduration0scheck at most this often (default watch.interval, else 15m)
--namestring-watch name (default from business and service)
--notifystringSlice[]sinks from config.toml to deliver events to
--servicestring-variant id, service id, or part of the service name
--staffstring-staffer id or name (default: anyone)
--weekdaysstring-only these days: mon,tue,... or 1-5 (1 is Monday)
--whenstringArray[]per-day schedule, repeatable: "mon-fri 16:00-close", "sat", "2026-12-24 10:00-12:00", "2026-12-31 off"

booksy watch check

Run due watches once and print their events

booksy watch check [name...] [flags]

Run watches once. With names, those watches run regardless of schedule. Without names, watches whose interval has elapsed run; --all forces every watch. Prints the events produced (none is fine: exit 0) and delivers them to the watches' sinks.

FlagTypeDefaultDescription
--allboolfalserun every watch of the profile, due or not

booksy watch events

Show stored events, newest first

booksy watch events [name] [flags]
FlagTypeDefaultDescription
--limitint50at most this many
--sinceduration0sonly events newer than this, e.g. 24h

booksy watch list

Watches of the profile (--all for every profile)

booksy watch list [flags]
FlagTypeDefaultDescription
--allboolfalseevery profile

booksy watch remove

Delete watches and their history

booksy watch remove <name...>

booksy watch run

Check due watches in a loop until Ctrl-C

booksy watch run [flags]

Foreground loop. Every tick runs the due watches and prints events as they happen (use --format jsonl to stream). The tick defaults to the shortest watch interval, with up to 10% jitter.

FlagTypeDefaultDescription
--intervalduration0stick length (default: shortest watch interval)

booksy watch service

Run checks on a schedule via systemd (Linux) or launchd (macOS)

booksy watch service install

Install a user-level timer that runs watch check --all

booksy watch service install [flags]
FlagTypeDefaultDescription
--intervalduration0stimer period (default watch.interval, else 15m)

booksy watch service status

Show the timer's state and last run

booksy watch service status

booksy watch service uninstall

Remove the timer and its log

booksy watch service uninstall

On this page