Have an AI assistant read each supplier contract and list every payment, release date and attrition term with the clause quoted beside it. A named person then checks each date against the PDF, and the spreadsheet, not the AI, calculates the dates and drives the reminders. Extraction is the AI's job; verification is a person's; counting days belongs to formulas.
Contracts rarely state a date. They state a rule: "60 days before arrival", "within 14 days of countersignature", "10% of the block, rounded down". Assistants read those rules fluently and turn them into calendar dates unreliably, especially across weekends, business days and ambiguous wording. So the design below stores the rule, lets formulas calculate the date, and puts a human check between the contract and the calendar. A missed date is expensive in a specific way: the hotel resells the rooms you did not confirm, the coach company keeps a deposit, or you pay for rooms nobody slept in.
Five kinds of deadline hiding in a supplier contract
Before extracting anything, know what you are hunting for. Most missed dates fall into five groups, and each needs different fields in your sheet.
| Kind | What it looks like | What a miss costs | Fields to capture |
|---|---|---|---|
| Payment dates | Deposit at signature, instalment 90 days out, balance 30 days out | Booking cancelled by the supplier, late fees | Amount or percentage, sent or received, currency, transfer lead time |
| Release and cut-off dates | "Rooms not confirmed 60 days before arrival return to general inventory" | Allocation lost, or you pay for rooms you no longer need | What counts as confirmed, free release allowance, rounding rule |
| Attrition terms | "The group may reduce the block by 10% without charge" | A fee for rooms used below the agreed minimum | Formula type, any resale credit |
| Information deadlines | Rooming list, passenger names, final numbers, menu choices | Supplier refuses changes or reallocates | What to send, in which format |
| Cancellation steps | Charge rises from 25% to 50% inside 30 days | Cancelling later costs more | Each step's date and percentage |
Attrition comes in several formulas, which is why the sheet records the type. Mews's guide to hotel attrition lists revenue-based, cumulative, per-night and tiered structures, mentions that many contracts give a resale credit when the hotel sells the unused rooms again, and describes 10 to 20% as the typical allowable shortfall. Treat that range as background only: your contract sets the number.
The deadline sheet: store the rule, let formulas find the date
A sheet that stores finished dates goes stale the moment an arrival date moves. Store instead the anchor (the event the clause counts from), the offset in days and the weekend rule, then calculate everything else. Fourteen columns do the job, and a fifteenth catches typing errors.
- A to C: supplier, obligation, clause and page.
- D: amount in USD, or blank for non-money deadlines.
- E and F: anchor date (arrival, first service, event date, countersignature) and offset in days, negative for "before".
- G: weekend rule, such as "Previous business day" or "As stated".
- H to K: the four calculated columns below.
- L to O: owner, verified by and on, the status flag, and a direction check.
H2 Contract date =E2+F2
I2 Date after weekend rule =IF(G2="Previous business day",WORKDAY(H2+1,-1),H2)
J2 Internal due date =WORKDAY(I2,-3)
K2 Days left =J2-TODAY()
N2 Flag =IF(M2="","UNVERIFIED",IF(K2<0,"OVERDUE",IF(K2<=7,"THIS WEEK","OK")))
O2 Direction check =IF(H2<E2,"before anchor",IF(H2>E2,"after anchor","same day"))
Three details earn their place. The WORKDAY trick in column I (add a day, then step back one business day) returns the date itself when it falls on a weekday and the preceding Friday when it lands on a weekend. The internal due date in column J sits three working days before the contract date, because contracts often say payment must be received, not sent, and a transfer can take days. WORKDAY accepts a third argument, a range of holidays, if a supplier's public holidays matter. And the direction check in column O prints "before anchor" or "after anchor", so the verifier can compare it with the clause's own words ("prior to", "following"). It catches the commonest typing error: a "before" rule entered as a positive number, which pushes a deadline past the event.
The same structure works for any recurring deadline, which is why the tutorial on tracking contract renewals and deadlines with AI uses a near-identical layout; the travel version simply adds the anchor events and the attrition fields.
Reading a contract with an assistant: a prompt that refuses to guess
Upload the PDF itself, not pasted text, because payment schedules are often tables and a copy-paste can scramble them. A hotel or coach contract is a few dozen pages at most, nowhere near the file limits of the main assistants. The prompt does three things: it demands a quote for every row, it forbids calculating dates, and it gives the assistant a sanctioned way to say "not stated" or "ambiguous".
You are extracting deadlines from a travel supplier contract. Work ONLY from the text of the attached document.
Return a table with one row per obligation that has a date, a payment, a release or a penalty step. Columns:
Obligation | Clause number and page | Exact quote (copy it, max 40 words) | Anchor event | Offset (number and unit; say calendar days or business days) | Time and time zone, if stated | Amount or percentage | What happens if missed.
Rules:
- Do NOT calculate calendar dates. Give the anchor event and offset exactly as the contract words them.
- If the contract does not say something, write NOT STATED. Never fill a gap with a typical term.
- If a clause is ambiguous (for example whether the arrival day counts, or whether a payment must be sent or received), write AMBIGUOUS and explain in one line.
- After the table, list every date, number of days, percentage and amount in the contract that is NOT in your table.
Here is a summary of the kind of output you get back for a hotel group contract (18 rooms, 3 nights, $150 a room a night). It is illustrative, and I have planted three slips of the sort that really happen.
| Obligation | Clause | Rule as the assistant summarised it | Amount |
|---|---|---|---|
| Deposit 1 | 4.1, p.3 | Agreement date on cover page (20 October) plus 14 days | 25%, $2,025 |
| Deposit 2 | 4.2, p.3 | 90 days before arrival | 25%, $2,025 |
| Balance | 4.3, p.3 | 30 days before arrival | 50%, $4,050 |
| Release date and attrition | 7.1, p.5 | 60 days before arrival; free reduction of 10% of the block = 2 rooms | Charge for later releases |
| Rooming list | 7.4, p.6 | 21 days before arrival | None |
It looks tidy, and it hides three problems. The first row anchors on the cover-page date, but clause 4.1 says "within fourteen days of the date this agreement is countersigned by the Hotel", and the hotel countersigned on 5 November, so the deposit is due 19 November rather than 3 November. The release row says 10% of 18 rooms is 2 rooms, but clause 7.1 reads "rounded down to the nearest whole room", which is 1 (10% of 18 is 1.8). And the balance row dropped the words "in cleared funds" that appear in clause 4.3, which changes what "paid on time" means. None of the three would be visible in the summary. All three show up in seconds when a person reads the clause.
The assistant is not being careless. It is summarising, and summaries drop qualifiers. That is why the quote column matters, and why the broader tutorial on whether AI can review a contract keeps returning to the same advice: use it to find and organise clauses, and read the clauses yourself. Each slip then becomes a rule in your prompt for next time: use the countersignature date as the signature date, apply any rounding rule exactly as worded, keep qualifiers such as "cleared funds" in the summary. The prompt grows from your own near-misses.
The verification pass: ten minutes with the PDF
This step is the whole safety mechanism, so make it mechanical. A named person works down the rows, money rows first.
- Find the quote. Search the PDF for the first six words of the quoted text. If the search finds nothing, the assistant paraphrased or invented the clause; delete the row and extract it again.
- Read the whole clause. Include the sub-clauses and footnotes. Qualifiers like "in cleared funds", "rounded down" and "unless otherwise agreed in writing" live there.
- Check the five parts of the rule. The anchor event, the offset, calendar or business days, any weekend rule, and the time of day. Write down anything the contract leaves open.
- Count one date by hand. Take one row per contract, count the days on a calendar and compare it with the sheet. It catches sign errors and wrong anchors.
- Initial the row. Only then does the "verified by and on" cell get filled and the flag change from UNVERIFIED to a date-based status.
Then ask the assistant for one more pass: "List every number of days, percentage and amount in this contract that is not in your table." That catches clauses it skipped. For contracts above a value you choose, say $5,000, have a second person verify the money rows. If the check takes you longer than reading the contract fresh, the extraction prompt is wrong, not the idea. Law firms run the same pattern with court deadlines, where every computed date gets a human check, as the tutorial on law firm docketing with AI covers.
A 36-guest trip, four suppliers, eleven dates
Here is an illustrative incentive trip run by a small travel company: 36 guests, arriving Friday 11 June 2027 for three nights. There are four suppliers: a hotel block of 18 twin rooms at $150 a room a night ($8,100), a coach company for transfers and two day trips ($6,400), a group dinner for 36 at $62 a head ($2,232), and 36 attraction tickets at $28 ($1,008). That is $17,740 of commitments governed by eleven dates. The sheet calculated these after the contracts were verified:
| Supplier and obligation | Contract rule | Date the sheet calculates | Internal due | Amount |
|---|---|---|---|---|
| Hotel: deposit 1 | 14 days after countersignature (5 Nov) | Thu 19 Nov 2026 | Mon 16 Nov | $2,025 |
| Hotel: deposit 2 | 90 days before arrival; weekend rolls back | Sat 13 Mar, so Fri 12 Mar 2027 | Tue 9 Mar | $2,025 |
| Hotel: release date | 60 days before arrival; 1 room free | Mon 12 Apr 2027 | Wed 7 Apr | $450 per room released late |
| Hotel: balance | 30 days before arrival, cleared funds | Wed 12 May 2027 | Fri 7 May | $4,050 |
| Hotel: rooming list | 21 days before arrival | Fri 21 May 2027 | Tue 18 May | Names |
| Coach: deposit | 75 days before first service; contract silent on weekends | Sun 28 Mar, so Fri 26 Mar 2027 | Tue 23 Mar | $1,280 |
| Coach: cancellation step | Charge rises to 50% 30 days out | Wed 12 May 2027 | Fri 7 May | Cost step |
| Coach: final numbers and balance | 14 days before first service | Fri 28 May 2027 | Tue 25 May | $5,120 |
| Attractions: names and payment | 28 days before the visit (Sun 13 June) | Sun 16 May, so Fri 14 May 2027 | Tue 11 May | $1,008 |
| Restaurant: menu choices | 14 days before the dinner (Sat 12 June) | Sat 29 May, so Fri 28 May 2027 | Tue 25 May | Choices |
| Restaurant: final numbers | 7 days before the dinner | Sat 5 June, so Fri 4 June 2027 | Tue 1 June | 36 covers, $2,232 |
Five of the eleven dates land on a weekend (the second hotel deposit, the coach deposit, the attraction payment and both restaurant dates), which is why the weekend column exists. The hotel contract states its rule (the previous business day), so Saturday 13 March becomes Friday 12 March. The coach contract says nothing, so the company applies a house rule and treats Sunday 28 March as Friday 26 March, then asks the coach company to confirm in writing. Note also that the anchors differ: arrival, first service, the dinner date, the visit date. A single "days before arrival" column would have put four of these rows on the wrong day.
On Monday 8 March 2027 the sheet's three-week view shows two items: the second hotel deposit (internal due Tuesday 9 March) and the coach deposit (Tuesday 23 March). Nothing else needs attention, and that quiet is the point.
The release date shows the sheet doing real work. Suppose that by Wednesday 7 April, the internal due date for the release, 33 guests are confirmed. Twin sharing needs 17 rooms (16 twins and one single), so the company releases one room, which the contract allows free. If only 31 were confirmed, it would need 16 rooms: one free release and one room at the full three nights, 3 x $150 = $450. In the 31-guest case the rounding slip from the extraction stage would have bitten: believing two rooms could go free, the planner would have released two and been invoiced $450 for the second.
Getting dates from the sheet to the people who must act
A sheet nobody opens does not prevent a missed deadline. Give it three routes into daily work.
- A Monday review. Fifteen minutes with the sheet sorted by internal due date, filtered to anything flagged OVERDUE, THIS WEEK or UNVERIFIED. Each flagged row gets an owner and a day.
- Calendar events. Google Calendar accepts a CSV with columns such as Subject, Start Date, Description and Location (its help page says only Subject and Start Date are required), imported from Settings, then Import & export. Two limits matter: an import is a one-off copy, so events do not change when the sheet does, and the help page lists no reminder column. So create a calendar used only for deadlines, set default notifications on it, and when the sheet changes, clear that calendar and re-import. Put the amount and the clause in the Description so the event is actionable without opening the sheet.
- An automatic row-to-event step. If you already run Zapier or Make, a new row can create a calendar event on its own. Zapier's free plan allows 100 tasks a month and two-step Zaps (a trigger and one action), which covers this single job for a few trips at a time. Start with the manual import, and automate once the sheet is trusted.
The payments themselves belong in the books. If you also receive commission from suppliers, the tutorial on matching supplier payments and commission with AI covers the reconciliation side, and the group trip info pack tutorial shows what to send guests once the dates are safe.
When the wording is unclear, ask in writing
The extraction prompt flags AMBIGUOUS clauses. Do not resolve them by guessing; ask the supplier, and keep the answer. This is the best everyday use of AI in the whole process, because drafting a polite, specific email is exactly what it does well, while the facts stay in your hands.
Draft a short, polite email to a hotel group sales contact. I need written confirmation of four points in our contract (clause numbers below). Quote each clause, then ask one clear question per point, numbered, so they can answer by number.
1. Clause 4.3: balance due "30 days prior to arrival in cleared funds". Does the arrival day count as day 0 or day 1? Is the deadline the date funds must leave our bank or arrive in yours?
2. Clause 7.1: free release of 10% of the block "rounded down". Please confirm that for 18 rooms this means 1 room.
3. Clause 4.2: if a due date falls on a weekend, is payment due on the previous or the next business day?
4. Is any deadline measured at a particular time or time zone?
Keep it under 150 words. No promises on our behalf. Sign off as [your name].
When the answer arrives, paste it into the sheet's notes column with the date, attach the email, and adjust the weekend rule or offset if needed. If a supplier never replies, use the stricter reading, the earlier date, and note that you did.
Keeping the sheet true after signing
Contracts change by email. A hotel extends the rooming-list deadline by a week, a coach company moves a deposit, a venue swaps a clause on a call and confirms it in a line. If those changes never reach the sheet, the sheet lies with confidence. Two rules prevent this.
First, every change becomes a new row, and the old row is marked "superseded by" with the source attached, never overwritten. The history matters when a supplier later disputes what was agreed. Second, use the assistant as a comparer, not an editor. Paste the supplier's email and the current rows and ask: "Which rows does this email change? List them and quote the sentence that changes each. Do not edit anything." A person updates the sheet and initials the new row, exactly as for the original contract.
Here is how that plays out on the 36-guest trip. In April the hotel's group coordinator writes: "Happy to move your rooming list to 14 days before arrival. Our accounts team will also need the balance in cleared funds 35 days prior, in line with our updated terms." Asked which rows the email changes, the assistant returned one: the rooming list, now 14 days before arrival, with the first sentence quoted. It read the second sentence as a reminder of existing terms and left the balance row alone. That second sentence is the dangerous one. Thirty-five days before Friday 11 June is Friday 7 May, five days earlier than the 12 May in the sheet, so the old internal due date of Friday 7 May now falls on the deadline itself rather than three working days ahead of it. Left unchanged, the sheet would have scheduled the balance for the last possible day, with no room for a slow transfer.
The fix is a second question in the same chat: "List every sentence in this email that contains a number of days, a date, an amount or a percentage, and say which row each one affects." It catches the changes the assistant decided were not changes. Two new rows then go in, each marked as superseding an old one, with the email attached: rooming list Friday 28 May (internal due Tuesday 25 May) and balance Friday 7 May (internal due Tuesday 4 May). And because "updated terms" can mean the hotel is applying conditions you never signed, reply asking which clause of your contract allows the change before you accept it.
Confidential rates and bank details before you upload
Contract rates are often confidential, and some contracts say so in a clause. Check yours before uploading, and use a business plan where you can: the main vendors' business plans do not train on your content by default, and consumer plans have a model-training switch in privacy settings that you should turn off. Strip bank details from anything you upload. Deadline extraction needs clauses, not guest data, so never attach rooming lists or passenger manifests with passport numbers to the same chat.
Six ways a deadline still slips through
- Unlogged amendments. The commonest failure by far. A phone agreement never reaches a row.
- Time-of-day cut-offs. "By 17:00 hotel time" needs a time column and a thought about time zones, which a date-only sheet ignores.
- Public holidays. WORKDAY skips weekends but not holidays unless you give it a list. Keep a Holidays tab for each supplier's calendar.
- Scanned or handwritten amendments. Assistants misread stamps and handwriting. Type those changes in by hand and verify against the page.
- Moved trips. When the arrival date changes, the sheet recalculates in seconds, but the supplier's deadlines may have changed contractually too. Re-verify every row after a date move.
- Wrong signs. A positive offset where the clause says "before". The direction check in column O exists for this.
The near-miss log: proof the sheet is working
Keep a near-miss log. Any deadline met with fewer than three days to spare goes in it, with the reason. Review it monthly. Three numbers tell you most of what you need: the count of UNVERIFIED rows (it should be zero for any date inside the next 60 days), the number of days a new contract's rows stay unverified, and the near-misses per trip. If near-misses cluster around one supplier or one kind of clause, change the prompt or the buffer for that kind rather than adding more reminders. A sheet that is quiet most weeks, and loud only when something truly needs doing, is the sign that people trust it.
Questions travel teams ask about AI and contract dates
Can AI read scanned or photographed contract pages?
Often, but treat the result with more suspicion. If you cannot select text in the PDF, the assistant is reading an image, and small print, stamps and handwritten amendments are where errors creep in. Ask for the exact quote beside every date, and have the person verifying open the page itself rather than trusting the extract.
Do we need dedicated software, or is a spreadsheet enough?
For a small company with a handful of trips running at once, a shared spreadsheet with these formulas is enough, because the hard part is verification, not storage. Group-travel and contract-management tools typically add reminders, approvals and audit trails, which start to pay off when several people edit dates across dozens of trips. Whatever you use, keep the clause quote and the verifier's initials beside every date.
How much earlier than the contract date should we pay or confirm?
Pick a house buffer and apply it to every row. Three working days before the contract date is a sensible start for payments, because transfers can take days to clear and contracts often say funds must be received. Use a longer buffer for anything that needs the client's sign-off, such as final numbers.
Should AI send suppliers reminders or confirmations for us?
Let it draft, not send. A reminder that goes out with the wrong date or an unchecked number creates the very problem you are trying to avoid. A person reads the draft against the sheet, then sends. Drafts of clarification questions and payment requests to your finance team are the best use.
Further reads
- Venue Booking Software: Calendar, Deposits and AI Replies Compared — Calendar and deposit tools compared, from the venue's side.
- Event Venue Contract: Deposit, Cancellation and Damage Terms With AI — What deposit and cancellation terms look like in a venue contract.
- Travel Agent Checklist: Pre-Departure Document Packs With AI — Once dates are safe, assemble the pre-departure packs.
- AI in Travel and Transport: Jobs a Small Coach Hire Firm Can Hand Over — What a coach operator can hand over to AI.
- ChatGPT Prompts for Travel Agents: Delays, Cancellations, Refunds — Prompts for when a supplier changes a date and refunds follow.
- How to Set Up Human Review for AI Work Without Slowing Down — Set up the human check without slowing everything down.
- AI Contract Review for Small Firms: What It Catches and Misses — What AI contract review catches and what it misses.
- AI Supplier Management: Track Prices, Lead Times, and Risk — Track supplier prices, lead times and risk alongside dates.
- Travel Agency CRM: What a Small Agency Needs and Where AI Helps — The small-agency minimum for a travel agency CRM: lead stages, trip records and reminders, with AI used for notes and email drafts.
- How to Price Tour Packages: Per-Person and Group Rates With AI — A small operator's cost per departure, break-even group size, group quotes and seasonal uplift, tested by replaying a season at new prices.
- Yoga Retreat Business Plan: Budget, Pricing and Break-Even With AI — A worked 12-guest retreat budget: break-even formula, a ChatGPT spreadsheet prompt, a cash timeline and a refund schedule that mirrors your venue's terms.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Calendar Help (import events from CSV or ICS); Google Sheets function list (WORKDAY); Mews, hotel attrition guide (attrition structures, cut-off dates); hotel-industry glossaries on attrition and rooming lists; vendor privacy pages for ChatGPT and Claude business plans.