# Employee Availability Endpoints {#employee-availability-endpoints}


Manage employee schedules, availability slots, appointments, and event types.


## Base Paths {#base-paths}


| Resource              | Path                        |
| --------------------- | --------------------------- |
| Availability Slots    | `/api/availability-slots`   |
| Employee Appointments | `/api/employee-appointment` |
| Event Types           | `/api/event-type`           |


## Availability Slot Endpoints {#availability-slot-endpoints}



### List Availability Slots {#list-availability-slots}


```
GET /api/availability-slots
Authorization: Bearer {token}
```


### Create Availability Slot {#create-availability-slot}


```
POST /api/availability-slots
Authorization: Bearer {token}
Content-Type: application/json

{
  "startTime": "2024-03-15T09:00:00.000Z",
  "endTime": "2024-03-15T17:00:00.000Z",
  "allDay": false,
  "type": "DEFAULT",
  "employeeId": "uuid",
  "organizationId": "uuid"
}
```


### Update Availability Slot {#update-availability-slot}


```
PUT /api/availability-slots/:id
Authorization: Bearer {token}
```


### Delete Availability Slot {#delete-availability-slot}


```
DELETE /api/availability-slots/:id
Authorization: Bearer {token}
```


## Employee Appointment Endpoints {#employee-appointment-endpoints}



### List Appointments {#list-appointments}


```
GET /api/employee-appointment
Authorization: Bearer {token}
```


### Create Appointment {#create-appointment}


```
POST /api/employee-appointment
Authorization: Bearer {token}
Content-Type: application/json

{
  "employeeId": "uuid",
  "agenda": "Sprint Planning Meeting",
  "description": "Bi-weekly sprint planning",
  "location": "Conference Room A",
  "startDateTime": "2024-03-15T10:00:00.000Z",
  "endDateTime": "2024-03-15T11:00:00.000Z",
  "bufferTimeStart": false,
  "bufferTimeEnd": true,
  "bufferTimeInMins": 15,
  "invitees": [{ "employeeId": "uuid" }]
}
```


### Update Appointment {#update-appointment}


```
PUT /api/employee-appointment/:id
Authorization: Bearer {token}
```


### Delete Appointment {#delete-appointment}


```
DELETE /api/employee-appointment/:id
Authorization: Bearer {token}
```


## Event Type Endpoints {#event-type-endpoints}



### List Event Types {#list-event-types}


```
GET /api/event-type
Authorization: Bearer {token}
```


### Create Event Type {#create-event-type}


```
POST /api/event-type
Authorization: Bearer {token}
Content-Type: application/json

{
  "title": "1:1 Meeting",
  "description": "Individual check-in",
  "duration": 30,
  "durationUnit": "Minute(s)",
  "isActive": true,
  "employeeId": "uuid",
  "organizationId": "uuid"
}
```


## Data Model {#data-model}


```typescript
interface IAvailabilitySlot {
  id: string;
  startTime: Date;
  endTime: Date;
  allDay: boolean;
  type: string;
  employeeId: string;
  organizationId: string;
  tenantId: string;
}

interface IEmployeeAppointment {
  id: string;
  employeeId: string;
  agenda: string;
  description?: string;
  location?: string;
  startDateTime: Date;
  endDateTime: Date;
  bufferTimeStart?: boolean;
  bufferTimeEnd?: boolean;
  bufferTimeInMins?: number;
  breakTimeInMins?: number;
  breakStartTime?: Date;
  invitees?: IAppointmentEmployee[];
}

interface IEventType {
  id: string;
  title: string;
  description?: string;
  duration: number;
  durationUnit: string;
  isActive: boolean;
  employeeId?: string;
  organizationId: string;
  tenantId: string;
}
```


## Related Pages {#related-pages}


- [Event Scheduling Feature](https://sourcey-gauzy.pages.dev/features/event-scheduling/index.md) — feature guide
- [Employee Endpoints](https://sourcey-gauzy.pages.dev/api/employee-endpoints/index.md) — employee management
