New: Virto Calendar App now opens right inside Teams, Outlook and Microsoft 365 Learn more about Virto Calendar App in Teams, Outlook and Microsoft 365→

Home> Blog> SharePoint> SharePoint Leave Request Form: How to Build One, Step by Step

SharePoint Leave Request Form: How to Build One, Step by Step

Sergi Sinyugin by Sergi Sinyugin Published: Oct 14, 2026 Latest update: Oct 14, 2026
Reading Time: 13 mins

Quick answer: how do you make a leave request form in SharePoint? Create a list called Leave requests with columns for the employee, leave type, start date, end date and approver. Add a list validation rule so the end date cannot come before the start date, and a calculated column that counts working days. Then choose the form people fill in: the default list form is free and covers most needs, Microsoft Lists forms give you a shareable link, and Power Apps or a form designer such as Virto Forms Designer App add tabs, columns and different layouts for different people. Approval runs through Approvals in Lists or Power Automate.

Leave requests are usually the first process a team moves from email into SharePoint, and for good reason. A request has the same few fields every time, one person decides, and the result belongs in a calendar. Done in a list, every request has a status, a history and an owner, and nobody has to search their inbox to find out whether Friday was approved.

This guide builds the whole thing in SharePoint Online: the list, a date check, a working-days count, the form, the approval, the calendar and the reminders. For each step we name what Microsoft 365 does on its own and where an extra tool helps, our own included. We tested the formulas on a SharePoint Online list in October 2026.

Five stages of a SharePoint leave request: 1 Form, where the employee fills in dates, leave type and a short note, built with the default list form, Lists forms, Power Apps or Virto Forms Designer App; 2 List, which saves the request as one item and checks the dates and counts working days with list validation and a calculated column; 3 Approval, where the manager approves or rejects with Approvals in Lists, Power Automate or content approval; 4 Calendar, where approved leave appears next to public holidays in a list calendar view or Virto Calendar App; 5 Reminders for approvers and the team with list rules, Power Automate or Virto Alerts & Reminder App

Fig. 1. How a SharePoint leave request moves from the form to the calendar

What a leave request form needs

Keep the form short. Every extra field is one more reason for people to send an email instead. The columns below cover a typical team; add your own only when someone will actually use the answer.

ColumnTypeWhy
EmployeePersonWho will be away. It can differ from the person who submits, for example when a manager files a request for someone.
Leave typeChoice: Vacation, Sick leave, Personal, UnpaidDrives colour in the calendar and reporting.
Start date, End dateDate and time, set to Date only, requiredThe period itself. A time part only causes off-by-one surprises in emails and flows.
Working daysCalculated, numberCounted from the two dates, so nobody types it.
ApproverPersonWho decides. Approval flows read the address from here.
StatusChoice: Pending, Approved, Rejected; default PendingWhat the calendar and the reminders filter on.
Approver commentMultiple lines of textThe reason for a rejection, written back by the approver or the flow.
NoteMultiple lines of text, optionalAnything the approver should know. Not a place for medical details (see Common mistakes).

Step 1: create the list

  1. On your team site, select New → List → Blank list and name it Leave requests.
  2. Rename the Title column to Request or hide it in the form later. A title such as “Vacation — Anna Keller” makes the list readable at a glance.
  3. Add the columns from the table. For Start date and End date, set Include time to No and turn on Require that this column contains information.
  4. Set the default value of Status to Pending.

Step 2: stop impossible dates and count working days

A validation rule for the dates

A column’s own validation can only look at that column, so a rule that compares two dates goes into the list settings:

  1. Open Settings → List settings → Validation settings.
  2. In Formula, enter =[End date]>=[Start date]
  3. In User message, write what the person should fix, for example “The end date cannot be earlier than the start date.”

Validation Settings page of a SharePoint list with the formula =[End date]>=[Start date] and the user message The end date cannot be earlier than the start date

Pic. 1. List validation settings with the date rule, on our test list

The rule is checked when an item is saved, whichever form saves it. On our test list a request ending before it started was refused. One caveat: in a Microsoft Lists form, a failed rule shows a generic error instead of your message (Microsoft Q&A), so make the date fields self-explanatory there.

A calculated column for working days

SharePoint calculated columns do not support the Excel function NETWORKDAYS. When we tried it, SharePoint answered “The formula contains a syntax error or is not supported”. This formula counts Monday to Friday between the two dates, both included:

=([End date]-[Start date]+1)-INT(([End date]-[Start date]+7-MOD(7-WEEKDAY([Start date]),7))/7)-INT(([End date]-[Start date]+7-MOD(8-WEEKDAY([Start date]),7))/7)

Create a column of type Calculated, paste the formula, and set The data type returned from this formula to Number with 0 decimal places. If your columns have other names, replace [Start date] and [End date]. We checked the formula on 63 date pairs, starting on every day of the week and lasting one to fourteen days, and it matched a day-by-day count each time.

SharePoint list with four leave requests and a Working days column: Vacation — Anna Keller from 11/2/2026 to 11/6/2026, 5 days; Vacation — Marco Rossi from 11/6/2026 to 11/16/2026, 7 days; Personal leave — Jana Novak from 11/12/2026 to 11/13/2026, 2 days; Vacation — John Doe from 12/21/2026 to 1/1/2027, 10 days

Pic. 2. The Working days column counts Monday to Friday; public holidays are not subtracted

Two limits to know. Public holidays still count as working days: the last row in Pic. 2 covers Christmas and New Year’s Day and shows 10. Half days need a separate number column that the employee fills in.

Step 3: choose the form

The list stays the same whichever form you pick, so you can start simple and change the form later without losing a single request.

The default list form (free)

Open any item and select Edit form → Edit columns. There you can hide and reorder columns and give a column a condition, so it appears only when needed (Microsoft Learn). For example, a Medical certificate column that appears only for sick leave:

=if([$LeaveType] == 'Sick leave', 'true', 'false')

The formula uses the column’s internal name, here LeaveType. Conditions do not work with multi-select columns, currency, calculated or managed metadata columns. Headers, footers and sections are possible with JSON form formatting. What the default form does not do: tabs, several columns side by side without JSON, and a different layout for different people.

Microsoft Lists forms

The Forms button in a list creates a separate, shareable form: each submission becomes a list item. Since the 2025 update these forms support conditional branching (Microsoft Tech Community). They are made for collecting new requests from people in your organization. Editing a request and approving it still happen in the list’s own form.

Power Apps

Integrate → Power Apps → Customize forms replaces the list form with a canvas app (Microsoft Learn). It can do almost anything: required-only-if rules, the current user filled in automatically, calculations on screen. The price is maintenance: the form is now an app someone has to understand and update. Licences also deserve a check. Standard connectors are covered by Microsoft 365, but in a Managed Environment every active user needs a premium licence (Microsoft Learn).

Virto Forms Designer App

Virto Forms Designer App redesigns the list’s own New, Edit and Display forms with drag and drop. Without code you get tabs, two or more columns, and a different form for different people or SharePoint groups: the employee sees a short request, the approver also sees the decision fields. A field can be hidden or made read-only in the form for people who do not need to change it. Who may change the data itself is still decided by the list’s permissions. Rules beyond the layout, such as showing a field based on another field’s value, are written in JavaScript in the designer.

Leave request form built with Virto Forms Designer App, with the tabs Request and Details: Title Annual leave, Employee Anna Keller, Department Sales, Leave type Vacation, Cost center SAL-400 EMEA, Start date 11/2/2026, End date 11/6/2026 and Days 5, laid out in two columns

Pic. 3. A leave request form in Virto Forms Designer App: the main fields in two columns, details on a second tab

The app installs from Microsoft Marketplace. Before the first form is published, an administrator allows custom scripts on the site; SharePoint turns that permission off again within 24 hours, and published forms keep working.

OptionCostLayoutDifferent form per groupLogicWho maintains it
Default list formIncludedOne column; sections with JSONNoShow or hide a column by formulaList owner
Microsoft Lists formsIncludedQuestion by questionSeveral forms per list, one link eachBranchingList owner
Power AppsIncluded with standard connectors; premium in a Managed EnvironmentAnyWith formulasPower Fx formulasSomeone who knows Power Apps
Virto Forms Designer AppPaid app per tenantTabs and columns, drag and dropYes, per user or SharePoint groupJavaScriptList owner for layout; a developer for rules

If you are replacing an old InfoPath leave form, our guide to InfoPath end of life explains how to sort forms by type before you rebuild them.

Step 4: add approval

There are three ways to approve a request in SharePoint Online. Pick one per list: Microsoft does not combine content approval with the newer Approvals in Lists (Microsoft Support).

Approvals in Lists

Open Integrate → Configure approvals and turn approvals on. A request is then sent with Request approval on the item; approvers answer in the Approvals app in Teams or directly in the list, and an Approval status column shows where each request stands. You can require one approver or all of them. Three things from Microsoft’s own list of limits matter for leave: approvers do not get access to the item automatically, editing an item cancels its approval in progress, and the columns show only the latest activity.

Request approval dialog in Microsoft Lists with the fields Name, Approver(s) and Details, the switch Require a response from all approvers, and the Submit and Cancel buttons

Pic. 4. The Request approval dialog in Microsoft Lists. Source: Microsoft Support

Power Automate

Microsoft’s own approval tutorial is a vacation request flow: when an item is created, Start and wait for an approval sends the request, the approver decides in email or in the approvals center, and the flow emails the employee and writes the decision back to the item (Microsoft Learn). Choose this when you need two approval stages, an HR step after the manager, or your own email wording.

Diagram of a vacation approval flow: a request for vacation is created in a SharePoint Online list; in Power Automate an approval request is sent in email and to the approval center, the approval decision is made, a decision email is sent and the SharePoint Online list item is updated

Fig. 2. A vacation approval flow in Power Automate. Source: Microsoft Learn

Content approval

The oldest option: List settings → Versioning settings → Require content approval for submitted items. New requests stay in a draft state until someone with approval rights approves them, and Draft item security decides who can see drafts, down to “only users who can approve items (and the author of the item)”. It has no notifications of its own, so pair it with a rule or a reminder. It is also the option Virto Calendar App works with: an approver can approve or reject a request straight from the event in the calendar.

For a broader comparison of approval tools, see our guide to automated approval workflows; for the approval options side by side with the ways to customize a list form, see our guide to SharePoint forms.

Step 5: show approved leave in a calendar

A list answers “what was requested”; a calendar answers “who is away next week”. In the list, add a Calendar view based on Start date and End date and filter it to Status = Approved. Our guide to building a PTO and vacation tracker in SharePoint covers the calendar view and colour coding step by step.

The built-in view shows one list. When leave has to be read together with public holidays and the team’s other calendars, Virto Calendar App overlays the leave list with national holiday feeds and other sources in one view, from a month to a whole quarter. The Employee Vacation Tracker use case shows the full setup.

Month view of Virto Calendar App in Outlook with approved leave coloured by leave type and United Kingdom and Germany public holidays in the same calendar

Pic. 5. Approved leave by type next to UK and German public holidays in Virto Calendar App

Step 6: notify approvers and remind the team

SharePoint alerts are gone: Microsoft turned them off in mid-July 2026 and points to Power Automate and rules instead (Microsoft Tech Community). For a leave list that leaves three options.

  • List rules. Integrate → Rules sends an email when an item is created or a column changes, for example to the approver for every new request and to the employee when Status becomes Approved (Microsoft Support). Rules cannot use multiple-lines-of-text columns and cannot send to a group address.
  • Power Automate. A scheduled flow can look for approved requests that start in three days and remind the team or the employee’s backup.
  • Virto Alerts & Reminder App. Virto Alerts & Reminder App emails approvers or posts to Microsoft Teams when a new request is added, and sends a reminder on a date in the list, such as a few days before the start date, without building a flow.

Common mistakes

Everyone can read everyone’s leave

Whoever can submit a request can usually open the list and read all the others. A form does not change that, whichever tool built it: hiding a field in a form does not hide the data in list views. The fix is in List settings → Advanced settings → Item-level permissions: set Read access to “Read items that were created by the user” and Create and Edit access to “Create items and edit items that were created by the user”.

Item-level Permissions in the list’s advanced settings: Read access set to Read items that were created by the user, and Create and Edit access set to Create items and edit items that were created by the user

Pic. 6. Item-level permissions: each employee sees only their own requests

Two consequences to plan for. Managers and HR who must see every request need a permission level that overrides this setting, such as Design or Full Control (Microsoft Learn). And the setting follows Created By: a request a manager files on someone’s behalf is invisible to that employee. Our SharePoint permissions guide explains permission levels in more detail.

Asking for the reason

“Sick leave” is enough for a manager to plan. A diagnosis or a doctor’s note does not belong in a list that a whole department can search. Keep the note optional, and keep the leave type, not the note, in the calendar.

Expecting the list to track balances

A list records requests; it does not know how many days each person has left. Remaining days need a second list with one row per employee and year, plus a flow that subtracts approved days, or an HR system that owns entitlements. Decide which before people start asking.

Missing overlaps

Validation checks one request at a time, so two people in a team of three can be away the same week. A calendar makes the overlap visible early; blocking it outright takes a flow that compares the new request with the approved ones.

FAQ

Does SharePoint have a leave request template?

Not a dedicated one. Microsoft’s list templates include Travel requests, Employee onboarding and six others, but none for leave (Microsoft Support). A leave list is quick to build from a blank list with the columns above.

Can I build a leave request form in SharePoint without Power Apps?

Yes. A list, the default form with conditional columns, a validation rule, a calculated column and Approvals in Lists cover a typical team. For tabs, side-by-side columns and a different form per group without Power Apps, a form designer such as Virto Forms Designer App adds the layout.

How do I count working days between two dates in SharePoint?

Use a calculated column with the formula in Step 2. NETWORKDAYS is not available in SharePoint calculated columns, and the formula does not subtract public holidays.

How do I stop employees from seeing each other’s requests?

Turn on item-level permissions in the list’s advanced settings so people read and edit only the items they created. Give managers and HR a permission level that can see all items.

Can managers approve from Teams or Outlook?

Yes. Approvals in Lists sends requests to the Approvals app in Teams. A Power Automate approval arrives by email and in the approvals center, and approvers can answer from either.

What replaced SharePoint alerts for leave notifications?

List rules for simple emails, Power Automate for anything conditional or scheduled, or a reminder app such as Virto Alerts & Reminder App.