What the Calendar Object Is
The Calendar object, defined in Clause 12.9 of ANSI/ASHRAE 135-2024, is how a BACnet device stores a named list of dates: holidays, special events, or any set of days a controller needs to treat differently. Each entry can be a single date, a date range, or a recurring pattern (a WeekNDay, such as the last Monday of May), so one Calendar can describe both fixed and floating holidays.
Present_Value is a single BOOLEAN that reads true on any day matched by Date_List and false otherwise. A Schedule object references a Calendar so its exception days follow the holiday list without each Schedule repeating the dates. Update the Calendar once and every Schedule that references it sees the new holidays.
Where You’ll See It
- Holiday lists. One building-wide Calendar holds the year’s statutory holidays; every Schedule that should stay in unoccupied mode on those days references it.
- Special events. A separate Calendar can flag event days when a space runs on a different profile, keeping event overrides out of the routine holiday list.
- Shared reference. Because Schedules reference the Calendar rather than copying its dates, a Calendar is the single point of edit for date-driven behavior across a controller.
Required Properties
Clause 12.9 requires every Calendar object to provide these properties. Datatypes are the spec’s names: BOOLEAN is a true/false flag, BACnetLIST of BACnetCalendarEntry is the list of dates, ranges, and recurring days, and the other BACnet-prefixed types are structured values defined by the standard.
| Property | Datatype | What it holds |
|---|---|---|
Object_Identifier | BACnetObjectIdentifier | The object’s type and instance number, unique within the device |
Object_Name | CharacterString | The human-readable point name, unique within the device |
Object_Type | BACnetObjectType | Always calendar for this object |
Present_Value | BOOLEAN | true when today matches any entry in Date_List, otherwise false |
Date_List | BACnetLIST of BACnetCalendarEntry | The dates, date ranges, and recurring days this Calendar covers |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
Optional Properties
The Calendar object has a small optional set. Description is the one integrators meet most; the auditing properties appear only on devices that support audit reporting.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- Schedule: references a Calendar for its exception and holiday days.
- Notification Class: the third object in the scheduling and alarming trio a controller commonly hosts.
What Chipkin Provides
The Calendar object, including single dates, date ranges, and recurring WeekNDay entries, is supported in the CAS BACnet Stack and hosted by B-BC building controllers alongside the Schedules that reference it. Talk to us about modeling your device’s points.