# Location

**Kind:** Class

**Source:** `Outlook_plugin/src/calendar/calendar.model.ts` (line 94)

**Part of:** [Calendar](subsystem-outlook-plugin-src-calendar)

Location information

`Location` represents location information within the calendar domain. Calendar-related code can use this class to store and pass location data alongside event details.

## Properties

| Property | Type |
|---|---|
| `displayName` | `string` |
| `address` | `PhysicalAddress` |
| `coordinates` | `OutlookGeoCoordinates` |
| `locationEmailAddress` | `string` |
| `locationType` | `LocationType` |
| `locationUri` | `string` |
| `uniqueId` | `string` |
| `uniqueIdType` | `LocationUniqueIdType` |

## Diagram

```mermaid
graph LR
  Calendar[Calendar data] --> Event[Calendar event]
  Event --> Location[Location]
  Location --> Details[Location information]
```

## Usage

```ts
import { Location } from './calendar.model';

const location = new Location();

// Assign location fields defined by the calendar model.
Object.assign(location, {
  displayName: 'Conference Room',
});

function attachLocation(event: { location?: Location }) {
  event.location = location;
}
```

## AI Coding Instructions

- Keep location-related fields inside `Location` rather than duplicating them on calendar event objects.
- Check the calendar model before assigning properties, since available location fields are defined in `calendar.model.ts`.
- Pass `Location` instances through calendar event creation, update, and mapping code where location data is needed.
- Avoid assuming a location is always present; handle missing or empty location values in event consumers.
