KW Knowledge base

Schedules

Schedules are alarm-suppression rules. They never stop detection from running — they only stop the notifier from paging you for matched events during a defined window. The suppressed events are still recorded.

Mitch Wigham
Updated 24 June 2026 · 6 views

Schedules

Schedules are alarm-suppression rules. They never stop detection from running — they only stop the notifier from paging you for matched events during a defined window. The suppressed events are still recorded.

Why schedules

Almost every camera has a "boring" period: staff arriving and leaving, the postman, the cleaner. You don't want to disable detection during those times (if a real intruder comes you still want a recording), but you also don't want your phone buzzing every morning at 8:30.

Anatomy of a schedule

Field Required Purpose
Cameras No Apply to one or more cameras, or leave blank for all cameras
Label No Apply only to one detection class (e.g. person), or all labels
Days of week Yes Mon=0 … Sun=6
Start time Yes HH:MM 24-hour
End time Yes HH:MM 24-hour
Suppress alarms Yes If true, matching events are silenced
Note Yes A required free-text reason — why this rule exists
Enabled Yes Master toggle
One-time only No Delete the schedule automatically after the first matched suppression

The mandatory note

The note field is required and validated on the server (minimum 3 characters). This is deliberate. Six months from now, looking at a list of schedules, you should be able to read each one and instantly know why it was created. "Cleaner Mondays/Wednesdays — agreed with Sarah" is much more useful than no note at all.

Examples

"Don't ping me about people during business hours at the office"

Field Value
Camera Office front door
Label person
Days Mon–Fri (0,1,2,3,4)
Start 08:00
End 18:30
Suppress
Note "Staff hours — Sarah's team works 8:30–17:30 plus arrival/departure margin"

"Suppress all car detections on the driveway camera at night"

Field Value
Camera Driveway
Label car
Days every day
Start 22:00
End 06:00
Suppress
Note "Streetlight headlights from passing traffic on Mill Lane cause false positives at night"

Creating a schedule

  1. Schedules in the sidebar.
  2. Click Add schedule.
  3. Fill in the fields above. The Note is required.
  4. Save.

The camera selector is a tag list:

  • leave it blank for all cameras
  • add one or more cameras as tags
  • remove a camera by clicking the small × on that tag

Existing schedules can also be enabled/disabled directly from the schedules list without deleting them.

Or via the API:

curl -X POST https://cctv.example.com/api/schedules \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"camera_ids":[3,7],"label":"person","days_of_week":[0,1,2,3,4],
          "start_time":"08:00","end_time":"18:30","suppress_alarms":true,
          "note":"Staff hours — Sarah team","enabled":true,"one_time":false}'

How matching works

When an event fires, the notifier walks every active schedule and checks:

  • The schedule's camera list contains the event camera (or the schedule is global)
  • The schedule's label matches the event's label (or is null)
  • Today's day-of-week is in the schedule's days
  • The current time is between start and end

The first matching rule wins and the event is suppressed.

If the matching schedule is marked one-time only, Vistralio deletes it immediately after that suppression is applied.

Permissions

Action Permission
See schedules schedules.view
Create / edit / delete schedules.edit

Related API endpoints

  • GET /api/schedules
  • POST /api/schedules
  • PATCH /api/schedules/{id} — toggle enabled / disabled
  • DELETE /api/schedules/{id}

Still need help?

Log a support ticket and the team will pick it up from this page.