CronogramaVacaciones in the system) is the one-year window in which an employee is entitled to take their 30 vacation days. Every employee has exactly one active period at a time.
How a period is calculated
The system determines the vacation period from the employee’s hire date (fechaIngreso). The period does not start on the hire date itself — it starts exactly one year later, once the employee has completed their first year of service.
1
Employee is registered
An HR administrator registers the employee in the Personal Registry module, entering their hire date.
2
Employee is selected in scheduling
When you open the Vacation Scheduling module and select the employee from the dropdown, the system automatically checks for an existing vacation period.
3
Period is created automatically
If no period exists yet, the system creates one immediately using the employee’s hire date. No manual input is required. The new period is saved to the server via
POST /api/schedules.4
Period spans one full year
fechaInicioAnio is set to the one-year anniversary of the hire date. fechaFinAnio is set to exactly one year after that. Both are stored as ISO date strings.Period label
The period is identified byanioVacacional, a human-readable string of the form "YYYY-YYYY" — for example, "2025-2026". This label is shown throughout the scheduling interface.
All vacation ranges scheduled for an employee must fall within their
fechaInicioAnio and fechaFinAnio. The date pickers in the scheduling form are automatically constrained to this window.Day allocation
Each period always starts with 30 total days, split into two buckets:
As vacation ranges are added, the system increments
diasFlexiblesUsados or diasBloqueUsados accordingly. The sidebar in the scheduling module always shows the current balance for each bucket.
Advance vacations can increase the total beyond 30. See Advance vacations (Adelanto) for details.
Period statuses
Every period carries aestado field that reflects its approval state in the HR workflow.
Status transitions are managed in the Administration module. The scheduling module creates periods with
pendiente status by default.One period per employee
The system enforces a one-to-one relationship between an employee and their current period. When you select an employee in the scheduling module, the system:- Searches existing schedules for a record matching the employee’s ID (
personalId). - If a match is found, loads it and its saved ranges.
- If no match is found, creates a new period automatically.
