An experimental project I built a few years ago to help plan vacations around Malaysian public holidays. The idea was simple: given a public holiday, figure out the most strategic days to take leave to maximize your time off.
- Lists all Malaysian public holidays for 2025, filterable by state
- Suggests which days to take as leave to create the longest possible break (e.g. "take Friday off for a 4-day weekend")
- Overlays school holiday periods (Kumpulan A & B) so parents can plan accordingly
- Shows a visual calendar for each holiday's suggested vacation window, color-coded by day type
- State filtering — each holiday shows which states it applies to; select your state to see only relevant holidays
- Holiday search — filter by name
- Vacation suggestions — automatically recommends PTO days based on which day of the week a holiday falls on
- School holidays toggle — overlay Kumpulan A (Kedah, Kelantan, Terengganu) or Kumpulan B (all other states) school holiday periods
- Calendar view — expandable per-holiday calendar showing the full vacation window with color-coded day types
- Weekend-aware — accounts for Friday–Saturday weekends in Kelantan and Terengganu vs. Saturday–Sunday elsewhere
| Holiday Falls On | Strategy |
|---|---|
| Monday | Take Friday off → 4-day weekend |
| Tuesday | Take Monday off → 4-day weekend |
| Thursday | Take Friday off → 4-day weekend |
| Friday | Free 3-day weekend |
| Wednesday / Weekend | No suggestion |
| Color | Meaning |
|---|---|
| Red | Public holiday |
| Gray | Weekend |
| Green | Proposed PTO |
| Blue (bordered) | PTO overlapping with school holiday |
| Light gray | Regular school day |
- React 19 + Vite 6
- Plain CSS
- Static JSON data (
public/holidays-2025-my.json)
npm install
npm run devThen open http://localhost:5173 (or whichever port Vite picks).
Public holiday data is stored in public/holidays-2025-my.json — a flat list of 22 holidays with their applicable states. School holiday dates are hardcoded in src/utils.js.