How do I make a time-off request form in Notion?

Make a Notion time off request form: a leave database with dates, leave type and approver, a workspace-only form view, and a one-click approval button.

Nookesh KarriNovember 13, 20267 min read
Light cover card with the title 'How do I make a time-off request form in Notion?' in dark text and a blue accent bar

To make a time-off request form in Notion, build a database with properties for the requester, first day off, last day off, leave type, reason and approver, then add a Form view. Share the form only with your workspace so every request keeps the person’s name. Add a Status property and an approval button, and a calendar view shows who is out.

The form takes ten minutes. The choices that matter are how you share it and how a manager says yes.

What a Notion time off request form should ask

A Notion time off request form should collect enough for a manager to decide without a follow-up message: who, when, what kind of leave, and who covers the work. Anything else slows people down.

Notion’s forms help page says each question is connected to a database property, and the question type “is the equivalent of the property type”. So plan the database first:

Form question Question type Property in the database
First day off Date Date
Last day off Date Date
Leave type Multiple choice Select (Vacation, Sick, Personal, Unpaid)
Half day? Multiple choice Select (No, Morning, Afternoon)
Reason or note Long text Text
Who covers your work? Short text Text

Leave out a name question. If you share the form inside your workspace, Notion records the person for you (more on that below).

Step 1: create the leave requests database

The leave requests database holds one page per request. Create a full-page database called “Time off” and add the properties from the table.

Then add the properties only your team fills in:

  1. Status, with Requested, Approved and Declined.
  2. Approver, a Person property. Notion’s database properties page says it tags “a person or group from your Notion workspace”.
  3. Created by, which records who created the item and can’t be edited. If you start the form from scratch instead, Notion adds a Respondent property automatically.
  4. Days, a formula, covered in step 4.

Keep Status, Approver and Days off the form. Employees shouldn’t approve their own leave.

Step 2: add the form view and share it inside your workspace

The form view is what employees fill in. In the database, select + next to your views, choose Form, and add a question for each property in the table. Mark both dates and the leave type as Required.

Notion gives you three choices under Who can fill out:

  • Anyone at your workspace with link: members can submit, and their names can be recorded.
  • Anyone on the web with link: people outside Notion can submit, but the responses are automatically anonymous.
  • No access closes the form.

For time off, pick the workspace option and turn Anonymous responses off. Anonymous leave requests are useless, since you can’t tell whose calendar to block.

With anonymous off, set Access to submission to Can view. Each employee can then open the request they sent and watch its Status change, so nobody has to ask “did you see my request?” in Slack.

On the submit screen, change the confirmation body to say how long approval usually takes. You can also get an email copy of each submission there.

Step 3: add an approval button

An approval button lets a manager approve a request in one click. Notion’s buttons help page says the Edit pages in action “will edit pages and properties in a database of your choosing”.

  1. Add a Button property called Approve.
  2. Add the action Edit pages in, pick this page, and set Status to Approved.
  3. Add a second action, Send notification to, and point it at the Created by property with a message like “Your time off is approved.”
  4. Make a matching Decline button.

The notification action can reach up to 20 people, or the people in a People property. Buttons work on all plans, but “Send mail to” and “Send webhook” need a paid plan. Anyone with Full access or Can edit permission can click a button, so keep edit access to managers.

Then add a view called To review, filtered to Status is Requested. That’s the manager’s inbox.

Step 4: count the days off with a formula

A Days formula turns two dates into a number you can total later. The formula reference says dateBetween returns the difference between two dates in a unit such as days.

Add a formula property called Days:

dateBetween(prop("Last day off"), prop("First day off"), "days") + 1

The + 1 counts both the first and last day. A request from Monday to Friday returns 5.

Two catches. This counts calendar days, so a Friday-to-Monday request returns 4 even though only two are workdays. Notion has no built-in workday function, so either ask people to request work weeks only or have the approver check the count. Half days also need a manual tweak.

Notion’s Date property can hold a range when you switch on End date, and dateStart and dateEnd read each side. The forms help page doesn’t say whether a form question shows that end date, though. Test it from a member account. If it doesn’t, two date questions always work.

Step 5: show who is out on a team calendar

A calendar view turns approved requests into a team absence calendar. Notion’s calendar help page says a calendar needs a Date property, and you can switch it to show weeks instead of months.

Add a Calendar view, set it to the First day off property, and filter it to Status is Approved. Name it “Who’s out”. Pin it to your team home page.

With two separate date questions, each card sits on its first day only. If your form saves a date range, set the calendar to that property and the card stretches across every day off.

What about PTO balances and policy?

Notion won’t track leave balances by itself. To show “8 vacation days left”, you need a People database, a relation from each request to the person, and a rollup that sums Days for approved Vacation requests.

The balance is a policy number, not a law. In the US, the Department of Labor says the FLSA doesn’t require payment for time not worked, such as vacations, sick leave or holidays. Those benefits are an agreement between employer and employee. Put your own allowance in the People database and link the written policy in the form description. This isn’t legal advice, and some states and countries do require paid leave.

Where a native Notion leave form falls short

The native form works for a team that already lives in Notion. It falls short in three places.

  • Branching by leave type, such as asking for a doctor’s note only for sick leave, needs conditional logic. Notion offers that only on Business and Enterprise plans, and only on multiple choice questions.
  • Contractors and freelancers outside your workspace can only use the web link, and then the response is anonymous. Add a name question if you share it that way.
  • Sensitive leave like medical time sits in a database many people may see. Keep it in a separate, restricted database.

My take: for a small team, the workspace-only form with one approval button is enough. Skip balances until someone asks for them.

If you need branching on a cheaper plan, or a form people outside Notion can fill in with their name, nDBForms has logic rules on Pro and a Notion people question type. For related set-ups, see the employee onboarding form, Notion form automation, and Slack notifications for Notion forms.

FAQ

Can I make a time-off request form in Notion for free?

Yes. Notion says all members on all plans can create and use forms, and buttons work on all plans. Conditional logic and some button actions need a paid plan.

How do employees see if their time off was approved?

Share the form only with your workspace, turn off anonymous responses and set Access to submission to Can view. Each person can then open their own request and see the Status.

Can a Notion form collect a date range?

A Date property can hold a range when End date is switched on, but Notion’s forms help page doesn’t say whether a form question shows the end date. Two separate date questions always work.

Does Notion track PTO balances?

Not on its own. You need a People database with a relation to the requests and a rollup that sums the approved days for each person.

Sources