# Tutoring schedule and attendance in SharePoint

> For the full documentation index, see https://250highstreet.com/llms.txt

> Replace loose tutoring sheets with two SharePoint lists: students, and sessions with tutor, attendance, make-up status and parent notice. Plain steps.

Make two SharePoint lists, "Students" and "Sessions". Each session row picks a student with a lookup column and holds the date, tutor, attendance, make-up owed and parent told. Three saved views show today, make-ups owed and parents not told, and a calendar view shows the schedule. This list is a record of what happened. It does not set your policies on missed sessions or refunds. Exact names may differ on your screen.

## Why loose sheets fall short

A tutoring program can run on whatever each tutor brings: a paper roster, a notes app, a shared spreadsheet, a text thread with a parent. It works until someone needs a number or an answer.

Signs it is slipping:

- A tutor cancels a session and the office does not hear about it.
- A student misses a session, a make-up is promised, and no one writes it down.
- Two tutors book the same student on the same day.
- A parent says "no one told me" and there is no record of who sent a notice.
- At the end of the month, someone adds up sessions from several sheets.

A list gives every tutor and the office one place to look. It does not make anyone enter data. A person still has to type each row.

## What you are building

You will build two SharePoint lists:

- "Students": one row per student, with a first name and a grade.
- "Sessions": one row per session, with the student, tutor, date, time, status, make-up note and parent notice.

In "Sessions", a lookup column reaches into "Students", so staff choose a student from a dropdown and never retype a name. Every row then carries identical spelling.

Lists are new to you? Start with "[Replace a spreadsheet tracker with a SharePoint list](/guides/replace-spreadsheet-with-sharepoint-list/)". A close cousin that logs arrival and departure times is "[Daycare attendance and pickup log in SharePoint](/guides/daycare-attendance-tracker-sharepoint/)". Basic list creation is covered there, so I skip it here.

## Privacy first: this is information about students

Students may be minors, so decide who sees the lists before the first row goes in. The lists need two things from a child: a first name and a grade. Scores, health notes, learning accommodations, addresses and birthdays have no job in a scheduling tool, so they never get a column.

Our advice, not a Microsoft rule: a school, program lead or attorney is the right source for how long session records must be kept and where. The answer varies by location and program type, and this guide states no rule.

Access is the part people get wrong. A view only changes what is displayed, and anyone who can open the list can switch to another view. Real limits come from permissions. Microsoft's help page on customizing permissions for a list or library says: "you will need to break permission inheritance before you can assign unique permissions." It also says: "we highly recommend using the built-in SharePoint groups for communication sites." And it says: "While it's not recommended, breaking inheritance and setting item level permissions is a supported scenario." Your admin can tell you which route fits your site.

## Step 1. Create the "Students" list

Microsoft's help page on creating a list says: "Select Create. The blank list you just created is open and ready for you to use." Before that, the page has you select "+ New", then "List", choose to start a list from scratch, and "Enter a Name for the list". Name the list "Students". Then set up these columns:

1.  Title (Single line of text). Rename the Title column to "First name". Type only the first name. If two students share a first name, add a short number, such as "Sam 2". Ask your program lead before you use a last name or initial.
2.  Grade (Single line of text). Type the grade, such as "4". Grade stays text so "Sessions" can show it beside each student. Microsoft marks "Choice" as unsupported for lookup columns.

Add one row for each student. Add only what you need, and update the list when a student leaves.

## Step 2. Create the "Sessions" list

Create a second blank list named "Sessions". Set up these columns:

1.  Title (Single line of text). Rename it to "Subject" and type the subject, such as "Reading".

2.  Student (Lookup). In the list, select "Add column", then "Lookup". Microsoft's help page says: "In the list where you want the Lookup column, select Add column \> Lookup." Pick "Students" as the source and "First name" as the column. Select "More options" and tick "Grade". Microsoft says: "To display more lookup information from the source list in more columns, select More options." Microsoft also says: "Lookup columns should be created and used within the same site." Make both lists on the same site.

3.  Tutor (Person). Each session has one tutor.

4.  Session date (Date and Time, date only). One row per session.

5.  Start time (Single line of text). Type the time, such as "3:30". Plain text is a simple choice for a time-only value.

6.  Status (Choice). Use numbers in front so the order stays the same in your views:

    1 Scheduled

    2 Attended

    3 Student absent

    4 Tutor canceled

    5 Make-up needed

    6 Make-up done

7.  Make-up note (Multiple lines of text). Write the new date once it is agreed.

8.  Parent notified (Yes/No). Set the default value to No in the column settings. Change it to Yes once someone has told the parent about a cancel, a miss or a make-up date.

Our advice, not a Microsoft rule: one row per session keeps counts simple. If a session is moved, change the date on the same row and add a note, or add a new row and set the old one to "4 Tutor canceled". Pick one method and use it every time.

## Step 3. Book a session

The office or the tutor opens "Sessions" and selects "New". They pick the student, the tutor, the date and the start time, set the status to "1 Scheduled", and save. Each session gets one row.

Two habits keep the list clean:

- One person books sessions for each tutor. Our advice, not a Microsoft rule: a single owner is simpler to check than a shared sheet.
- Book it when you agree on it, not later from memory.

## Step 4. Mark attendance

Attendance is a status change on the session row that already exists. Nobody adds a second row for the same session.

When the session ends, the tutor finds the row and picks the outcome in Status. On a phone, that happens in the web browser from [https://office.com/launch/Lists](https://office.com/launch/Lists); Microsoft retired the Lists phone apps in mid-November 2025, as "[Microsoft Lists phone app is gone: what to use now](/guides/microsoft-lists-mobile-app-retired/)" explains.

- "2 Attended": the student was there.
- "3 Student absent": the student did not show.
- "4 Tutor canceled": the tutor could not hold the session.

When a replacement session is owed, set the original row to "5 Make-up needed". Once the replacement has taken place, set that original row to "6 Make-up done". Example: Session 41 for Student 12 reads "3 Student absent", then "5 Make-up needed", and later "6 Make-up done" with the new date typed in the Make-up note.

Keep the history truthful. If an entry was wrong, fix the value and leave a note on that row. Deleting the row erases the evidence.

## Step 5. Build the working views

Each view answers one question a tutor or the office asks. Build them in the order below.

"Today" shows the sessions on the calendar right now. Open "Sessions", open the view menu, and choose "Edit current view" to reach the classic view editor. Under "Filters", choose "Show items only when the following is true", pick Session date, choose "is equal to", and type \[Today\]. Show Student, Grade, Tutor, Start time and Status, then save the view as "Today".

A \[Today\] filter set from a column header will not work. Microsoft's filtering page sends it to the classic view editor and uses "Due Date is equal to \[Today\]" as its example.

The next two views need only a name, a filter and a sort:

- "Make-ups owed": Status is equal to "5 Make-up needed", sorted by Session date. This is the booking queue for replacement sessions.
- "Parent not told": Parent notified is equal to No, and Status is not equal to "1 Scheduled". Sorted by Session date, the oldest silence comes first.

Our advice, not a Microsoft rule: set blank and "is not equal to" filters in the classic view editor too. If you want to avoid it, filter on each status you do want to see instead.

View 4: "Week" calendar. Microsoft's help page on calendar views lists these steps: "On the upper right-hand side of the command bar, select +Add view." Then "Under View name, enter a name." Then "Under Show as, select Calendar as the type of view you want to create." Then "Under Start date and End date, select which date-based column or columns should apply." Pick Session date, then select Create. Microsoft says: "The items in the list are now displayed as calendar events." You should see each session as an event on its day, labeled with its Subject, and the details of a day in the panel on the right when you select it.

@@KEEP@@

## Step 6. Check at the end of each day

A session list goes stale at the two edges: sessions that never get an outcome, and notices that never get sent. Two views expose both.

"Today" is the first check. A row still reading "1 Scheduled" after the hour has passed means the tutor never recorded what happened. Only the tutor knows, so that person fixes the row.

"Parent not told" is the second check. Every cancel, absence or new make-up date should clear out of it once the parent hears. A row that lingers is a family waiting on news.

"Make-ups owed" does not need a daily look. It works as a queue, so the office can book from it whenever it has room on the calendar.

There is one gap no view can close. A list cannot show a row that does not exist, so a session that was held but never booked stays invisible until a person notices.

## Sending the parent notice

This list records whether a parent was told. It does not send the notice. One way to start is for the tutor or the office to send the message from their own email, then tick "Parent notified". Set your own rule for how soon a notice goes out and write it where staff can see it.

If you later want an automatic message, that is a Power Automate flow. See "[Send a reminder before a due date in a SharePoint list](/guides/send-reminder-before-due-date/)" for the idea. If you build a flow that reads "Sessions" with a Get items action, turn Pagination on and set a Top Count.

## What to avoid

Trouble with this tracker starts in the status and notice fields, so those come first.

- Typing Status as free text. "Absent", "absent" and "no show" then count as three outcomes. Use the numbered Choice values.
- Skipping the No default on Parent notified. Set it in Step 2 so a missing notice shows up.
- Deleting a row to fix a typo. The history goes with it. Edit the row and add a note.

Two structural traps come next. Making Grade a Choice column breaks the grade display in "Sessions", since lookups reject Choice columns. And two booking methods for one tutor leave gaps, so name one owner per tutor.

Finally, a site shared with the whole organization exposes every student row. Ask your admin who can open it today, and set a deletion date for old rows with your school or attorney.

## Honest limits

The list stores what a person entered. It cannot confirm that a session happened or who attended, and it holds no opinion on make-up credit, refunds or cancellation windows. Those policies are yours to write.

Double bookings are not caught automatically. Our advice, not a Microsoft rule: sort "Sessions" by Tutor, then Session date, and scan for two rows sharing a tutor and start time. An automatic duplicate check would be separate work.

Lookup columns carry a constraint: Microsoft says lookup columns should be created and used within the same site, so both lists live together. And the whole thing rests on people typing. If tutors skip marking attendance, the list is wrong, so give each tutor one booking owner and require status updates the same day.

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### How do I build a free tutoring schedule template in SharePoint?

Create a Students list and a Sessions list in your own Microsoft 365 site, then add the columns listed in Steps 1 and 2. A lookup column links each session to a student.

### How do I make a tutoring calendar?

In the Sessions list, select +Add view, name it, choose Calendar under Show as, and pick Session date as the date-based column. Microsoft says the items then show as calendar events.

### Can this hold tutoring lesson plans?

No. It records who was booked, who came, make-ups owed and whether the parent was told. Keep lesson plans in a document library or the place you already use.

### How do I track make-up sessions?

Use a Status choice such as "5 Make-up needed", and a "Make-ups owed" view. When the new session is done, change the old row to "6 Make-up done" and write the new date in the make-up note.

### Can I show the grade next to each student in the sessions list?

Yes, if Grade is a Single line of text column in "Students". When you add the Student lookup, select "More options" and tick Grade. Microsoft lists Choice columns as unsupported for lookups, so a Choice column will not work here.

## Sources

- [Microsoft Support, Create list relationships by using lookup columns](https://support.microsoft.com/en-us/sharepoint/lists/data-and-lists/create-list-relationships-by-using-lookup-columns)
- [Microsoft Support, Use filtering to modify a SharePoint view](https://support.microsoft.com/en-us/office/use-filtering-to-modify-a-sharepoint-view-3d8efc52-0808-4731-8f9b-3dfaeacea3d4)
- [Microsoft Support, Customize permissions for a SharePoint list or library](https://support.microsoft.com/en-us/sharepoint/lists/sharepoint-sharing-and-permissions/customize-permissions-for-a-sharepoint-list-or-library)
- [Microsoft Support, Create a list](https://support.microsoft.com/en-us/sharepoint/lists/data-and-lists/create-a-list)
- [Microsoft Support, Create a calendar view from a list](https://support.microsoft.com/en-us/sharepoint/lists/create-a-calendar-view-from-a-list)
- [Microsoft Support, Microsoft Lists mobile apps retirement](https://support.microsoft.com/en-us/sharepoint/lists/microsoft-lists-mobile-apps-retirement)
- [Microsoft Support, Create list relationships by using unique and lookup columns](https://support.microsoft.com/en-us/article/create-list-relationships-by-using-unique-and-lookup-columns-80a3e0a6-8016-41fb-ad09-8bf16d490632)

## Related guides

- [Daycare attendance and pickup log in SharePoint](/guides/daycare-attendance-tracker-sharepoint/)
- [A volunteer schedule for a church or club in SharePoint](/guides/church-volunteer-schedule-sharepoint/)
- [A field trip permission form tracker in SharePoint](/guides/field-trip-permission-forms-tracker/)

Source: https://250highstreet.com/guides/tutoring-schedule-attendance-sharepoint/
