Frappe HR

Frappe HR

Attendance Request

Siddharth Iyer is an engineer in the Production department at the Nova Industries Pune branch. From Friday, 23 October to Monday, 26 October 2026, he worked at a supplier's plant to commission a new press line. He never used the biometric device at the Pune office, so HR marked him Absent on 23 October when it closed that day's attendance. Monday, 26 October has no attendance at all.

If nobody corrects this, Siddharth's salary slip counts at least one day of absence for a day he worked, and the attendance reports show a gap. HR cannot tell from the records alone that he was on company duty. He needs a way to say "I worked on these dates, here is why", and HR needs a way to check that before the records change.

An Attendance Request does this. The employee enters the date range and a reason (On Duty or Work From Home). Before submission, the form shows which days it will overwrite and which days it will skip, for example, weekends and approved leave. When the request is submitted, Frappe HR creates or updates one Attendance record per working day and links each record to the request. Cancelling the request cancels those records again.

Before you begin

  • The employee has an active Employee record, and the requested dates are on or after the Date of Joining.
  • The employee or the company has a Holiday List for the period. The request uses it to skip weekends and holidays.
  • If the employee works shifts, the Shift Assignment or Default Shift is set. The request fills the shift from it.
  • Users with the Employee role can create and save a request. Only an HR User, HR Manager, or System Manager can submit it. See Role and Role Profile to change who can do what.

Create an Attendance Request

This example creates Siddharth's request for 23 to 26 October 2026.

  1. Open the Shift & Attendance workspace and select Attendance Request in the sidebar. The list of existing requests opens. Select Add Attendance Request.
    Attendance Request list in the Shift and Attendance workspace with the sidebar link and the Add Attendance Request button highlighted
  2. In Employee, select the employee, for example, Siddharth Iyer. Employee Name, Department, and Company fill in from the Employee record.
  3. Set From Date to 23 October 2026 and To Date to 26 October 2026. When the employee has a shift for the From Date, Shift fills in automatically, for example, Day Shift.
  4. In Reason, select On Duty for work done away from the office, or Work From Home. Add an Explanation that the approver can check, for example "Commissioning the press line at the supplier's plant".
    New Attendance Request for Siddharth Iyer from 23 to 26 October 2026 with Reason On Duty, an explanation and Shift filled in automatically
  5. Leave Include Holidays clear unless the employee also worked on the weekend or holidays in the range. Leave Half Day clear for full days.
  6. Press Ctrl+S or select Save. The request is saved as a Draft, and an Attendance Warnings section appears at the top of the form.

Review the attendance warnings

The warnings table lists every date in the range that will not get a new record. Each row shows the date, the action that submission will take, the reason, and the existing Attendance record when there is one.

Attendance Warnings on the draft request: 23 October will be overwritten and 24 and 25 October will be skipped as holidays

Action and reason What happens on submit
Overwrite: Attendance already marked The existing record keeps its ID, and its status changes to the requested status. In the example, 23 October changes from Absent to Present.
Skip: Holiday No record is created because the date is in the Holiday List. Tick Include Holidays to mark these days too.
Skip: On Leave No record is created because an approved Leave Application covers the date.
Skip: Attendance status unchanged The existing record already has the requested status, so nothing changes.

Dates that are not in the table get a new Attendance record. In the example, 26 October gets a new Present record.

If every date in the range would be skipped, Frappe HR does not save the request and shows "No attendance records to create due to the following reasons" with the same table. Change the dates or tick Include Holidays.

Submit and check the result

  1. When the warnings are correct, select Submit and confirm. If a record is overwritten, an Attendance Updated message names the date, the old and new status, and the record, for example, from Absent to Present for 23 October 2026.
  2. Close the message. The request status changes to Submitted. At the top of the form, the Attendance link shows how many records the request created or updated, two in the example.
    Submitted Attendance Request with the Attendance link showing 2 linked records highlighted
  3. Select the Attendance link to open the linked records. Open the record for 23 October. Status is now Present, the Attendance Request field links back to the request, and the activity log shows "Changed the status from Absent to Present via Attendance Request".
    Attendance record for 23 October 2026 with Status Present, the Attendance Request link and the activity entry for the change from Absent to Present highlighted

Records created by a request use the requested status: Present for On Duty and Work From Home for Work From Home. If you cancel the request, Frappe HR cancels every Attendance record linked to it. An overwritten record is cancelled too, not set back to its old status, so mark that date again if it still needs attendance.

Request a half day

Tick Half Day and set Half Day Date to a date between From Date and To Date. On that date, the request creates or updates a Half Day record, and the other dates in the range are marked as usual.

A half-day request also completes a half-day leave. Suppose an employee took an approved half-day leave for the morning, and the afternoon is marked Absent. A half-day request for that date changes Status for Other Half from Absent to Present on the existing record. If the employee has a full-day leave on the date, the request skips it. See Half Day Leave and Attendance for how the two halves interact.

Approve requests with a workflow

By default, any HR User can submit a request directly. To require a manager's decision first, create a Workflow on Attendance Request with states such as Pending, Approved, and Rejected, and allow only the Approved state to submit. Employees can also raise requests from the Frappe HR mobile app, where approvers see them with their team's other requests.

Important fields and what they mean

Field What it does
Employee The employee whose attendance is requested. Must be active.
From Date, To Date The range to mark. One record is created or updated for each date that is not skipped.
Half Day, Half Day Date Marks one date in the range as Half Day.
Reason On Duty creates Present records. Work From Home creates Work From Home records.
Explanation Free text for the approver. It does not affect the records.
Shift Filled from the employee's Shift Type assignment or Default Shift. A request only overwrites records that have the same shift. It does not change the shift on existing records.
Include Holidays Marks holidays in the range instead of skipping them.

Troubleshooting

Employee already has an Attendance Request that overlaps with this period

Another Draft or Submitted request for the same employee covers some of the same dates. Open the linked request and either cancel it or change its dates. A Draft request counts too, so delete drafts that are no longer needed.

There are multiple shifts assigned to the employee for the same period

The employee has more than one Shift Assignment for the dates. Select the correct shift in the Shift field. When an employee worked two different shifts in the range, raise one request per shift.

Half day date should be in between from date and to date

The Half Day Date is outside the range. Change it to a date from From Date to To Date, or widen the range.

Submit fails because attendance is already marked for the date

The request only overwrites a record that has the same shift as the request. When the existing record has no shift, or a different shift with overlapping timings, the request tries to create a second record for the date and Frappe HR stops it. Set the request's Shift to match the existing record, or clear it when the record has no shift, then submit again.

The employee cannot submit the request

The Employee role can create and save requests but cannot submit them. Ask an HR User to review and submit it, or set up a workflow so that the approver's action submits it.

Frequently asked questions

When should I use an Attendance Request instead of the Employee Attendance Tool?

Use an Attendance Request when one employee needs a reason recorded and checked for specific dates. Use the Employee Attendance Tool when HR marks one date for a whole group.

Can an employee request attendance for a holiday they worked?

Tick Include Holidays so that the holiday is marked Present. That Present record on a holiday is what a Compensatory Leave Request checks before it grants a day off in lieu.

Does the request change check-in data?

The request only creates or updates Attendance records. It does not create Employee Checkin logs, so working hours stay empty for those dates. Auto Attendance does not overwrite the submitted records later.

Last updated 10 hours ago
Was this helpful?
Thanks!