---
title: "Get the team absence calendar"
method: GET
path: "/companies/{company}/absence-calendar"
tags: ["Absence Calendar"]
---

# Get the team absence calendar

`GET /companies/{company}/absence-calendar`

## Request

- Base URL: `https://api.factuarea.com/v1`
- URL: `https://api.factuarea.com/v1/companies/{company}/absence-calendar`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Return the monthly absence calendar of your team for a given `year` and `month`: every active employee with their approved absences of that month (each coloured by its absence type) and the public holidays that apply, kept separate from the absences. Optionally scoped to a single `employee_id` (UUID v7). A computed resource: it exposes `employee_id` per member, never an `id`.

## Path parameters

- `company` string, uuid, required

## Query parameters

- `year` integer, required
- `month` integer, required
- `employee_id` string, uuid, nullable

## Headers

- `Factuarea-Version` string, date

## Response `200`

- object
  - `data` TeamAbsenceCalendar, required: The monthly team absence calendar for the Control Horario (time tracking) module: for a given year and month, every active employee with their approved absences of that month (each coloured by its absence type) plus the public holidays that apply, kept separate from the absences. A computed resource with no entity identity: it is keyed by company + year/month and never exposes an `id`.
    - `year` integer, required: Year of the calendar.
    - `month` integer, required: Month of the calendar (1-12).
    - `members` object[], required: Active employees of the team, each with their approved absences overlapping the month.
      - `employee_id` string, uuid, required: UUID v7 of the employee.
      - `full_name` string, required: Display name of the employee.
      - `absences` object[], required: Approved absences of the employee overlapping the month.
        - `start_date` string, date, required: First day of the absence (YYYY-MM-DD).
        - `end_date` string, date, required: Last day of the absence (YYYY-MM-DD).
        - `absence_type_name` string, required: Name of the absence type.
        - `color` string, required: Hex color `#RRGGBB` of the absence type, used to render it on the calendar.
        - `status` string, required: Status of the absence (always `approved` on the calendar).
    - `holidays` object[], required: Public holidays that apply to the team during the month.
      - `date` string, date, required: Day of the holiday (YYYY-MM-DD).
      - `name` string, required: Name of the holiday.
      - `scope` string, required: Scope of the holiday: national, regional (autonomous community) or local.

## Other responses

- `400`: `parameter_unknown` with `subcode` `retired_active_profile_header`: the retired `X-Active-Profile` header was sent; the company goes in the path. `parameter_invalid_format` on `Factuarea-Version`: the header is not a `YYYY-MM-DD` date. `unsupported_api_version`: the `Factuarea-Version` date is not a supported version.
- `401`: Missing or invalid API key.
- `403`: The request is authenticated but not allowed: the API key lacks the required scope (`insufficient_scope`), the plan does not include the public API or this feature (`addon_not_active`, `feature_not_available_in_plan`), or the module is not available with a test key (`module_not_available_in_sandbox`).
- `404`: The requested resource does not exist or belongs to another company. `profile_not_found`: the company in the path does not exist, is not in the API key scope or belongs to the other environment (live or test).
- `422`: Validation failed. The `error.param` field identifies which input is invalid.
- `429`: Rate limit exceeded. Retry after the duration in `Retry-After`.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/factuarea/apis/factuarea-public-api.md) · [All operations](https://skmtc.dev/factuarea/apis/factuarea-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/factuarea/apis/factuarea-public-api/revisions/718e77934422?raw)
