# 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.

- Workflow type: app
- Services: AviationStack, Google Sheets, Google Calendar, Slack Bot
- Categories: Operations
- Published: 2026-08-14

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## FAQ

### 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.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-a-guest-flight-spreadsheet-into-an-airport-pickup-plan