BACnet Schedule Object

The BACnet Schedule object (Clause 12.24) writes values to other objects on a weekly and exception schedule: properties with datatypes.

What the Schedule Object Is

The Schedule object, defined in Clause 12.24 of ANSI/ASHRAE 135-2024, is how a BACnet device automates time-of-day control. It holds a weekly schedule plus an optional list of exceptions, computes a current value from them, and writes that value into the properties of other objects at the scheduled times. A Schedule that turns lights and air handlers on at 6 AM on weekdays and holds them off on holidays is the everyday example.

Present_Value is the value in effect right now, calculated from the Weekly_Schedule and Exception_Schedule properties, falling back to Schedule_Default when no scheduled event applies. List_Of_Object_Property_References names every object property the Schedule writes to, and Priority_For_Writing sets the priority slot it uses on commandable targets. A Schedule usually references a Calendar object for its holiday dates. Schedule objects may optionally support intrinsic reporting, but only to report fault conditions; they apply no event algorithm.

Where You’ll See It

  • Occupancy control. A Schedule drives occupied and unoccupied modes across a building, writing setpoints and enable flags into air handlers, VAV (variable-air-volume) boxes, and lighting objects at the start of each period.
  • Holiday and exception handling. Exception days from a linked Calendar override the normal weekly pattern, so a plant stays off on statutory holidays without editing the weekly schedule.
  • Gateways. A gateway can expose a scheduling engine from another system as a Schedule object so a BMS head end (the central BMS server) reads and edits it like any native schedule.

Required Properties

Clause 12.24 requires every Schedule object to provide these properties. Datatypes are the spec’s names: Any is a value whose type matches the properties being scheduled, Unsigned an integer, BOOLEAN a true/false flag, and the BACnet-prefixed types are structured values defined by the standard.

PropertyDatatypeWhat it holds
Object_IdentifierBACnetObjectIdentifierThe object’s type and instance number, unique within the device
Object_NameCharacterStringThe human-readable point name, unique within the device
Object_TypeBACnetObjectTypeAlways schedule for this object
Present_ValueAnyThe scheduled value in effect now, computed from the weekly and exception schedules
Effective_PeriodBACnetDateRangeThe date range over which this Schedule is active
Schedule_DefaultAnyThe value used when no weekly or exception event is in effect
List_Of_Object_Property_ReferencesBACnetLIST of BACnetDeviceObjectPropertyReferenceThe object properties this Schedule writes its value into
Priority_For_WritingUnsignedThe priority slot used when writing to commandable targets
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
ReliabilityBACnetReliabilityNames the reason whenever the fault flag is set
Out_Of_ServiceBOOLEANWhen true, the schedule calculation is decoupled for testing
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The optional properties integrators meet most are Weekly_Schedule and Exception_Schedule (the time/value pairs that define the schedule itself) and Description. The intrinsic-reporting group appears or is absent as a set, and on this object it only supports fault reporting.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Weekly_ScheduleBACnetARRAY[7] of BACnetDailyScheduleScheduling
Exception_ScheduleBACnetARRAY[N] of BACnetSpecialEventScheduling
Event_Detection_EnableBOOLEANIntrinsic reporting
Notification_ClassUnsignedIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Event_StateBACnetEventStateIntrinsic reporting
Acked_TransitionsBACnetEventTransitionBitsIntrinsic reporting
Notify_TypeBACnetNotifyTypeIntrinsic reporting
Event_Time_StampsBACnetARRAY[3] of BACnetTimeStampIntrinsic reporting
Event_Message_TextsBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Message_Texts_ConfigBACnetARRAY[3] of CharacterStringIntrinsic reporting
Reliability_Evaluation_InhibitBOOLEANFault detection
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Calendar: the list of dates a Schedule references for its holidays and exception days.
  • Notification Class: the object a Schedule’s intrinsic fault reports route through.
  • Analog Value and Binary Value: common targets a Schedule writes its computed value into.

What Chipkin Provides

The Schedule object, including its weekly and exception calculation and write-out to local objects (SCHED-I-B), is supported in the CAS BACnet Stack and hosted by B-BC building controllers. Write-out to remote objects (SCHED-E-B) works end to end at the code and test level; it has not yet been run against a BTL profile. Talk to us about modeling your device’s points.