Hybrid Shift Location Management

Hey guys, i have a use case that i want Frappe HRMS to handle, our company primarily works On-site at the office location but we allocate a certain amount of Remote days for the team members to be able to avail where they can work from home or their preferred location (any place outside the office location).

Now i want frappe to manage the number of Remote days allocated per employee and the management where the employee can avail the day, Frappe logs it and subtracts from the available Remote days for the user.

I haven’t been able to find a direct solution for this, any suggestion/method with which i can achieve this?

Solution: Treating Remote Work as a Leave Type

Yes, treating “Remote Work” as a specialized Leave Type is the smartest and most efficient way to handle this requirement within Frappe HRMS without writing custom code.

By leveraging the existing Leave module, you get built-in balance tracking, approval workflows, and calendar visibility.

How the Workflow Will Look for Khaled:

  1. Requesting Remote Work:

    • Khaled logs into the system/app.
    • He selects Leave Application.
    • He chooses the type: Remote Work.
    • He selects the date(s) he plans to work from home.
    • He clicks Submit.
  2. System Automation:

    • The system automatically deducts 1 day from his Remote Work Balance.
    • His Annual Leave balance remains untouched.
    • Validation: If Khaled tries to apply for a 3rd day but only has a balance of 2, the system will block the request with a message: “Insufficient Leave Balance for Remote Work”.
  3. Tracking & Visibility:

    • Khaled can see exactly how many Remote Work days he has left for the month/year.
    • The Manager sees these days on the Attendance/Leave calendar, distinguishing them from actual absence.

Implementation Steps:

  1. Create a New Leave Type:

    • Name: Remote Work (or Work From Home).
    • Is Paid: Yes (Do not check “Is Leave Without Pay”).
    • Is Carry Forward: No (Usually, remote work quotas like “2 days/month” reset monthly).
  2. Set the Allocation (Quota):

    • Create a Leave Policy or manual Leave Allocation.
    • Assign, for example, 24 days/year (if annual) or create a monthly accrual script if you strictly want 2 days/month that reset.
    • Tip: For monthly strict quotas, use “Earned Leave” frequency settlings or a simple monthly Server Script to reset the balance.
  3. Visuals:

    • In the Leave Type settings, assign a distinct color (e.g., Blue or Teal) so it stands out on the Calendar as “Working” rather than “Absent”.