2026-03-10 11:55:30 -04:00
2026-03-10 11:55:30 -04:00
2026-03-10 11:55:30 -04:00
2026-03-10 11:55:30 -04:00

Weekly Crew Schedule Generator

A small Python utility that generates a weekly crew scheduling workbook (.xlsx) for MondayFriday. Each day gets its own sheet with time slots and one column per crew lead / supervisor.

The workbook is designed to be:

  • Easy to edit
  • Clean when printed
  • Simple to export to PDF

This is useful for scheduling customer visits, job assignments, or crew work plans.


Features

  • Generates one sheet per weekday

    • Monday
    • Tuesday
    • Wednesday
    • Thursday
    • Friday
  • Configurable via config.json

    • Start time
    • End time
    • Slot size (minutes)
    • Crew / supervisor names
  • Default schedule:

    • 08:00 → 17:00
    • 60 minute slots
  • Clean printable layout

  • Works with:

    • LibreOffice Calc
    • Microsoft Excel
    • OnlyOffice
  • Easily exportable to PDF


Example Layout

-----------------------------------------------------------
| Time Slot | Crew 1 | Crew 2 | Crew 3 | Crew 4 | Crew 5 |
-----------------------------------------------------------
| 08:00-09:00 |        |        |        |        |        |
| 09:00-10:00 |        |        |        |        |        |
| 10:00-11:00 |        |        |        |        |        |
| ...                                                   |
-----------------------------------------------------------

Each row represents a time slot. Each column represents a crew lead or supervisor.

You can write things like:

Customer Name
Address
Notes

inside each cell.


Requirements

Python 3.8+

Python package:

openpyxl

Install it with:

pip install openpyxl

Project Structure

crew_schedule/
│
├─ generate_week_schedule_xlsx.py
├─ config.json
├─ README.md

Configuration

Edit config.json to define crews and schedule hours.

Example:

{
    "start_time": "08:00",
    "end_time": "17:00",
    "slot_minutes": 60,
    "crews": [
        "Crew 1",
        "Crew 2",
        "Crew 3"
    ]
}

Example With Named Supervisors

{
    "start_time": "07:00",
    "end_time": "16:00",
    "slot_minutes": 60,
    "crews": [
        "Mike",
        "Sara",
        "John",
        "Chris",
        "Dana"
    ]
}

Usage

Generate the schedule for the current week:

python generate_week_schedule_xlsx.py

Generate a specific week:

python generate_week_schedule_xlsx.py 2026-03-09

The script automatically aligns the provided date to Monday.


Output

Example output file:

weekly_schedule_2026-03-09.xlsx

Inside the workbook:

Monday
Tuesday
Wednesday
Thursday
Friday

Each sheet contains:

  • Time slots
  • Crew columns
  • Large writable cells

Exporting to PDF

LibreOffice

  1. Open the .xlsx file
  2. Fill in the schedule
  3. Click:
File → Export As → Export as PDF

Microsoft Excel

File → Export → Create PDF/XPS

Customization Ideas

Possible improvements:

  • Color coding for crews
  • Customer / Supervisor / Notes sub-lines
  • Automatic job numbering
  • Multiple weeks generated at once
  • Direct PDF generation
  • ICS calendar export

License

MIT License

Use freely, modify freely.


Author

Internal scheduling utility designed for crew-based weekly planning.

Description
No description provided
Readme 25 KiB
Languages
Python 100%