Every drawing, every phone number, one gig.
The gig already is the event, so the paperwork goes right on it. Upload the stage plot, the power one-line, the walkthrough video — or paste a link to the client's live sheet. Open one and it fills the screen: drag to pan, wheel to zoom, read the port labels. Meanwhile crew, client, venue and vendor all come from one directory you typed once.
The stage plot is in somebody's inbox.
The drawing came in as an email attachment three weeks ago. The run of show is a link the planner sent by text. The venue's dock contact only exists in the salesperson's phone, and the A2 you hired last spring is a number somebody has to go find again. Every one of those is a document or a person that exists — just not anywhere the crew standing at the loading dock can reach.
So the morning of the show turns into a scavenger hunt. Somebody forwards a PDF, somebody screenshots a plot and it comes out unreadable, somebody re-types the same catering contact into a fourth spreadsheet. And when a diagram finally does open, it opens as a download in a browser tab where you can't zoom in far enough to read which output feeds the confidence monitor.
With GigPal PRO: the show's documents ride on the show, they open full-screen inside the app instead of dumping into a tab, and every phone number on the gig comes from one directory that got typed once.
From scattered files to one place the crew can reach.
Put the paperwork on the gig.
Two buttons. + ADD FILE takes images, PDFs, documents, spreadsheets, decks, audio and video. ADD LINK takes a URL instead — paste the address of a live shared sheet and it saves as an attachment like any other, so the run of show stays the client's document and you stop chasing revisions. Links get a label guessed from the address, and you can rename it before it saves.
It previews where it sits.
The list isn't a row of filenames. An image draws at its own aspect ratio — full width, natural height, no grey letterbox padding out a wide stage plot. A PDF renders its first page right inside the card. Anything the browser can't draw gets an honest "tap to open" card instead of a broken frame. And when a gig collects a dozen documents, the per-card ▾ HIDE collapses a preview to its filename without deleting anything.
Open it full-screen and actually read it.
Tap the drawing and it opens over the app, not into a browser tab. Drag to pan. The wheel zooms toward your pointer rather than the middle of the screen, so you close in on the corner you're looking at. Double-click zooms in a step. FIT, 100% and ⟲ RESET sit in the bar, the range runs 8% to 1200%, and FIT refuses to blow a small image up past full size. The pan is written straight to the screen instead of through a redraw, so dragging a big plot stays smooth.
The people come from one directory.
Crew, client, venue and vendor live in a single People Directory with a name, role, company, phone, email, notes and the days they normally work. Add somebody to a gig from that list; add a brand-new person on the gig and they land in the directory too, so you never type a number twice. The gig also keeps its own copy of what it used — a call sheet printed six months from now still shows the number that person had when they worked the show.
Ask, track the reply, print the call sheet.
Each person on the roster carries a reply badge: PENDING, ASKED, CONFIRMED, DECLINED. Tapping it cycles the human verdicts — ASKED is only ever set by actually sending the email, so the roster never shows you reached out when you didn't. On a multi-day gig, day chips say who's on which days and warn when a date falls outside that person's usual work days. Then PRINT CALL SHEET lays it out day by day with names, roles and phone numbers.
The parts you only notice when they're missing.
The row and the viewer can't disagree
What kind of file something is gets decided in exactly one place, and the row icon, the inline preview and the full-screen viewer all ask it. That used to be three separate copies — teach one about a new image format and the list would draw a thumbnail while the lightbox it opened said "can't preview". One answer now, so that class of bug can't come back.
Opens on your domain, not a storage host
When a file does open in a new tab, the URL is routed through the app's own domain rather than exposing where the bytes are stored. Small thing — until you hand a laptop to a client and the address bar reads like somebody else's backend.
Cases and setups carry documents too
The same panel mounts on a road case as WIRING DIAGRAMS and on a setup as SPEC DRAWINGS · DATA & POWER PLANS. A flypack's signal drawing travels with the flypack. A setup's wall spec and power one-line copy onto every gig that setup lands on, so the drawing arrives with the rig instead of being remembered separately.
A save that can't quietly do nothing
Attach a document right after the app comes back from offline and the record it needs to write against may not be in memory yet. It looks the gig up by its code and writes anyway. Before that, the screen showed a save confirmation and the attachment never reached the server — the worst kind of failure, because nobody goes back to check.
Venue contacts carry an address
A venue gets a shipping-address field that crew and client records don't — because a venue is a place gear goes, and that address is what prints as SHIP TO on a bill of lading. Enter the dock address once, on the venue, and freight paperwork stops being retyped.
Everyone reads, admins write
Any signed-in crew member can look up a number at 6am — that's the whole point of a shared directory. Editing, adding and deleting are admin-only, matched to the rule the database itself enforces, so nobody gets a screen that accepts a change the server then throws away.
Pasting the same sheet twice doesn't double it
Import checks every incoming row against the directory first — on email, or on name and phone together — and tells you the count before you commit: how many are new, how many it's skipping. Adding six people to a list you already imported is a re-paste, not a cleanup job afterward.
A stray tap doesn't wipe out a half-typed contact
Cancel, the ✕ in the corner, Escape, the Android back button — every exit from a half-filled contact form asks first rather than discarding what you typed. Removing an attachment works the same way: ✕ becomes REMOVE? and waits for a second tap.
- Previews inline
- Images (PNG, JPG, GIF, WEBP, BMP, SVG, HEIC) at their own aspect ratio; PDFs render page 1 inside the card. Audio and video play in the full-screen viewer. Everything else is a tap-to-open card that says so plainly.
- Upload accepts
- Images, audio, video, PDF, DOC/DOCX, XLS/XLSX, CSV, TXT, PPT/PPTX and KEY. Or skip the upload entirely and attach a link to anything on the web.
- Viewer controls
- Drag to pan · wheel zooms at the pointer · double-click to zoom in · FIT / 100% / ⟲ RESET · 8%–1200% · ↗ NEW TAB from every mode · Esc to close.
- A contact holds
- Name, kind (CREW · CLIENT · VENUE · VENDOR), role, company, phone, email, notes and usual work days — plus a shipping address on venues. Tap ✆ to call, ✉ to write.
- Import mapping
- Paste rows or upload a CSV/TSV. Delimiter and header row are detected, then you point each column at Name, Role, Company, Phone, Email, Kind, Notes — or skip it. Works with whatever column order your list already uses.
- Reply states
- PENDING (never asked), ASKED (set only by sending), CONFIRMED, DECLINED. A badge you can tap shows ⟳ so it doesn't look like a plain label. Re-confirming everyone at once skips anyone who already declined.
One place the crew can actually reach.
Put this weekend's show in it.
Drop the stage plot on the gig, paste the run-of-show link, import your contact list, and hand the crew one place to look.
Get Started → All features →