BeCodeBeCode
Case studies
AP RescueEvent medical cover

An event calendar, crews and payroll data instead of spreadsheets and phone calls

In production since 2026

Enquiry, quote, event, crew and payroll data in one system — for four branches that until then planned in spreadsheets and over the phone.

The event calendar with an event open. The colour on each event says whether the crew is complete; the panel shows who is missing — and that the paramedic waiting to be confirmed is already confirmed elsewhere that day.

Numbers
35
data models in the schema
138
API endpoints
5
roles with their own permissions

Starting point

Who was going to an event lived in a spreadsheet and in phone calls.

Four branches, each with its own staff and ambulances, and one sheet per month. Names and phone numbers in cells, attendance confirmed by phone or by message — and the knowledge of who could work when kept in the coordinator's head.

An ambulance or a paramedic promised to two events on the same day was discovered late. At the end of the month, hours from completed events were copied by hand into the payroll clerk's file, and every corrected time meant recalculating the row again.

What we built

One calendar for events, people and vehicles — and payroll data that falls out of it on its own.

A job has one path: an enquiry on the kanban, a client with details pulled from the business register by company number, a quote assembled from the price list with a PDF for the client — and once it is approved, the event appears in the calendar by itself.

An event carries how many people it needs in which role: doctor, paramedic, driver, coordinator, first-aid instructor. Staff sign up for a shift from their phone in a specific role and the coordinator confirms. A person or a vehicle already confirmed elsewhere at that time is not let through without an explicit override of the collision.

Five roles with their own permissions and a branch scope: the technician who maintains vehicles and stock cannot see what anyone earns. Sign-in with an e-mail code or a passkey; notifications and e-mails leave through an outbox, so none is lost to an outage.

Outcome

Payroll data is a by-product of a confirmed shift.

Monthly payroll data is generated automatically twice a day from confirmed shifts and per-role rates. A shift past midnight is split across two days, and the XLSX export keeps the layout the payroll clerk is used to — live formulas included, so a corrected time recalculates the hours itself.

The system has been running since 2026 and keeps growing. The next phases are planned, not deployed: invoicing from events (phase 2) and a register of courses and certificates (phase 3).

Key modules

Enquiries

A New / In progress / Resolved kanban, who has seen an enquiry, and a history of every step.

Clients and quotes

Register data by company number, duplicate warnings, a price-list calculator and PDF. An approved quote creates the event.

Event calendar

A month view, staffing by role, collisions for people and vehicles, and a payroll estimate on every event.

Capacity and inventory

Vehicles with vignette and inspection validity, staff with per-role rates, stock with expiry dates and minimums.

Payroll data

Monthly and automatic, approval before export, XLSX with formulas; a shift past midnight split across two days.

Staff on mobile

Their own shifts, sign-up in a specific role, sign-off, and a notification when the coordinator confirms.

Same kind of project

We build CRM systems to order

If your jobs currently live in a spreadsheet and in people's heads, see how we approach it and what it involves.

Custom CRM

Before and after

On the left, one month's sheet — names, phone numbers and ambulances in cells. On the right, the same month once every event knows who is going and what is still missing.

BeforeAfter
What it runs onFull stack
Next.jsNestJSPostgreSQLPrismaRedisWebAuthnReact-pdfExcelJS
Same problem?

Tell us where your data gets retyped today

Get in touch and we will go through what could be merged into one system. No commitment, no pitch deck.