{{ greeting }}, {{ user && user.first_name }}

Your next time off is {{ nextLeave.leave_type.name.toLowerCase() }} on {{ formatDate(nextLeave.start_date) }} — {{ nextLeaveCountdown.toLowerCase() }}.

Nothing booked. When you're ready, apply for leave.

{{ todayLong }}
Annual remaining {{ annualBalance ? annualBalance.remaining_days : '—' }} days
Booked · {{ currentYear }} {{ daysBookedThisYear || 0 }} days
Pending {{ pendingCount }} {{ pendingCount === 1 ? 'request' : 'requests' }}
{{ new Date(nextLeave.start_date).getDate() }}
{{ new Date(nextLeave.start_date).toLocaleDateString('en-GB', { month: 'short' }).toUpperCase() }}

{{ nextLeave.leave_type.name }}

{{ formatDate(nextLeave.start_date) }} → {{ formatDate(nextLeave.end_date) }} · {{ nextLeave.total_days }} {{ nextLeave.total_days == 1 ? 'day' : 'days' }} · {{ nextLeave.status.toUpperCase() }}
{{ nextLeaveCountdown.replace(/[^0-9]/g, '') || '—' }} {{ nextLeaveCountdown }}

Leave balances

Leave Type Remaining Details
{{balance.leave_type.name}}
{{balance.remaining_days}}
{{balance.used_days}} used / {{balance.entitled_days}} total
{{balance.pending_days}} pending

Apply for Leave

Medical/Hospitalization leave can be backdated up to 30 days.

My Leave Requests

Leave Type Start Date End Date Days Status Emergency Certificate Actions
{{request.leave_type.name}} {{formatDate(request.start_date)}} {{formatDate(request.end_date)}} {{request.total_days}} {{request.status.toUpperCase()}} Emergency
-

Pending Approvals

Employee Leave Type Start Date End Date Days Reason Actions
{{request.employee.first_name}} {{request.employee.last_name}} {{request.leave_type.name}} {{formatDate(request.start_date)}} {{formatDate(request.end_date)}} {{request.total_days}} {{request.reason}}

{{ calMonthName }} {{ calYear }}

Mon
Tue
Wed
Thu
Fri
Sat
Sun
{{ day.d }}
{{ day.holiday.name }}
{{ lv.employee_name.split(' ')[0] }} ½ {{ halfDayLabel(lv.half_day_period) }}
Approved leave Half day Public holiday

{{ user.role === 'hr' ? 'People' : 'My team' }}

{{ peopleYear }} · {{ people.length }} {{ people.length === 1 ? 'person' : 'people' }}
{{ user.role === 'hr' ? 'No employees yet.' : 'You have no direct reports.' }}
Name Role Annual remaining Used YTD Pending
{{ p.employee.first_name }} {{ p.employee.last_name }}
{{ p.employee.employee_id }} · {{ p.employee.email }}
{{ p.employee.role }} {{ peopleAnnual(p, 'remaining_days') }} {{ peopleAnnualUsed(p) }} {{ peopleAnnual(p, 'pending_days') }}

Employee Management

Create New Employee
All Employees
Employee ID Name Email Department Position Role Manager Hire Date Actions
{{employee.employee_id}} {{employee.first_name}} {{employee.last_name}} {{employee.email}} {{employee.department}} {{employee.position}} {{employee.role.toUpperCase()}} {{employee.manager.first_name}} {{employee.manager.last_name}} - {{formatDate(employee.hire_date)}}

Profile Information

{{user.first_name}} {{user.last_name}}

{{user.email}}

{{user.role.toUpperCase()}}

Change Password

Password must be at least 6 characters long

Sign-in Method

Authentication is managed by your Google account. Password and account-recovery settings are handled via Google Workspace.