Modules

Calendar

Certificates

CollectiveAgreements

Company Forms

Company Forms Management

Contacts

Contracts

Customer Assets

Equipment

Expenses

Job Checklists

Job Invoices

Jobs

Labour Actions

Library

Locates

Materials

Messages

Purchase Orders

Safety

Schedule

Service Quotes/Invoices

Service Requests

Services

Settings

TimeLogs

Users

Other

ScheduleEvent Resource
In Schedule Module


Current schedule calendar events: project/service assignments, vacation, sick, and other time off. Product language: schedule, vacation, PTO, sick. Prefer this over legacy Event. Times are stored in UTC. Vacation flags include is_vacation; rejected requests have rejected_by != 0. Annual vacation allotment is on EmployeeSetting (num_annual_vacation_days, mine); company vacation year reset is on CompanySetting (vacation_reset_month / vacation_reset_day, mine).

Endpoints

Endpoints URI Access Control Description
vacation-approval POST /api/ScheduleEvent/vacation-approval Endpoint level permissions
send-notices POST /api/ScheduleEvent/send-notices Endpoint level permissions
delete POST /api/ScheduleEvent/delete Admin or Module WRITE
get GET /api/ScheduleEvent/get Admin or Module READ
get-range GET /api/ScheduleEvent/get-range Endpoint level permissions

Returns schedule events that overlap a time window. Prefer this over ScheduleEvent/get with start/end filters when answering "what's on the schedule today/this week" questions - contained-in-window filters (start_time >= and end_time <=) miss events that span the window edges.

Times on ScheduleEvent are stored in UTC. Convert local calendar-day boundaries to UTC before calling (e.g. America/Toronto during EDT: local midnight-to-midnight is about YYYY-MM-DD 04:00:00 UTC through the next day 04:00:00 UTC).

Required parameters (top-level request fields, not inside filters):

  • start_time: (datetime string) Window start in UTC, e.g. 2026-10-05 04:00:00
  • end_time: (datetime string) Window end in UTC, e.g. 2026-10-06 04:00:00

Optional parameters:

  • filters: Same JSON filter array shape as /get (see Getting/Filtering). AND-only - or filters are rejected on this endpoint. Do not put the day window in filters; use the required start_time / end_time params. Comparison operators belong in the field string: ["job_id", 123] or ["start_time >=", "..."] - never ["start_time", ">=", "..."] or ["start_time", "...", "and", ">="].
  • include: Related resources (commonly Job, User, Service)
  • fields: Lean field list for the parent and/or included records

Example - company schedule for one local day (EDT), with project and employee names:

GET ScheduleEvent/get-range
{
  "start_time": "2026-10-05 04:00:00",
  "end_time": "2026-10-06 04:00:00",
  "include": ["Job", "User"],
  "fields": ["id", "job_id", "user_id", "start_time", "end_time", "is_vacation"]
}

Then keep rows whose included Job.customer_id (or service customer) matches a named customer, and skip vacation / non-work rows when the question is about working on projects.

save POST /api/ScheduleEvent/save Admin or Module WRITE
find GET /api/ScheduleEvent/find Admin or Module READ

Properties

Property Type Description
id number
slug string
user_id number
job_id number
service_id number
equipment_id number
user_id_assigned_to_equipment number
start_time datetime
end_time datetime
repeat_until date
starting_location string
title string
notes string
is_vacation boolean
is_sickday boolean
is_off boolean
is_lead_technician boolean
lead_technician_id number
approved_by number
rejected_by number
priority_index number
is_published boolean
parent_event_id number
notice_last_send datetime
delete_requested_by number
created_at datetime
updated_at datetime
updated_by number

Settings

Setting
Pagination Limit (when page parameter is set) 50 per page
Default Sort Order start_time DESC

Relationships

Related Resource Key Relationship to ScheduleEvent Property
User user_id Belongs To User
Job job_id Belongs To Job
Service service_id Belongs To Service
Equipment equipment_id Belongs To Equipment
User approved_by Belongs To ApprovedBy
User rejected_by Belongs To RejectedBy
User delete_requested_by Belongs To DeleteRequestedBy
User user_id_assigned_to_equipment Belongs To UserAssignedToEquipment
ScheduleEvent parent_event_id Owns Many ScheduleEvent