> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wattshift.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Updating User Preferences

> Preview and save HVAC user preferences so WattShift can create schedules that respect comfort settings.

Once a user has onboarded, you can set and get user preferences for their devices.
The examples below assume `wattshiftApiCall` is your authenticated WattShift API helper.

## Previewing Schedules

Before saving user preferences, you can preview the suggested set-point schedules.

```typescript theme={null}
const userPreferences = {
  tempUnits: "F",
  defaultMode: "AUTO",
  defaultMaxTemp: "75",
  defaultMinTemp: "65",
  scheduleBlocks: [
    {
      daysOfWeek: [1, 2, 3, 4, 5],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "70",
    },
    {
      daysOfWeek: [0, 6],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "68",
    },
  ],
};

// Preview the data.
const hvacId = "ws_device_123efg";
const { blocks } = await wattshiftApiCall(
  `/devices/hvac/${hvacId}/preview`,
  userPreferences,
);
const tempData = blocks.map((b) => ({
  startTime: b.startTime,
  endTime: b.endTime,
  targetTemp: b.targetTemp,
}));
```

## Saving Preferences

If all looks good, you can save the user preferences.

```typescript theme={null}
const hvacId = "ws_device_123efg";
const userPreferences = {
  tempUnits: "F",
  defaultMode: "AUTO",
  defaultMaxTemp: "75",
  defaultMinTemp: "65",
  scheduleBlocks: [
    {
      daysOfWeek: [1, 2, 3, 4, 5],
      startTimeMinutes: "0",
      endTimeMinutes: "1439",
      targetTemp: "70",
    },
  ],
};

await wattshiftApiCall(
  `/devices/hvac/${hvacId}/user_preferences/set`,
  userPreferences,
);
```
