Timesheet EditorUser manual
All manuals
CCI Suite · Managers

Timesheet Editor

The Timesheet Editor lets a manager load a technician's monthly timesheet from SharePoint, correct or add entries, and save it back in the same format.

Status CurrentUpdated November 2026Microsoft 365 · Web browser

01Overview

The Re-Lax Timesheet Editor is a desktop web application that allows managers to load, review, correct, and save technician timesheets stored on SharePoint. It is intended as a companion tool to the Re-Lax Time Tracker used by field technicians.

Key capabilities:

  • Load any technician's timesheet for any month directly from SharePoint
  • Edit existing entries — correct dates, times, client, description, or service type
  • Add new entries that were missed or need to be added manually
  • Delete entries that were logged in error
  • Automatic after-hours detection (weekends, US holidays, before 6 AM / after 7 PM)
  • Hours Exact, Hours Billed, and Hours Paid recalculate automatically as you edit
  • Save the corrected timesheet back to SharePoint in the same format techs produce

Who should use this tool? Managers and billing administrators who need to correct or supplement technician-submitted timesheets before invoicing.

02Requirements

Before You Begin

FieldDescription
O365 AccountA Re-Lax Microsoft 365 account (used to sign in and access SharePoint)
Operating SystemWindows 10/11 or macOS — desktop only, mobile not supported
BrowserMicrosoft Edge or Google Chrome recommended; Firefox supported
SharePoint AccessRead/write access to the Public → Billing → Contractors SharePoint folder

Files Needed

The following files should be kept together in the same folder:

  • TimesheetEditor.html — the main application
  • Launch TimesheetEditor.bat — Windows launcher (double-click to start)
  • Launch TimesheetEditor Mac.command — macOS launcher (double-click to start)
  • server.ps1 — local web server script (used automatically by the Windows launcher)
Note

Do not move TimesheetEditor.html to a different folder from the launcher files. They must stay together.

03Launching the Application

Windows

  1. Double-click Launch TimesheetEditor.bat

A black server window will appear with the message "Timesheet Editor Server." This window must stay open while you use the app.

  1. Your browser opens automatically

The app opens at http://localhost:8080/TimesheetEditor.html. If it does not open automatically, type that address into your browser manually.

  1. When finished, close the server window

Closing the "Timesheet Editor Server" window shuts down the local web server. You can then close the browser tab.

Note

If the browser shows "This site can't be reached," the server window may not have started. Right-click the .bat file and choose Run as Administrator, then try again.

macOS

  1. First-time only: make the launcher executable

Open Terminal and run:

chmod +x "/path/to/Launch TimesheetEditor Mac.command"

  1. Double-click Launch TimesheetEditor Mac.command

Terminal opens and the server starts. The browser opens automatically to the app.

  1. Keep Terminal open while using the app

Close Terminal when you are done to stop the server.

04Signing In

The app opens with a lock screen. Click the Sign In with Microsoft button and authenticate using your Re-Lax O365 account.

Single sign-on: If you are already signed in to Microsoft on this browser, sign-in may complete automatically without a popup.

After sign-in, the lock screen disappears and two things load automatically:

  • Tech list — all technician names pulled from the Contractors folder on SharePoint
  • Client list — loaded from TemplateClientList.xlsx on SharePoint (cached for 4 hours)
Note

Allow popups for localhost:8080 if your browser blocks them. The Microsoft sign-in uses a popup window.

05Loading a Timesheet

Select a Tech and Period

Use the toolbar at the top of the screen:

FieldDescription
Tech dropdownSelect the technician whose timesheet you want to edit
Period pickerSelect the month and year (defaults to the current month)
Load TimesheetClick to fetch the timesheet from SharePoint

What Happens After Loading

  • If a timesheet exists: all entries appear in the editable table below
  • If no timesheet exists yet: the table is empty and you can add new entries from scratch
Note

The timesheet file on SharePoint is named in the format: TechName_MonthYear_Timesheet.xlsx (e.g., Chris_March2026_Timesheet.xlsx)

06Editing Entries

The Entry Table

Each row in the table represents one time entry. All fields are editable — simply click a cell to make changes.

FieldDescription
DateThe date the work was performed (YYYY-MM-DD format or use the date picker)
Start / EndStart and end times. Enter as 9:00 AM or 14:30 — either format is accepted
ClientSelect from the dropdown — populated from the shared Client List
DescriptionFree-text description of work performed
ServiceOn-Site, Remote, or In-House — select with radio buttons
Travel (hrs)Enter travel time in hours (e.g., 1.5). Leave blank if no travel
After HrsCheck if this entry qualifies for 1.5x billing. Auto-detected but can be overridden
Hrs ExactCalculated automatically from Start and End time — read only
Hrs BilledCalculated: Hours Exact rounded up to nearest 15 minutes, plus half travel time
Hrs PaidCalculated: what the tech is paid — 1.5x applied if After Hours is checked

After-Hours Auto-Detection

When you enter or change a date or start time, the app automatically checks whether the entry qualifies as after-hours and checks the box if any of the following apply:

  • The date falls on a Saturday or Sunday
  • The date is a US federal holiday
  • The start time is before 6:00 AM
  • The start time is at or after 7:00 PM
Note

You can always manually check or uncheck the After Hours box regardless of what the auto-detection suggests.

Row Highlighting

FieldDescription
Amber/gold rowAfter-hours entry — billed and paid at 1.5x rate
Green rowNewly added entry (not yet saved to SharePoint)

07Adding and Deleting Entries

Adding a New Entry

Click the + Add Entry button in the toolbar. A new green-highlighted row appears at the bottom of the table, defaulting to the first day of the selected period. Fill in all required fields (marked with *): Date, Start, End, and Client.

Deleting an Entry

Click the ✕ button on the right side of any row. A confirmation prompt appears before the row is removed.

Removing Unsaved New Rows

If you added rows by mistake, the Clear New Rows button appears in the table header. Click it to remove all newly-added (unsaved) rows at once, restoring the table to its loaded state.

08Summary Bar

The summary bar at the bottom of the page shows totals across all entries currently in the table:

FieldDescription
EntriesTotal number of time entries
Hrs ExactSum of all exact hours (raw time from start to end)
Hrs BilledSum of all billable hours (rounded up to 15-min, including travel)
Hrs PaidSum of hours the tech is paid (with 1.5x for after-hours)
Travel HrsTotal travel hours entered across all entries
After-Hrs EntriesCount of entries flagged as after-hours
Note

The summary updates in real time as you edit. Use it to sanity-check totals before saving.

09Saving to SharePoint

When you are satisfied with your edits, click the Save to SharePoint button (green, top-right of toolbar).

What Happens on Save

  1. The app validates that all entries have a Date, Start, End, and Client. Any rows missing required fields will trigger an error message.
  2. The timesheet is rebuilt as an XLSX file in the same column format produced by the Time Tracker.
  3. The file is uploaded to SharePoint at the path:

Public/Billing/Contractors/{TechName}/{TechName}_{Month}{Year}_Timesheet.xlsx

  1. If a file already exists at that path it is overwritten. No version history is created automatically.
  2. New rows turn from green to normal after a successful save.

Important: The saved file is identical in format to what the Time Tracker produces. The Timesheet Importer and Billing Processor will process it the same way.

10Troubleshooting

FieldDescription
"Site can't be reached"The local server is not running. Double-click the launcher .bat or .command file first.
Sign-in popup blockedAllow popups for localhost:8080 in your browser settings, then try signing in again.
"redirect_uri" errorContact your IT administrator — the redirect URI http://localhost:8080 may need to be added to the Azure AD app registration.
Tech list is emptySharePoint access may be unavailable. Check your network connection and try reloading.
Client list not loadingThe TemplateClientList.xlsx file on SharePoint may have moved. Confirm the file exists at Public/Billing/Contractors/TemplateClientList.xlsx.
"Upload failed" on saveCheck your SharePoint permissions. You need write access to the Contractors folder for the selected tech.
Hours show as 0.00Ensure Start and End times are entered in a recognizable format such as 9:00 AM or 14:30.
App opens blank/white pageTry refreshing the browser. If the server window shows errors, close it and relaunch using the .bat file.

11SharePoint File Reference

All timesheet files follow this naming and path convention on SharePoint:

Public/Billing/Contractors/{TechName}/{TechName}_{Month}{Year}_Timesheet.xlsx

Example:

Public/Billing/Contractors/Chris/Chris_March2026_Timesheet.xlsx

The Client List used to populate the client dropdown:

Public/Billing/Contractors/TemplateClientList.xlsx

12Billing Calculation Notes

Hours Billed

Hours Billed = Hours Exact rounded up to the nearest 15-minute increment, plus half of any travel hours entered.

Hours Billed = ceiling(raw hours × 4) / 4 + (travel hours × 0.5)

Hours Paid (Tech)

Hours Paid is what the technician earns. After-hours entries are paid at 1.5× the standard rate.

Hours Paid = (Hours Billed × 1.5 if after-hours, else × 1) + (travel hours × 0.5)

Overnight Shifts

If the end time is earlier than the start time, the app automatically adds 24 hours to calculate the correct elapsed time (e.g., 11:00 PM to 3:00 AM = 4 hours).

13Support

For technical issues with the Timesheet Editor, contact your Re-Lax IT administrator.

Re-Lax US LLC | walter@pnw.com