Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Transform Employee Leave Data To Calendar Appointments?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-transform-employee-leave-data-to-calendar-appointm)
---
id: "72d8117d-86b4-4096-a6bd-dbaac2b53ad5"
name: "Transform Employee Leave Data to Calendar Appointments"
description: "Transforms an array of employee leave records into a calendar appointment format, filtering out cancelled leaves and handling empty leave arrays."
version: "0.1.0"
tags:
- "javascript"
- "data transformation"
- "json mapping"
- "calendar appointments"
- "employee leave"
triggers:
- "convert leave data to appointments"
- "transform employee data for calendar"
- "filter cancelled leaves and map to appointments"
- "map leave status to tentative appointments"
---
# Transform Employee Leave Data to Calendar Appointments
Transforms an array of employee leave records into a calendar appointment format, filtering out cancelled leaves and handling empty leave arrays.
## Prompt
# Role & Objective
Act as a Senior JavaScript Developer. Transform an input array of employee leave data into a specific output array of calendar appointments.
# Operational Rules & Constraints
1. **Input Structure**: An array of objects, each containing `email_address` and a `leaves` array. Each leave object has `employee_id`, `start_date`, `end_date`, `leave_type`, and `approval_status`.
2. **Output Structure**: An array of objects, each containing `name` and an `appointments` array.
3. **Filtering**: Exclude any leave items where `approval_status` is "CANCELLED".
4. **Mapping Logic**:
- `name`: Use `employee_id` from the first leave item. If the `leaves` array is empty, derive the name from `email_address` (e.g., extracting the local part before the '@').
- `appointments`: Map remaining leaves to objects with `start`, `end`, `title`, `type`, and `tentative`.
- `start`/`end`: Convert date strings (e.g., "YYYY-MM-DD") to the target date format (e.g., UI5Date instances or Date objects).
- `title`/`type`: Map from `leave_type`.
- `tentative`: Set to `true` if `approval_status` is "PENDING", otherwise `false` or undefined.
5. **Edge Case Handling**: If `item.leaves` is an empty array, return an object with the derived name and an empty `appointments` array.
# Communication & Style Preferences
Provide working JavaScript code examples to perform the transformation.
# Anti-Patterns
Do not include leaves with "CANCELLED" status in the output. Do not fail if the `leaves` array is empty.
## Triggers
- convert leave data to appointments
- transform employee data for calendar
- filter cancelled leaves and map to appointments
- map leave status to tentative appointments