A streamlined desktop tool for managing employee time-off, tracking leave balances, and visualizing schedules.
Vacation Manager is a lightweight Python application built with Tkinter and SQLite. It provides a centralized way for small teams or HR managers to track annual leave, visualize absences on a calendar, and ensure staffing levels remain consistent.
| Main Dashboard | Booking a Date |
|---|---|
![]() |
![]() |
The application uses a local SQLite database to ensure your data stays private and persistent.
- Data Persistence: All employee and vacation data is stored in
vacation_records.db. - Calendar Integration: The app uses
tkcalendarto highlight dates where leave is booked. - Asset Management: It looks for
group.icoto set the window branding.
Directory Structure:
Vacation-Manager/
├── main.py
├── group.ico
- Because tracking vacation days in a messy Excel sheet is a headache you don't need.
| Feature | Description |
|---|---|
| Interactive Calendar | Click any date to see a list of who is on leave and why. |
| Balance Tracking | Automatically calculates Used vs. Remaining days for every employee. |
| Conflict View | Red highlights on the calendar instantly show "busy" days. |
| SQLite Backend | No server setup; data is saved locally in a single database file. |
| Clean UI | Minimalist design focusing on ease of entry and quick lookups. |
Requirements:
- Python 3.8 or higher
- pip package manager
Installation Steps:
# Clone the repository
git clone https://github.com/TerzicScript/Vacation-Manager.git
cd Vacation-Manager
# Install dependencies
pip install tkcalendar
# Run the application
python main.py- Go to the Releases Page
- Download
VacationManager.exe - Make sure
group.icois in the same folder if you want the custom icon to appear. - Run and enjoy!
To compile this script into a standalone Windows executable, use PyInstaller:
Requirements:
- PyInstaller:
pip install pyinstaller - Icon file:
group.icoin the root directory.
Build Command: Run this in your terminal to create a single-file executable:
pyinstaller --noconsole --onefile --add-data "group.ico;." --icon=group.ico --name="VacationManager" main.pyEnter the employee's name and their total annual leave allowance (e.g., 21 days), then click Add Employee.
- Select an employee from the list on the left.
- Select the date on the calendar.
- Type a reason (e.g., "Family Trip") and click Confirm Absence.
- Tkinter & SQLite - For the reliable standard library tools.
- tkcalendar - For making calendar widgets actually look good.

