PTO tracking in Microsoft Teams

PTO tracker for Microsoft Teams, built for your daily work

Request time off in a private Teams chat, approve or deny from a card, and see who's away in your team channel. Employees check balances without opening a separate portal; admins manage policies and reports in Cabana's web app.

$4 per user per month · No credit card

Request in a private chat. Approve from a card. Keep the team posted every morning.

1RequestPrivate chat
request

Request time off

Leave type

Vacation

Start date

Nov 9

End date

Nov 13

Note

Sam is covering support

Submit
2ApproveManager's chat

Cabana APP

New PTO request from Maya Patel

Employee

Maya Patel

Leave type

Vacation

Dates

Nov 9 to Nov 13

Days

5

Note

Sam is covering support

ApproveDenyOpen in Cabana
3Everyone knowsGeneral channel

Cabana APP

🌴 Out today — Monday, Nov 9

  • • Maya Patel
  • • Chris Okafor

Posted each morning, plus a Monday digest of the week ahead. Names only — no notes or balances.

Cabana connects to your Microsoft 365 directory to link employees and keep requests attached to the right people.

How to track vacation in Teams

Use a private Cabana chat for requests and your team channel for shared availability. That gives employees a clear place to submit dates, managers a decision card, and colleagues a way to see approved absences without exposing personal balances to the channel. Here's the everyday workflow.

  1. Request in chat. Open Cabana and send request, or choose Request time off on the welcome card. The form asks for Leave type, Start date, End date (optional — defaults to start date), and Note. Choose Submit when ready.
  2. Decide from the card. The assigned approver receives New PTO request from [employee name] with the employee, leave type, dates, day count, and any note. Approve and Deny record the decision inside Teams. Open in Cabana opens the request in the web app.
  3. See who's away. Final approval puts the time off on Cabana's team calendar. Send whosout for today's approved absences, or mention @Cabana whosout in a channel where the bot is installed. Scheduled channel posts keep the team informed on the relevant dates.

The form becomes a submission confirmation. A decision message returns to the personal chat after review.

Teams commands and card actions

Share this reference with employees before their first request. Type commands as ordinary messages in the personal Cabana chat. In a channel, mention the bot first for shared commands. Requests and balances stay in private chat; asking for either in a channel gets instructions to open Cabana privately.

What you type or clickWhat happens
request in private chatOpens Request time off.
balance in private chatShows Your leave balances for the current year, by leave type.
whosout in private chatShows Who's out today, or Everyone is in today! when nobody is away.
helpShows Cabana commands and supported options.
new, balances, ?Accepted aliases for request, balance, and help.
who's out, whos out, whoisout, who is out, outAccepted aliases for today's who's-out list.
@Cabana whosout in a channelPosts today's approved absences to the conversation.
@Cabana help or a bare bot mentionShows help.
Request time off / My balance on the welcome cardOpens the request form / returns your balances in private chat.
Submit on the request cardSubmits the request and replaces the form with a confirmation.
Approve / Deny on an approval cardRecords the assigned approver's decision and updates the card.
Open in Cabana on an approval cardOpens that request in the web app.
Open Cabana on the welcome cardOpens the Cabana web dashboard.
Help center on the help cardOpens Cabana's help center.

An unrecognized message returns help. Use these commands to open a form; Cabana doesn't interpret sentences containing dates.

Manager approvals in Microsoft Teams

Decide from the card when the request is ready for review. The employee's dates, leave type, and day count are right there, along with any note they submitted. After you act, the card shows the decision and your name, and Open in Cabana remains available for the request details.

Use the web request page for a specific denial reason. The Teams Deny button records “Denied from Microsoft Teams.”

A configured approval chain still applies: each manager decides their assigned step, and the employee's time off becomes approved after the final step. The employee then receives the outcome in their personal chat.

Keep manager assignments current in Cabana. When an approver is on approved full-day leave, Cabana can send the decision to their designated approval delegate or up the reporting line, with an available admin as a fallback. The notification can explain why the request landed with the covering approver. Read how approver-away routing works for the coverage settings.

Channel announcements for who's out

Choose a channel your team already reads, then enable the updates that help you plan coverage. Out today posts the day's names; Monday digest lists approved absences across the working week. These are scheduled bot posts to your selected channel, separate from an employee's private approval messages.

Add Cabana to the team, then open Settings → Integrations in Cabana. Under Channel Announcements, choose Channel, optionally filter by department, turn on either or both schedules, and select Save. Posts use your organization's time zone and skip an empty list.

A daily card says 🌴 Out today with the date and names. The Monday card adds each person's days within the week. Neither includes request notes or balances.

Use @Cabana whosout when you need an answer between scheduled posts. Approval makes leave eligible for the relevant announcement; it doesn't trigger an immediate channel post.

Set up your time off app for Teams

Start with a Cabana admin and your Microsoft 365 admin. Connecting the directory and installing the app are separate steps: the connection links your people, the personal installation enables their chat workflow, and adding Cabana to a team makes its channels available for announcements. Use this sequence for rollout.

  1. Connect Microsoft Teams. A Cabana admin opens Settings → Integrations and selects Connect on the Microsoft Teams card.
  2. Approve directory access. Your Microsoft 365 admin completes Microsoft's consent screen. This lets Cabana read the employee directory; you don't need to prepare a spreadsheet of people.
  3. Sync employees. Back in Cabana, select Sync Now. Cabana links existing people by their directory identity or email and adds new directory users as invited employee records. Confirm their manager assignments in Cabana.
  4. Add Cabana in Teams. Each employee and approver adds the Cabana app and sends help in a private chat. That opens the conversation Cabana uses for requests and decisions. If your organization restricts apps, your Microsoft 365 admin approves Cabana once for everyone.
  5. Add the team channel. In Teams, use Apps → Cabana → Add to a team. Return to Cabana, select the channel under Channel Announcements, choose your updates, and select Save. Test a request and manager decision before rolling out to everyone.

For your IT admin: directory sync requests Microsoft Graph's application permission User.Read.All, granted through admin consent. It reads directory profiles to create and link employees. The bot is installed separately in personal and team scopes; channel announcements are sent as the bot. A Cabana admin starts the connection, and an authorized Microsoft 365 admin grants the directory access.

Choose a tracker when a shared calendar needs too much upkeep

Use a shared Outlook calendar when you mainly need to display agreed dates. Use a dedicated tracker when you need the request, approval, and balance to stay together. A Teams list can record your process too; the difference is how much of that process your office manager has to maintain.

TaskCabanaShared Outlook calendar aloneManually maintained Teams list
Request datesPrivate request cardAgree dates separately, then add an eventEmployee or admin adds a row
Record approvalAssigned approver's decisionTrack the decision separatelyMaintain status and approver fields
Calculate remaining PTOPolicy-based balances, including pending requestsSeparate balance recordMaintain calculations or another record
Tell colleagues who's outOn-demand command and scheduled postsOpen the shared calendarOpen or filter the list
Handle policy changesAdmin updates the policy in CabanaMaintain rules outside the calendarUpdate the process and calculations

Custom automation can extend a list or calendar. Choose that route when someone on your team will own its rules and upkeep. Cabana suits a team that wants a dedicated PTO process with decisions in chat.

Put your team's PTO in Cabana

Choose Cabana for a daily Teams workflow connected to PTO tracking software for small teams. Admins handle accruals, carryover, leave types, and reports in the web app; employees request leave and managers decide it in Teams.

Cabana costs $4 per user per month, with a $20/month minimum. There's one plan and a 30-day free trial with no credit card. A 20-person team pays $80/month.

Start your 30-day free trial.

Frequently asked questions

Can employees request PTO without opening the web app?

Yes. Send `request` in a personal Cabana chat, or choose **Request time off** on the welcome card. Choose the leave type and start date, optionally add an end date and note, and select **Submit**. Cabana confirms submission in the chat and sends the request through the configured approval process.

Can a manager approve time off in Teams?

Yes. The assigned approver can select **Approve** or **Deny** on the request card inside Teams. Cabana records their decision and updates the card. If the request requires another approval step, that step still follows. The employee receives the outcome in their personal Cabana chat after the request is decided.

Can I check my PTO balance privately?

Yes. Send `balance` in your private Cabana chat or choose **My balance** on the welcome card. Cabana returns your current-year figures by leave type, with pending requests included. Unlimited types show days used rather than a remaining allowance. In a channel, Cabana directs balance requests back to private chat.

Why does Cabana say my account isn't linked?

Your Teams identity hasn't been linked to a Cabana employee record. Ask your Cabana admin to re-run the directory sync in **Settings → Integrations** and confirm the employee email matches the directory. Once linked, send `help` privately to establish the chat used for future approval and decision messages.

Does Cabana put approved PTO in Outlook?

Yes, through a private, read-only calendar subscription. Copy the feed URL from Cabana's **Settings → Integrations**, then use Outlook's **Add calendar → Subscribe from web**. Approved leave appears as all-day events. Outlook controls refresh timing, and edits don't flow back into Cabana. See calendar feed setup for details.

Can I request a half day from the Teams card?

Use Cabana's web request form for a half day. The current Teams card has leave type, start date, optional end date, and note, without an AM or PM control. Requests submitted in the web app can still reach the assigned approver in Teams and send the employee a decision there.

Does Microsoft Teams already support time-off requests?

Yes. Microsoft's Shifts app includes time-off requests for frontline workers, manager decisions, and request status. Evaluate Shifts first if your process centers on shift scheduling. Cabana is a dedicated PTO tracker for teams that want balances, leave policies, and chat-based requests connected to their time-off records.

Is Cabana free for Microsoft Teams?

Cabana is free to try for 30 days without a credit card. There is no permanent free tier. After the trial, one plan costs $4 per user per month with a $20/month minimum. Directory connection and the Teams workflow are part of that plan, rather than separate products to purchase. Keep PTO tracking in Microsoft Teams handy for onboarding. For process planning, use the PTO policy guide for small business and Free PTO accrual calculator.