# Open-source equipment booking systems: what actually reserves gear

> Five self-hosted options for reserving shared cameras, lab tools and kit — and the register-versus-calendar split that decides which one works.

URL: https://opencals.com/blog/open-source-equipment-booking-system
Author: Stanislav Tyshchenko
Published: 2026-09-11
Updated: 2026-09-11
Categories: comparison

> **Key takeaway**
>
> Most tools that look like the answer here are asset registers. They know the camera exists and who signed for it; they have no idea whether it is free on Thursday. Snipe-IT is the biggest of them and still cannot hold a future date. GLPI can, and hides it. NEMO is the one written for shared instruments with a queue. Shelf is the one to pick if the gear leaves the building. None of them takes payment.

## Your asset register doesn't have a calendar

Search "open source equipment booking system" and the results split into two groups that do not do the same job, which is why so many of these deployments end with a spreadsheet still open next to the app.

The first group is the register. It answers _what do we own and who has it right now_ — serial numbers, purchase dates, warranty, a custody trail, a barcode on the side. Snipe-IT, GLPI and InvenTree live here. The second group is the calendar. It answers _when is this free_ — a resource, a time range, a conflict check. LibreBooking and MRBS live here, and both were written with rooms in mind.

Equipment sits awkwardly between them. A camera needs the register (it has a serial, it gets damaged, somebody signed for it) and the calendar (four people want it for the same shoot week). Pick a tool from one group and you spend the next year hand-rolling the other half.

So the question to settle before you install anything: **is your problem custody or contention?** If gear goes out and comes back and nobody ever fights over dates, you want a register and you can stop reading after the next two sections. If two people regularly want the same item at the same time, you want a calendar, and the register is the part you can fake with a spreadsheet for a while.

## Snipe-IT has 14,900 stars and no way to book Thursday

Snipe-IT (AGPL-3.0, PHP, \~14,900 stars as of 11 September 2026) is the best-known open-source asset system by a wide margin, and it is genuinely good at what it does. Assets, licences, accessories, consumables, components; check-out to a user, a location or another asset; an expected check-in date; email nags when that date passes; a decent API.

What it does not have is a reservation. You cannot say "Ned takes the spectrometer next Tuesday to Thursday" and have the system hold those days. Check-out is now. The nearest thing is the requestable-assets feature, where a user asks for an item and an admin approves — with no date attached to the request.

This is not an oversight nobody noticed. It is one of the longest-running open feature requests in the project: issue [#5081](https://github.com/snipe/snipe-it/issues/5081) asked for reservations, [#6214](https://github.com/snipe/snipe-it/issues/6214) asked for a booking system, [#11356](https://github.com/grokability/snipe-it/issues/11356) asked for future-dated check-out, [#15838](https://github.com/snipe/snipe-it/issues/15838) asked again. The requests keep arriving because the product invites the assumption and then does not deliver it.

If you already run Snipe-IT for IT kit and you are being asked to add booking, the honest options are to put a calendar next to it and accept two systems, or move the bookable subset of your gear somewhere else. Retrofitting reservations into Snipe-IT is a fork, and forks of a 14,900-star PHP app age badly.

## GLPI ships a reservation calendar that's switched off by default

GLPI (GPL-3.0, \~6,300 stars) is the other big asset-management project, and it has the feature Snipe-IT doesn't: a real reservation module.

The catch is discoverability. By default no asset in GLPI is reservable. You make an item bookable from the **Reservation** tab on that item's form, one item at a time, and you grant the right to reserve through profiles under Administration → Profiles → Reservable items, separately for _Read_ and _Make a reservation_. Miss either step and the feature is invisible, which is exactly why teams who already run GLPI go looking for a second tool.

Once it's on, it does the useful things. Tools → Reservations gives a calendar of every reservable item and the dates it's taken, there's a "find a free item in a given period" search, and reservations can be made recurring with the option to delete one occurrence or all of them.

It looks like an add-on because it is one, structurally. There's no automatic availability rule engine, no per-item booking window, no approvals workflow. But if GLPI is already running your asset inventory, turning this on costs an afternoon and it is very likely the correct answer. Check it before you evaluate anything else in this article.

## NEMO: written for gear with a queue, a supervisor and a bill

[NEMO](https://github.com/usnistgov/NEMO) is the most interesting project in this category and the least known — about 180 stars, 86 forks, 3,118 commits, 164 releases, most recently 8.0.2 in May 2026. It is developed by NIST as laboratory logistics software for user facilities: nanofab cleanrooms, shared instruments, the kind of place where an SEM has a waiting list and a per-hour rate.

That origin shows in what it models. Tool reservations on a calendar with per-tool rules. Tool _control_ — enabling and disabling instruments, with support for hardware interlocks, so the software can refuse to let an unqualified user physically start a machine. Qualification per user per tool. Maintenance tasks and problem reports attached to the tool. Area access through a badge reader and kiosk screens, so the system knows who's in the cleanroom. Usage that rolls up to accounting.

No general booking tool has any of that, and if your equipment has a supervisor and a training requirement, it is the difference between software that matches your process and software you argue with.

Two things to know before you commit. First, it's Django and it expects a real deployment — there's a Docker "splash pad" image preloaded with sample data for evaluation (`docker run --detach --name nemo_splash_pad --publish 8000:8000 nanofab/nemo_splash_pad`), and a hosted demo at nemo-demo.atlantislabs.io, but production means running Python, a database, and upgrades across 164 releases.

Second, and this one catches people: NEMO is not under an OSI-approved licence. `LICENSE.md` is the NIST Software Licensing Statement — US-government work, provided as a public service, free to use, copy, modify and redistribute, with a request to acknowledge NIST and keep the notice intact. In practice that is more permissive than GPL. On paper it is not "open source" in the sense your legal team's checklist means, and I've seen that stall procurement at organisations that are otherwise fine with AGPL. Worth raising early rather than at review.

## Shelf, when the kit leaves the building

[Shelf](https://github.com/Shelf-nu/shelf.nu) (AGPL-3.0, TypeScript, \~3,000 stars, first commit February 2023) is the newest serious entrant and the only one here that treats bookings and custody as the same record rather than two modules.

A booking reserves a time range on an asset; when the booking starts, custody transfers automatically; QR codes on the gear handle check-in and check-out from a phone. Kits bundle a body, two lenses and a charger so that booking the kit reserves all of it and flags what's missing on return. Workspaces separate inventories by department while admins keep a view across all of them.

That is a good fit for cameras, AV gear, loaner laptops and field tools — anything that physically leaves and comes back, where the argument is as often _who had it last_ as _who has it next_. It's the option I'd shortlist first for a media department or a university programme.

Two qualifications. Shelf is a commercial product with a self-hostable AGPL codebase, not a community project with a company attached — the hosted plans are the business, and self-hosting is a supported path rather than the main one. And it's a Node app with a Postgres/Supabase-shaped backend, so "self-hosted" is heavier than dropping PHP on a LAMP box.

## The eight-month-old option, and why I'd still look

[Louez](https://github.com/Synapsr/Louez) (AGPL-3.0, TypeScript) is an open-source equipment _rental_ platform — inventory, reservations, customers, generated contracts. First commit 6 January 2026, about 39 stars.

I'm not going to tell you to run a project with 39 stars in production. But it's the only one in this list that starts from renting rather than lending, and if that's your model it's worth twenty minutes reading the code before you conclude nothing exists.

## Where each one gives up

|                                | Snipe-IT    | GLPI        | NEMO                      | Shelf           | Louez                   |
| ------------------------------ | ----------- | ----------- | ------------------------- | --------------- | ----------------------- |
| Licence                        | AGPL-3.0    | GPL-3.0     | NIST statement (not OSI)  | AGPL-3.0        | AGPL-3.0                |
| Future-dated reservation       | No          | Yes         | Yes                       | Yes             | Yes                     |
| Serial numbers / custody trail | Yes         | Yes         | Partial                   | Yes             | Yes                     |
| Access control on the hardware | No          | No          | Interlocks + badge kiosk  | No              | No                      |
| Maintenance / fault tracking   | Basic       | Yes (ITIL)  | Yes                       | Yes             | Partial                 |
| Stack                          | PHP / MySQL | PHP / MySQL | Django / Python           | Node / Postgres | Node                    |
| Takes payment                  | No          | No          | Usage billing export only | No              | Contracts, not payments |

The row that decides it for most people is the second one. The row that decides it for the rest is the last one.

## The badge reader is not a feature of the software

Every project above will happily record that the drill is booked to you until Friday. Not one of them can stop you walking off with it.

This is the part that gets underestimated when a booking system is introduced to fix a gear problem. The double-booking was a symptom; the cause is usually that nothing physically gates access. Software fixes the symptom, people keep taking things off the shelf, and six months later the data is wrong and everyone is back on the group chat.

The projects that work long-term pair the calendar with a physical gate — a locked cage where the key is handed over against a booking, a QR scan that is the only way to open the cabinet, NEMO's interlocks refusing to power the tool. Shelf's QR check-in and NEMO's badge kiosk exist for exactly this reason. If you can't gate access, budget for the reconciliation instead: a weekly audit, someone who owns it, and a tolerance for the register drifting.

## If you rent the gear out, none of these take the money

Every option here assumes the borrower is on the inside — a colleague, a student, a member. The moment the borrower is a customer paying for the item, the requirements change: a public page, a deposit at booking time, a card on file for damage, cancellation terms, VAT, a refund path, a receipt.

None of the five does that. Louez generates rental contracts, which is the closest, and it stops at the contract. Everything else expects an internal directory and a sign-off.

This is where [Opencals](https://opencals.com) fits: a bookable item with a price, a public booking page, a deposit or full payment taken at the time of booking, and the reservation held against availability the same way a staffed appointment would be. Photo-studio slots, hire kit, rental vehicles and equipment rental are the shape of business it's built for, and it's [$0.99 per completed booking](https://opencals.com/pricing) rather than a monthly seat fee, so a quiet month costs nothing.

The honest limit: Opencals is not an asset register. It has no serial numbers, no condition log, no damage report against a specific unit, no custody chain. If you need to know that unit #4 came back with a cracked filter, you still need a register — Snipe-IT or Shelf next to it, or a spreadsheet, and you decide which system holds the truth.

So: internal gear, money never changes hands, and you already run GLPI — turn on the reservation module today. Internal gear, no incumbent, and it leaves the building — Shelf. Instruments with training requirements and a queue — NEMO, and start with the splash-pad image. Paying customers — none of these, and you should be looking at a [hosted booking API](https://opencals.com/blog/open-source-vs-hosted-booking-api) instead of a self-hosted register.

What would change my mind on Snipe-IT: if future-dated check-out ever lands, it becomes the default answer for most of this article, because everything else it does is already better than the alternatives.

- [Open-source desk booking](https://opencals.com/blog/open-source-desk-booking-software): The same question for desks, where the shortlist is completely different.
- [Open-source room booking](https://opencals.com/blog/open-source-room-booking-system): MRBS, LibreBooking and Seatsurfing compared for meeting rooms.
- [Booked Scheduler alternatives](https://opencals.com/blog/booked-scheduler-alternatives): Where the old Booked project went, and what LibreBooking inherited.
- [Opencals for developers](https://opencals.com/developers): Storefront API, typed SDK and open-source templates.

## Frequently asked questions

### Can Snipe-IT book equipment for a future date?

No. Snipe-IT checks an asset out as of now and can record an expected check-in date, but it cannot hold a future date range or prevent someone else from taking the item before then. Requestable assets let a user ask for an item, without a date on the request. Reservations have been an open feature request on the project for years (issues #5081, #6214, #11356 and #15838), so this is a known gap rather than a configuration mistake.

### How do I make equipment reservable in GLPI?

Two steps, both easy to miss. Open the item, go to its Reservation tab, and mark it reservable — nothing in GLPI is reservable by default. Then grant the right under Administration → Profiles → Tools → Reservable items, where Read and Make a reservation are separate permissions. After that, Tools → Reservations shows the calendar for all reservable items and a search for a free item in a given period.

### Is NEMO really open source?

It is free to use, copy, modify and redistribute, but not under an OSI-approved licence. NEMO is developed by NIST and released under the NIST Software Licensing Statement: US-government work provided as a public service, with a request that you keep the notice intact and acknowledge NIST as the source. That is broader than GPL in practice, but it will not match a policy that requires an OSI licence by name — worth checking with whoever signs off before you build on it.

### What's the difference between equipment booking and asset management?

Asset management answers what you own and who has it now: serials, warranties, custody history. Equipment booking answers when an item is free and holds a future time range against it. Snipe-IT is the first, LibreBooking is the second, and Shelf and GLPI attempt both. Choosing the wrong category is the most common reason a deployment ends with people still coordinating in a group chat.

### Can I use a room booking system for equipment?

Yes, with a cost. LibreBooking and MRBS treat anything as a resource, so a projector or a camera can be a bookable line item. What you lose is everything about the physical object: serial numbers, condition, accessories that travel with it, damage on return. It works for a dozen items that never break. It stops working when the register matters as much as the calendar.

### Which one handles equipment rental to paying customers?

None of the five properly. Louez generates rental contracts and is the closest, but it stops short of taking money. Self-hosted asset and reservation tools assume the borrower is internal, so there is no public booking page, no deposit, no card on file and no refund path. For paid rental you want a booking platform with payments — Opencals charges $0.99 per completed booking and handles the storefront, deposit and order side, though it is not an asset register and will not track serials or damage.

### Do any of these prevent someone from just taking the equipment?

Only NEMO, and only with hardware. Its tool-control feature drives physical interlocks so an unqualified or unbooked user cannot start the machine, and its badge-reader kiosks track area access. Shelf's QR check-in is a softer version: fast enough that people actually do it. Everything else records intent and trusts the room. If you cannot gate access physically, plan for a regular audit instead of assuming the data stays accurate.
