# ThermostatTrait.ScheduleStruct

# ThermostatTrait.ScheduleStruct


```
class ThermostatTrait.ScheduleStruct : ClusterStruct
```

<br />

*** ** * ** ***

A schedule.

## Summary

| ### Nested types |
|---|
| `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi enum https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct.StructFields : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html, https://developers.home.google.com/reference/kotlin/com/google/home/Field` Descriptor enum for this struct's fields. |

| ### Public constructors |
|---|
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#ScheduleStruct(kotlin.ByteArray,com.google.home.matter.standard.ThermostatTrait.SystemModeEnum,com.google.home.matter.serialization.OptionalValue,com.google.home.matter.serialization.OptionalValue,kotlin.collections.List,kotlin.Boolean)( scheduleHandle: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-byte-array/index.html?, systemMode: https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.SystemModeEnum, name: https://developers.home.google.com/reference/kotlin/com/google/home/matter/serialization/OptionalValue<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>, presetHandle: https://developers.home.google.com/reference/kotlin/com/google/home/matter/serialization/OptionalValue<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-byte-array/index.html>, transitions: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleTransitionStruct>, builtIn: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html? )` Creates the ScheduleStruct class. |

| ### Public functions |
|---|---|
| `open https://developers.home.google.com/reference/kotlin/com/google/home/StructDescriptor` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#getDescriptor()()` Returns the descriptor for the struct. |
| `open https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html?` | `@https://developers.home.google.com/reference/kotlin/com/google/home/annotation/HomeExperimentalGenericApi https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#getFieldValueById(kotlin.UInt)(tagId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-u-int/index.html)` Returns the value of the field for the given tag ID. |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#builtIn()` Indicates whether or not the schedule is built-in, meaning that it can be modified but not deleted. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/serialization/OptionalValue<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#name()` The name for the schedule. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/serialization/OptionalValue<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-byte-array/index.html>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#presetHandle()` The default preset handle for transitions in this schedule. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-byte-array/index.html?` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#scheduleHandle()` A device generated identifier for this schedule. |
| `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.SystemModeEnum` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#systemMode()` The default thermostat system mode for transitions in this schedule. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleTransitionStruct>` | `https://developers.home.google.com/reference/kotlin/com/google/home/matter/standard/ThermostatTrait.ScheduleStruct#transitions()` A list of transitions for the schedule. |

## Public constructors

### ScheduleStruct

```
ScheduleStruct(
    scheduleHandle: ByteArray? = null,
    systemMode: ThermostatTrait.SystemModeEnum = SystemModeEnum.Off,
    name: OptionalValue<String> = OptionalValue.absent(),
    presetHandle: OptionalValue<ByteArray> = OptionalValue.absent(),
    transitions: List<ThermostatTrait.ScheduleTransitionStruct> = emptyList(),
    builtIn: Boolean? = null
)
```

Creates the ScheduleStruct class.

## Public functions

### getDescriptor

```
@HomeExperimentalGenericApi
open fun getDescriptor(): StructDescriptor
```

Returns the descriptor for the struct.

### getFieldValueById

```
@HomeExperimentalGenericApi
open fun getFieldValueById(tagId: UInt): Any?
```

Returns the value of the field for the given tag ID.

## Public properties

### builtIn

```
val builtIn: Boolean?
```

Indicates whether or not the schedule is built-in, meaning that it can be modified but not deleted.

### name

```
val name: OptionalValue<String>
```

The name for the schedule.

### presetHandle

```
val presetHandle: OptionalValue<ByteArray>
```

The default preset handle for transitions in this schedule.

### scheduleHandle

```
val scheduleHandle: ByteArray?
```

A device generated identifier for this schedule.

### systemMode

```
val systemMode: ThermostatTrait.SystemModeEnum
```

The default thermostat system mode for transitions in this schedule.

### transitions

```
val transitions: List<ThermostatTrait.ScheduleTransitionStruct>
```

A list of transitions for the schedule.