Free tool
Your bookings, in CaterCloud, in about four minutes.
| Event name* | Date* | Start time | End time | Venue / location | Full address | $$$ quoted | Heads / attendees | Category | Pipeline stage | Application deadline | Notes | Contact name | Contact email | Contact phone |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Carter Wedding | 2026-06-06 | 17:00 | 23:00 | Hawthorn House | 12 Hawthorn Rd, Sydney NSW | 5400 | 80 | catering | applied | 2026-09-01 | Vegan menu, marquee setup | Hannah Carter | hannah@cartergroup.co | 0412 998 002 |
What is in the file
15 columns, two of them required
These are the real column headings — the same ones the importer is tuned to read, generated from its own configuration rather than typed out here. Fill in what you have. A blank column costs you nothing.
Required
Without these two a row is not an event, so the import will stop and tell you which rows are missing them.
- Event nameCarter Wedding
- Date2026-06-06
Everything else
Optional. Each one you fill in is one less thing to add later — a contact becomes a customer record, a value lands on the pipeline.
- Start time17:00
- End time23:00
- Venue / locationHawthorn House
- Full address12 Hawthorn Rd, Sydney NSW
- $$$ quoted5400
- Heads / attendees80
- Categorycatering
- Pipeline stageapplied
- Application deadline2026-09-01
- NotesVegan menu, marquee setup
- Contact nameHannah Carter
- Contact emailhannah@cartergroup.co
- Contact phone0412 998 002
The file itself
Two lines, and the second one is an example
This is not a screenshot of the CSV. It is the CSV — the same bytes the button hands over, printed by the same function.
1Event name,Date,Start time,End time,Venue / location,Full address,$$$ quoted,Heads / attendees,Category,Pipeline stage,Application deadline,Notes,Contact name,Contact email,Contact phone2Carter Wedding,2026-06-06,17:00,23:00,Hawthorn House,"12 Hawthorn Rd, Sydney NSW",5400,80,catering,applied,2026-09-01,"Vegan menu, marquee setup",Hannah Carter,hannah@cartergroup.co,0412 998 002
What happens when you upload it
Five steps, and it asks before it writes
This is the actual importer, in the order it actually runs. Watch the fourth step — nothing has been written to your account at that point, and it is still asking you a question.
- 1Drop file
- 2Map columns
- 3Review
- 4Preview
- 5Done
Your spreadsheet, as it already is. No re-typing.
Mapped 4 of 5 columns · 34 rows · bookings-2026.csv
| Column | Maps to | Confidence | Sample |
|---|---|---|---|
| Event name | Event name | 98% match | Carter Wedding |
| Date | Date | 96% match | 2026-06-06 |
| Heads | Heads / attendees | 88% match | 80 |
| Value | $$$ quoted | Weak | 5400 |
| Who | Contact name | 71% match | Hannah Carter |
One column it would not guess at. You pick, it remembers.
34 rows checked
- Dates parsed — every row
- 2 bookings already in your calendar — marked as duplicates, not overwritten
- 2 rows the classifier is unsure about — they will import, flagged
Your events are in.
- Carter WeddingSat 6 Jun
- Brightside Q3 offsiteThu 11 Jun
- Wharf Rd market — stallSun 14 Jun Review
- Mabel & Co launchFri 19 Jun
- Northcote twilight marketSat 27 Jun Review
Two it was not sure about. It flagged them and imported them anyway — it did not guess, and it did not hold them back.
The part that matters
It flags. It does not guess.
A bulk import can fail in two directions, and most fail in the first. This one is built to fail in neither.
Guessing
The importer decides a row is a corporate catering job, files it, and says nothing. You find out in November, when a report is wrong and you cannot tell which rows to distrust.
Holding it back
The importer refuses anything ambiguous, and you finish the run with two thirds of your bookings in and no idea which third is missing. A partial calendar is worse than no calendar.
What it does instead
Imports the row and marks it. The chip carries the classifier’s own confidence — not a vague warning, an actual number — and there is a filter that shows you only those rows. Everything is in, and you know exactly what to check.
How to do it
From spreadsheet to a working calendar
Take the sheet
CSV, no signup, no email. Open it in Excel, Numbers or Sheets and put your bookings in — or paste the columns you need into the sheet you already keep.
Upload it
Drop the file in. It reads your column names and maps them itself; anything it will not guess at, it asks you about rather than picking for you.
Read the preview
How many are new, how many are duplicates of bookings already in there, how many rows it wants you to check. Nothing has been written yet.
Commit
The events land, and so does everything downstream — customers, calendar entries, pipeline cards. The rows it flagged are one filter away.
Already keep it in a calendar?
Then skip the spreadsheet
Most operators we talk to are running the business out of a calendar rather than a sheet, which the importer treats as a first-class starting point.
Upload an .ics file
Export from any calendar — Google, Apple, Outlook, anything — and upload or paste it. It goes through the same classify, preview and commit path as a spreadsheet, so you get the same duplicate count and the same flags. Nothing to connect and nothing to authorise.
Or connect one — with one caveat
Reading events straight out of a connected calendar works for Outlook. On Google it is deliberately switched off: the read permission Google classes as sensitive would cap our entire app at around a hundred hand-listed users, which is a price we are not willing to make every other tenant pay. Use the .ics export instead — it is the same pipeline.
The whole idea
A template you can fill in is not the hard part. A template that knows what it is unsure about is.
Every other result for this search is a blank document. import-classification is LIVE — a row below the trust threshold is created and flagged, never guessed at and never dropped.
Questions
What people ask before uploading
- Is the catering spreadsheet template free?
- Yes, and there is no signup. It is a CSV with the columns below and one example row. If you never come back, you still have a usable booking sheet.
- Do I have to fill in every column?
- No. Event name and date are the only two that are required. Everything else is optional — leave a column blank, or delete it entirely, and the import still works.
- What happens to rows it is not sure about?
- They import, and they arrive flagged. A row the classifier scored below its trust threshold gets a "Review" chip carrying its actual confidence, and there is a filter for them. It does not guess, and it does not silently drop them — those are the two failure modes that make a bulk import untrustworthy.
- Will it create duplicates of bookings I already have?
- It shows you the count before it writes anything. Duplicates are detected and reported on the preview step, and you choose whether the run adds new records only or also updates existing ones.
- Can I import from my calendar instead of a spreadsheet?
- You can upload or paste an .ics file from any calendar, which goes through the same classify-and-preview pipeline. Connecting a calendar directly to read from it works for Outlook; on Google it is deliberately switched off, because the read scope Google requires would cap our whole app at about a hundred hand-listed users.
- How big a file can it take?
- Up to 20,000 rows per import, processed in batches so a large file does not time out.