PortaPro Docs

Win and serve customers

desktop_windows
Customer Portal
24/7 access to schedules, invoices, and service history.
price_change
Quotes & Invoices
View, approve, and pay documents online.
event_available
Online Booking
Customers book roll-offs and event rentals on your website and pay a deposit. Nothing is scheduled until you approve.
credit_card
Payment Processing
Secure online payments with flexible options.
sms
Inbox
Portal messages, text (SMS), and email in one inbox per customer, plus a Requests tab for everything customers ask for in the portal.
signature
E-Signatures
Sign contracts digitally with audit trails.
build
Service Checklists
Standardized pumping and cleaning workflows.
map
Venue Blueprinting
Pin inventory clusters on satellite maps, link to quotes, and send branded site plans.
mark_email_read
Email From Your Inbox
Send invoices, quotes, and sales email from your real address, with your real deliverability.

Run the field

assignment_add
Job Schedules & Dispatch
Create jobs, dispatch routes, and manage recurring service.
alt_route
Route Optimization
Routes planned around tank capacity, disposal-site hours, and service windows.
smartphone
Mobile App
Offline-first workflows for field operations.
location_on
Unit Pins
Every unit's exact spot on the site map. Drivers move pins from the field.
description
Services Hub
Service requests, checklists, and proof-of-work logs for every job.
sms
Team Chat
Channels and direct messages for drivers, dispatch, and the office.
connect_without_contact
Walkie-Talkie
Push-to-talk inside the PortaPro app, on the channels your crew already uses, with searchable transcripts.
phone_in_talk
Calls & Huddles
1:1 calls and channel huddles for your crew, plus meetings customers join from a browser.

Control the business

inventory
Equipment Inventory
Availability by date, so a weekend booking shows before the weekend.
festival
Event & Tent Rentals
Kits, tents booked by size, pull sheets, scan-back check-in, and charges for what comes back missing.
dashboard
Event Layouts
Tents and tables to scale on the venue or its floor plan, seating charts from the guest list, and a share link for comments and approval.
calendar_month
28 Day Invoicing
Bill every site automatically on the industry-standard 28-day cycle, with duplicate prevention built in.
attach_money
Bookkeeping & Billing
Quotes, invoices, expenses and receipts, bank reconciliation, and QuickBooks, Xero and FreshBooks sync.
group
Customer Accounts
Profiles, sites and locations, contacts, and history.
format_list_bulleted_add
Leads & Deals
The CRM built into PortaPro.
outdoor_garden
Temporary Fencing
Draw the fence on the satellite map or type the feet: panels, gates, stands, clamps and sandbags counted for you, screen priced by the foot.
Roll-Off Rentals
Live ledger for every container on the ground, overage and landfill disposal billed from the weight ticket, and dumpster requests from the customer portal.
local_shipping
Fleet Management
Maintenance, compliance, inspections, and vehicle tracking.
my_location
GPS Tracking
Plug-in trackers for the trucks, battery tags for the units, and an alert when a unit leaves its pin.
phone_in_talk
Business Phone
A real business line with an IVR, ring groups, voicemail, and recording. Click to dial, ring your cell, and every call logs itself on the customer.
manage_accounts
Team Management
Roles, the time clock, and the credentials about to expire.
person_add
Hiring
A careers page, an application built for CDL drivers, and a Hire button that turns the applicant into a team member.
wallet
Payroll
W-2 and 1099 payroll inside PortaPro. In beta, rolling out in stages.
bar_chart
Reporting & Analytics
Gallons by disposal site, overdue sites, and reports on your billing cycle.
water_drop
Septic Service
The tank on the customer's record, pump-out dates predicted, and every septic report form, from pumping to real estate transfer, shipped and attached to the job.
Also in PortaPro:QuickBooks Sync,Xero Sync,FreshBooks Sync,Claude & ChatGPT,Equipment Scanning,Shared Truck Devices,Consumables,Marketing Tools,Automated Review Requests,Septic Reminders,Celebrations,Help & Support

Run your portable sanitation operation from lead to ledger.

One system, 46 features, no per-user or per-vehicle fees or limitations.See all featuresarrow_forward

Learn & Discover

calculate
ROI Calculator
Estimate time, labor, fuel, and cost savings with PortaPro.
route
Route Efficiency Simulator
See how optimized routing can increase weekly service stops.
scale
Dumpster Weight Calculator
Estimate debris weight and the roll-off size it needs.

Support & Training

headset_mic
Support
Submit a request, email our team, or book a call.
support
Help Centeropen_in_new
Guides, documentation, and step-by-step setup resources.
favorite
Our Promise
Why we refuse to let software get worse over time.

GPS Asset & Vehicle Tracking

How GPS tracking works
location_on
Unit tracking device
A sealed battery tag inside the unit. It reports when the unit moves, and the battery lasts five to seven years.
navigation
Vehicle tracker
Plugs into the truck's OBD-II port. Live location, plus odometer and fuel on supported trucks.

Solutions

local_shipping
In the Field
A service day from the yard to the invoice, and where each job goes wrong.
wc
Portable toilet operators
Same-day missed stops, proof for every stop, and rate card invoices.
water_drop
Septic operators
Pump-outs predicted from the tank, and the county's own forms filled from the job.
water_drop
Grease trap service
Each trap on its own cadence, and the FOG 25% rule measured.
Roll-off haulers
Days past term, tons over the allowance, and landfill fees on one final invoice.
celebration
Tent and party rentals
A tent booked by size, packages as one line, every chair checked in.
festival
Event and festival operators
A site plan on the quote, and a weekend priced as a weekend.
account_balance
Municipal contracts
Invoices before the period with the PO printed, and a record of every park visit.
domain
Multi-location operators
Several yards, service territories, divisions, and roles in one account.
Why Operators SwitchPricing
Sign Inrocket_launchStart Free Trial
homeHelp Centerchevron_rightBilling & Invoicingchevron_rightWeekend Event Rental Workflow

Weekend Event Rental Workflow

schedule14 min read
calendar_todayUpdated July 12, 2026
event rentalper eventweekend rentalpublic acceptreservationsextend eventcancel eventrelease crondouble-booking

On this page

EVT-1: How Event Rentals Are DifferentEVT-2: Create the Event QuoteEVT-3: The Customer Accept + Pay FlowEVT-4: The Delivery + Pickup Job PairEVT-5: Extending an Event (Ran Long)EVT-6: Cancelling an EventEVT-7: RefundsEVT-8: The Reservation Release Cron (Safety Net)EVT-9: Booking the Same Unit for a Future EventEVT-10: Multi-Event WeekendsEVT-11: TroubleshootingEVT-12: Related Articles

Need more help?

Need more help?

Contact Us

Have questions about PortaPro? Fill out the form below and our team will get back to you within 24 hours.

Or schedule a quick call at a time that works best for you.

Contact Us

Have questions about PortaPro? Fill out the form below and our team will get back to you within 24 hours.

Or schedule a quick call at a time that works best for you.

PortaPro

Contact:
support@portaprosoftware.com

© 2026 PortaPro. All rights reserved.
All-in-one software for portable sanitation operators.

Quick Links

PricingROI CalculatorDumpster Weight CalculatorFree TemplatesSeptic Rules by StateCompare SoftwareBlogIn The Field

Platform

DispatchBillingFleet ManagementCustomer Portal

Support

Contact supportGetting set upHelp Centeropen_in_newStatusCareers

Company

TermsPrivacyCookie PolicySecurityAccessibilityAbout

Serving operators across North America. Proudly Built in America. 100% US Customer Support

Privacy Policy·Terms of Service·Accessibility·Contact

This article covers the event rental workflow: the way PortaPro handles short, one-off rentals with a defined start and end date. Weddings, festivals, corporate offsites, county fairs, sporting events: anything where the customer wants units delivered, dropped for a specific window, and picked up.

Event rentals are billed differently from recurring rentals: the whole window is one flat price (industry standard), the customer gets a public link to accept and pay upfront, and PortaPro reserves the physical units for the exact date range so nothing gets double-booked. This article walks through the full flow: quote → email → customer accepts + pays → delivery + pickup jobs → what happens if the event runs long or gets cancelled.

If you're doing recurring monthly rentals instead, see the Long-Term Rental Workflow.

---

EVT-1: How Event Rentals Are Different

Event rental = flat price for a defined window

Event rentals use the per_event billing period. One event = one flat price for the entire window, regardless of exact days. This matches how the portable sanitation industry actually prices weekends and festivals: "$400 for the weekend," not "$400 / 3 days = $133.33/day."

The default event window is 3 days (Friday delivery, Sunday event, Monday pickup, the classic weekend). You can change the window per line item when quoting.

Reservations, not just deliveries

Because events run for a defined window, PortaPro reserves the physical units for the exact date range. That means:

  • The unit shows as "reserved" from the delivery date through the pickup date
  • You can't accidentally double-book the same physical unit for two overlapping events
  • The double-booking guard is date-aware: you *can* book the same unit for a future event that doesn't overlap the current one (e.g. #1002 on rent this weekend, book it again in three weeks)
  • One customer touch to accept + pay

    Instead of the operator manually chasing signatures and payments, event quotes send with a public link. The customer clicks, reviews, signs (typed name), and pays with a card. All in one flow, from their phone. When they finish, the job is created automatically on the operator's side.

    Excluded from MRR by design

    Event rentals bill upfront as one-time revenue, not recurring. Your analytics dashboards (MRR, CRR, monthly recurring value on the customer profile) intentionally exclude per_event line items. A wedding you booked in June should not inflate your ongoing monthly recurring revenue.

    ---

    EVT-2: Create the Event Quote

    Step 1: Start a new quote

  • Navigate to Quotes → + New Quote
  • Pick the customer (create one if new)
  • Set the service address for the event (usually the venue, not the billing address)
  • Step 2: Add event line items

    For each unit type at the event:

  • Click + Add Item
  • Pick the product
  • Set quantity
  • Choose billing period: Per Event
  • Enter the event start date (delivery date) and event end date (pickup date)
  • If the event window is not the default 3 days, PortaPro shows the actual span you entered
  • The rate is the flat event price: not per day. If the product has a per_event_rate set in inventory, PortaPro pulls it automatically; otherwise you enter it here.

    Step 3: Review the quote total

    Each per-event line shows a rate_breakdown like "Event Rental: Nov 14–17 (3 days)" so the customer sees the exact window they're paying for. Tax applies via the standard tax pipeline (flat rate, ZIP-based, or address-based per your Settings).

    Step 4: Send the quote

    Click Send Quote. The customer receives an email with a link to the public accept page.

    ---

    EVT-3: The Customer Accept + Pay Flow

    When the customer clicks the link in the email, they land on a public page tokenized to their specific quote. No login required, no PortaPro account needed.

    What the customer sees

  • The full quote itemization
  • Delivery date, pickup date, event window
  • Tax + total
  • Two actions: Accept & Pay or Decline
  • Accept & Pay

  • Customer types their name as their signature
  • Customer enters card details (Stripe Elements, on your connected Stripe account)
  • Customer clicks Pay
  • Stripe charges the card immediately for the full amount
  • On success, PortaPro:
  • - Stamps accepted_by_name and accepted_signature on the quote

    - Marks the quote accepted

    - Creates the delivery job automatically for the delivery date

    - Creates the paired pickup job automatically for the pickup date

    - Reserves the physical units for the full event window

    - Sends a payment confirmation email

    Decline

    The customer can click Decline and (optionally) type a reason. This stamps declined_at and decline_reason on the quote and closes it out. Your team can follow up if the reason suggests it.

    ---

    EVT-4: The Delivery + Pickup Job Pair

    Every accepted event booking creates two jobs: a delivery on the event start date and a pickup on the event end date. This is intentional. You'll assign the delivery to a driver for the front end of the event and the pickup to (usually) a different driver at the back end.

    Why the reservation attaches to the pickup, not the delivery

    When you mark a job completed, the completion trigger releases that job's equipment back to the yard. If the reservation lived on the *delivery* job, the moment your driver finished the Friday delivery run, the units would flip back to "available". Mid-event. That's obviously wrong.

    So for event bookings, PortaPro attaches the equipment reservation to the *pickup* job. The units stay reserved through the whole event window and only release when the pickup is marked complete (or, as a safety net, when the expired-reservation cron picks up the return date the morning after, see EVT-8).

    The two jobs on the board

    Both jobs appear on the dispatch board. Their statuses move independently:

  • Delivery: unassigned → assigned → in-progress → completed
  • Pickup: unassigned → assigned → in-progress → completed
  • Cancelling one automatically cancels the other (see EVT-6).

    ---

    EVT-5: Extending an Event (Ran Long)

    Events run over sometimes. The wedding party stays late, the festival extends by a day, the client asks for one more night. PortaPro handles this without breaking anything:

    Step 1: Open the event's delivery job

  • Find the job on the dispatch board or on the customer profile
  • Click into the detail view
  • Step 2: Click Extend Event

  • Pick the new pickup date (must be on or after the current event start)
  • Optionally enter a per-day overage rate (dollars per extra day)
  • What PortaPro does:

  • Updates every per_event line on the delivery job with the new end date, new day count, and a re-derived rate breakdown ("Event Rental: Nov 14–18 (4 days)")
  • The flat event price on those lines does not change: the customer already paid for the base event; overage is separate
  • The paired pickup job moves to the new pickup date
  • Equipment reservations extend their return_date so availability and the no-overlap guard know about the true window
  • If you entered an overage rate, PortaPro creates a separate one-line invoice for extraDays x overagePerDay, taxed correctly, in open status ready to send
  • If the event has a recurring service on it, service visits are added for the new days (see Service Visits During an Event)
  • If any of the units are subrented and the subrental ends before the new pickup, the extension is refused with *Extend the subrental first*: edit the subrental's dates under Inventory → Subrentals, then extend the event (see Subrentals)
  • That last piece matters: the base rental price is untouched (the customer already paid), and the overage bills as its own line so it's clean on their books.

    ---

    EVT-6: Cancelling an Event

    Weddings get called off. Festivals get rained out. PortaPro handles the cancel with the same "don't break anything downstream" discipline.

    To cancel an accepted event:

  • Open either the delivery or the pickup job
  • Click Cancel Job
  • Optionally enter a reason
  • Optionally enter a cancellation fee (creates a one-line invoice for that amount)
  • What PortaPro does:

  • Sets the job status to cancelled
  • Every event service visit that hasn't started is cancelled with the delivery
  • The cascade cancellation logic releases the equipment reservations from *both* the delivery and pickup jobs (cancelling one side cancels the other, otherwise the yard inventory would stay held all weekend for a dead event)
  • If you entered a cancellation fee, an invoice is created for it (standard tax pipeline)
  • The customer's original payment is not automatically refunded. You handle refunds through Stripe's dashboard or through the invoice's refund action, depending on your policy
  • The reason this is manual: cancellation policies vary (some ops refund 100%, some keep a deposit, some keep everything for a same-week cancel). PortaPro does the operational cleanup and leaves the refund decision to you.

    ---

    EVT-7: Refunds

    To refund an event booking:

  • Find the paid invoice from the accept flow
  • Open the invoice
  • Click Refund and pick the amount (full or partial)
  • Confirm
  • The refund is issued through Stripe. If QuickBooks Online is connected, the payment's QuickBooks twin is voided on the next sync, which reopens the invoice balance there the way it does in PortaPro. For a partial refund, the amount the customer kept goes across as its own new payment, so nothing needs re-entering by hand. Xero works the same way. See QuickBooks Online Sync.

    ---

    EVT-8: The Reservation Release Cron (Safety Net)

    Job completion is the primary way units get released back to available. But drivers forget to mark pickups complete sometimes, or things get lost in the shuffle at a busy multi-event weekend.

    PortaPro runs a daily cron (release-expired-reservations) that catches this: any equipment assignment whose return_date is strictly in the past flips to returned, and its serialized unit returns to available. Unless another live assignment still holds it.

    The cron runs the morning AFTER the scheduled pickup date, never the morning of. So a Sunday pickup that didn't get marked complete releases on Monday morning, not mid-event. This is a backstop, not the primary path. Drivers should still complete their pickup jobs on-scene.

    ---

    EVT-9: Booking the Same Unit for a Future Event

    The double-booking guard is date-aware. If unit #1002 is on rent this weekend (Nov 14–17), you can still book it for a wedding three weeks later (Dec 5–8). The windows don't overlap, so there's no conflict. Try to book it for Nov 16–18 (overlapping the first event) and PortaPro will refuse with the exact overlap: #1002 (booked Nov 14 – Nov 17).

    This matters for pipeline building: you're not blocked from quoting future dates just because a unit is currently deployed.

    The rule

  • Available = has no reservation whose window overlaps the requested window
  • Booked = has a reservation whose window overlaps the requested window
  • Currently on rent but bookable for the future = has a reservation whose window is past the requested window (or the reservation is in the past and the requested window is in the future)
  • ---

    EVT-10: Multi-Event Weekends

    Some ops run several small events on the same weekend (three graduation parties, four backyard weddings). Each is a separate quote → each is a separate accept + pay → each creates its own delivery + pickup pair. Units are reserved per event, so overlaps are caught automatically. Your route plan handles the sequencing across events on the same day.

    There is no bulk-pool capacity guard for non-serialized untracked reservations across many concurrent events. If you have 20 standards in the yard and quote three concurrent events for 8 each, PortaPro will accept all three (24 units of demand vs 20 available). Track your yard capacity manually for high-density weekends. This is a known gap and on the roadmap for a per-yard pool capacity guard.

    ---

    EVT-11: Troubleshooting

    "The customer clicked the link and said the page won't load."

    Check the quote in your dashboard. If the status is expired or cancelled, the public link is dead. Resend a fresh quote. If the quote is still sent, verify the URL in the email uses your production domain (not a preview URL) and that the token wasn't accidentally truncated.

    "Customer accepted and paid, but no delivery job was created."

    Rare, but check: (1) is the delivery date on the quote in the past? PortaPro won't create a delivery job for a past date. (2) is the customer's service address complete? Missing city/state can block job creation. Look at the server logs for [quote-accept] errors.

    "Customer paid, but the payment doesn't show on their invoice."

    The accept flow creates an invoice in paid state as part of the payment. If it shows open, the Stripe charge didn't complete on their side. Check the Stripe dashboard for the charge attempt and error.

    "I extended an event but the driver still shows the old pickup date on their route."

    The route plan refreshes on the next planning run. If it's the day-of, force-refresh the plan from Dispatch → Route Plan → Re-check so the new pickup date populates.

    "Cancelling the delivery job didn't free the units."

    This shouldn't happen post-July-2026. Cancellation cascades to the sibling event pickup, and both reservations release. If it does, check the pickup job's status manually: if it's still unassigned (not cancelled), open it and cancel manually. That's a bug worth reporting.

    "I booked a future event for a unit that's currently on rent, and PortaPro refused."

    Verify the windows actually don't overlap. Inclusive end dates: a rental ending Nov 17 and a new event starting Nov 17 do overlap. Pick Nov 18+ for the new event, or Nov 16 or earlier for the current one to end.

    "Same-day pickup and next delivery of the same unit."

    The tightest legal booking is: pickup on Nov 17 (return_date = Nov 17), next delivery on Nov 18. The GiST no-overlap constraint enforces this.

    ---

    EVT-12: Related Articles

  • Long-Term Rental Workflow (recurring cycle rentals, the other main model)
  • Roll-Off Swap Cycle (dumpster rental terms with final statements)
  • Quotes & Invoices (general quote lifecycle, tax, payment terms)
  • Public Payment Links (how tokenized public pages work)
  • Dispatch & Route Planning (assigning drivers, arrival windows)
  • Reservations & Availability (double-booking guards, the release cron)
  • Was this article helpful?

    Related Articles

    menu_book

    Quotes and Invoices: the Financials Lists

    9 min read

    chevron_right
    menu_book

    The Quote Wizard

    14 min read

    chevron_right
    menu_book

    Quote Statuses, Sending and Converting

    9 min read

    chevron_right