BACnet Calendar Object

The BACnet Calendar object (Clause 12.9) holds dates, date ranges, and recurring days used by Schedules: properties with datatypes.

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.

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 calendar for this object
Present_ValueBOOLEANtrue when today matches any entry in Date_List, otherwise false
Date_ListBACnetLIST of BACnetCalendarEntryThe dates, date ranges, and recurring days this Calendar covers
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe 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.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • 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.