Turn a guest flight spreadsheet into an airport pickup plan

Reads your attendee flight list, checks every landing live, and groups guests into shared 30 minute pickup windows so one car can collect several arrivals.

App
AviationStackGoogle SheetsGoogle CalendarSlack BotOperationsMeeting WorkflowsData Sync
PromptCreate

Build an app our events and office team opens on arrivals day to turn a spreadsheet of guest flights into an actual pickup plan. The main screen is a pickup board for a single arrivals day: every arriving guest, when their plane really lands, and which car or shuttle is collecting them. This is a working surface the coordinator keeps open and refreshes across the day, not a report or a notification.

Load the guest list with Google Sheets Get Values from a tab the coordinator chooses. Each row is one guest with their name, flight number, arrival airport IATA code, arrival date, and group or company. Let the coordinator set the spreadsheet, the tab and the arrivals date at the top of the board.

For each guest row, pull live flight detail from AviationStack Get Flights using the flight number and arrival date. Take the actual or estimated landing time, the arrival terminal and gate, and the flight status such as scheduled, active, landed, delayed or cancelled. This is the per guest source of truth and it is what the pickup buckets are built from.

Separately, show the airport's current day arrivals board from AviationStack Get Flight Timetable next to the guest list for context, so the coordinator can see what is happening at that airport more broadly. Get Flight Timetable requires both an iataCode and a type, and this app always passes type=arrival.

Rate limiting is load bearing here and the app must be built around it. Get Flight Timetable requires a paid AviationStack plan and is throttled to roughly one request every 10 seconds on paid plans, and one per 60 seconds on Free. Fetch the arrivals board once per airport per refresh and cache it in app state for that whole refresh cycle. Never call it once per guest row. If guests are landing at three airports, that is three timetable calls per refresh, spaced out, and never more. Per guest status always comes from Get Flights instead.

Render every arrival time in the arrival airport's local timezone and label it clearly, because the coordinator is often sitting in a different country. Look up each airport's timezone with AviationStack Get Airports, matching on IATA code, and cache it per airport since it does not change during the day.

Bucket guests into 30 minute pickup windows using actual or estimated landing time, never scheduled time. Everyone landing at the same airport inside the same 30 minute window forms one pickup group so a single car can collect several guests at once. Show each window as a group header with the airport, the window, the terminals involved and the guest count, with the individual guest rows underneath. Make the window length a setting the coordinator can change, and allow a buffer after landing for immigration and baggage.

In each row the coordinator assigns a driver or shuttle. Saving that assignment writes straight back to the spreadsheet with Google Sheets Update Values into a driver column on that guest's row, so the sheet stays the record of truth and the work survives a reload.

From an assigned pickup window, the coordinator creates the slot on the driver's calendar with Google Calendar Create Event. The event spans the pickup window, and its title and description carry the airport, the terminal, the landing time and the names of the guests in that pickup.

When the day plan is ready, post the finished schedule to the ops channel with Slack Bot Send a Message, grouped by pickup window and showing time, airport, terminal, assigned driver and guest names. Use the slackbot service for this.

Build in change detection that is visible rather than silent, because this is the difference between a plan the team trusts and one they re-check by hand. Store the landing time and terminal each pickup was assigned against. On refresh, if a flight is delayed enough to move that guest out of the window their pickup was assigned in, or if the arrival terminal changes, do not quietly re-sort them into a new bucket. Leave the assignment where it is and flag it loudly on the board, showing the old value beside the new one, so the coordinator can see that an already assigned pickup has gone stale and decide what to do. Guests with no assignment yet can re-bucket freely. Give the coordinator a one click way to accept the change, which moves the guest into the correct window and clears the flag.

AviationStack is read only and every one of its endpoints is a GET, so nothing is ever written back to it. All persisted state lives in Google Sheets for driver assignments, Google Calendar for the pickup slots, and Slack for the posted schedule.

What does this prompt do?

  • Reads your attendee list from Google Sheets and checks every guest's flight for its live landing time, terminal and status, with the airport's own arrivals board alongside it for context.
  • Groups guests into 30 minute pickup windows based on when planes actually land rather than the scheduled time, so one car or shuttle can collect several people at once.
  • Lets you assign a driver or shuttle to each pickup, saves that straight back to the spreadsheet, and puts the slot on the driver's calendar with terminal, landing time and guest names.
  • Visibly flags any pickup you have already assigned when a flight slips or the terminal changes, instead of quietly reshuffling your plan, and shows every time in the airport's local timezone.

What do I need to use this?

  • An AviationStack account on a paid plan, because the live airport arrivals board is not included on the free plan
  • A Google account with your guest list spreadsheet and the calendar you book drivers on
  • A Slack workspace where the app can post the finished day schedule
  • A spreadsheet tab with one row per guest: name, flight number, arrival airport code, arrival date and group

How can I customize it?

  • Change the pickup window length from 30 minutes to suit your vehicle sizes or how far the venue is from the airport
  • Add a buffer after landing for immigration and baggage so the car is due at the curb rather than at touchdown
  • Pick which Slack channel gets the finished schedule, and whether you assign named drivers or shuttle numbers

FAQs

Does this work on the free AviationStack plan?
No. The app shows the airport's current day arrivals board next to your guests, and that board is only available on a paid AviationStack plan. Individual guest flight lookups do work on the free plan, so if you only want per guest landing times you can start there and add the board later.
What happens if a flight is delayed after I have already assigned a driver?
The app flags it rather than fixing it silently. Your assignment stays exactly where you put it and the row is marked to show the old landing time or terminal next to the new one, so you can see that a pickup you already booked is now wrong and decide whether to move it. Guests you have not assigned yet regroup on their own.
Do I have to change how our attendee spreadsheet is set up?
It needs one row per guest with their name, flight number, arrival airport code, arrival date and group. Most event attendee tabs already have this. The app adds the driver assignment back into a column on the same rows, so the spreadsheet stays your record of truth.
Can it handle guests landing at more than one airport?
Yes. Guests are grouped by airport first and then by pickup window, so a multi airport arrivals day shows as separate sets of pickups. The app pulls each airport's arrivals board once per refresh rather than once per guest, which keeps it well inside AviationStack's limits.
Will arrival times show in my timezone or the airport's?
The airport's local time, clearly labelled. Coordinators are often running an arrivals day from another country, so every landing time and pickup window is shown in the time the driver and guest are actually standing in.

Related templates

Prospecting desk that builds account lists from the live web

Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.

Hyperbrowser
HubSpot
Google Sheets
App
Plan a field sales day around drive time and neglected accounts

Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.

Geolocation
HubSpot
Google Calendar
App
Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App

Stop rebuilding your arrivals day shuttle schedule by hand.

Open one board on arrivals morning, see every guest's real landing time, and batch them into pickups your drivers can actually run.