Week at a glance office attendance planner for CharlieHR

See who is actually in each office on any given day, with time off already subtracted, so you can plan desks, lunches, and in person sessions.

App
CharlieHRSlack BotGoogle SheetsHR & PeopleOperationsResearch & MonitoringData Sync
PromptCreate

Build me a week at a glance office attendance planner so I can tell who is actually in each office on any given day. I am the office manager, and the recurring question I need answered is "who is in on Thursday" for desks, lunches, and deciding which day to hold in person sessions. This is a browsing and planning surface I open and filter, not an alert that gets pushed to me.

The main surface is a week grid with a row per person and a column per weekday, Monday through Friday. I can move forward and back a week at a time and jump to a specific date, so I can plan several weeks ahead. Each cell shows that person's resolved working location for that day: the office they are in, working from home, away on leave, or not a working day for them.

Load the people from CharlieHR's List Team Members, the teams from List Teams, and the offices with their details from List Offices. Resolve where each person is working using List Working Locations, which returns either the active locations or the resolved assignments for a given date. Because it is date scoped, the handler must pass a date per column rather than fetching once and reusing the result across the whole week. Use Get Team Member Working Location when I drill into a single person on a single date.

The leave subtraction is the load bearing part of this app, so get it right. Pull approved time off for the visible range from List Leave Requests and show those people as away rather than in the office. Someone assigned to the London office who is on holiday is NOT in the office, and a naive build will get this wrong and inflate every headcount. Leave always beats the assigned working location in the cell, and anyone away is excluded from the office counts.

Part time patterns come from List Team Member Working Weeks. If someone does not work Fridays, that cell should read as a non working day, visually distinct from being on leave and distinct from an empty desk, and it should not count against the office headcount or look like an absence.

Above the grid, give me a headcount per office per day, counted after leave and non working days are removed. Let me set and save a capacity number per office, for example the number of desks it actually has, and persist those numbers in the app so they survive a reload. Compare each day's count against that capacity and make it obvious which days we overflow and which days we sit half empty. I also want to filter the whole grid down to a single office or a single team, and search for a person to see where they are on a specific date.

Two share actions. A button that posts the week's in office roster to a chat channel using Slack Bot's Send a Message, grouped by office and day and readable as plain text. And a button that exports the grid to a Google Sheet using Append Values, one row per person per day with their office, status, and team, for whoever orders lunches and manages desks.

Technical constraints from the CharlieHR API to respect. When filtering by date, start_date and end_date must be sent together in YYYY-MM-DD format or the filter is silently ignored. List endpoints cap per_page at 25 and paginate via meta.next_url, so page through until the results are exhausted rather than assuming one page holds the whole company. Every response is wrapped in a success, data, and meta envelope, so read the payload from data. CharlieHR is read only here, so the app cannot set or change anyone's working location. It visualizes and exports only, and where someone is working is still edited in CharlieHR itself.

Fetching a week for the whole company means a lot of date scoped calls, so load the grid efficiently, show a sensible loading state per week, and cache the week I am looking at so switching filters does not refetch everything.

What does this prompt do?

  • Shows a week grid with a row per person and a column per weekday, so you can tell at a glance where everyone is working on any given day
  • Subtracts approved time off automatically, so someone assigned to the London office who is on holiday shows as away instead of padding the headcount
  • Counts heads per office per day against a capacity you set, highlighting the days you overflow and the days you sit half empty
  • Lets you filter to one office or team, search a person to see where they are on a specific date, post the week's in office roster to a chat channel, and export the grid to a spreadsheet

What do I need to use this?

  • A CharlieHR account with admin access, so the planner can read your people, teams, offices, working locations, and time off
  • The office capacity numbers you want to plan against, for example how many desks each office actually has
  • Optional: a Slack workspace, if you want to post the week's in office roster to a channel
  • Optional: a Google account and a spreadsheet, if you want to hand the grid to whoever orders lunches and manages desks

How can I customize it?

  • Set a different desk capacity per office, and change what counts as overflowing or half empty
  • Choose which channel the weekly in office roster gets posted to, and how the message is worded
  • Pick which team or office the planner opens on by default, and which spreadsheet the export appends to

FAQs

Does this count people who are on holiday as being in the office?
No, and that is the whole point. Anyone with approved time off during the week is shown as away rather than at their usual office, so the headcounts reflect who will really be at a desk instead of who is nominally assigned to that location.
How is this different from a daily who's out message?
A daily message pushes you one summary each morning about who is absent. This is a planning surface you open and browse, covering the whole week and future weeks, focused on presence and office capacity so you can decide which day to hold an in person session or how many lunches to order.
Can I change someone's working location from the planner?
No. The planner reads from CharlieHR and does not write back to it, so it visualizes and exports only. To change where someone is working, update it in CharlieHR and the grid will reflect it.
Does it handle part time people who only work some days?
Yes. It reads each person's working week pattern, so someone who does not work Fridays shows as not working that day rather than being counted as absent or as an empty desk.
Can I look at more than one week?
Yes. You can move forward and back between weeks and jump to a specific date, so you can plan ahead rather than only seeing today.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Influencer campaign roster board with AI creator briefs

Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.

HypeAuditor
Google Sheets
Notion
App

Stop guessing how many people are coming in on Thursday.

Open one screen that shows who is really in each office this week, with time off already taken out, ready to share with whoever books desks and orders lunch.