To send Airbnb guests door codes automatically, you connect your booking calendar to a system that generates a unique code for each stay and delivers it through a guest portal — here's how it works and how to set it up. Once it's running, every reservation programs its own code onto the lock, hands it to the guest through one link, and removes it at checkout, with no message to copy-paste and no code to revoke by hand.
This guide is for hosts who are still doing it manually — or doing it with a half-automated lock app — and want the whole loop to run itself. We'll cover how automatic delivery works, what you need, whether the codes expire on their own, and what your options are if you'd rather not run any hardware at all.
How does automatic code delivery work?
Automatic code delivery rests on one idea: the booking is the instruction. Instead of you watching the calendar and typing a code into a lock app, the calendar feeds a system that turns each reservation into a code on the door and a code in the guest's hands.
With Staykey, the chain looks like this:
- The calendar is the source of truth. Staykey reads your Airbnb or VRBO iCal feed, so it always knows who's arriving and when.
- The lock is programmed locally. Before check-in, Staykey writes a unique PIN onto your smart lock through Home Assistant running on a hub at the property.
- The guest gets one link. That same booking produces a guest portal page with the code, arrival steps, and house details — no app, no account.
- The code retires itself. At checkout, Staykey removes the PIN so the departing guest can't return.
Because Home Assistant runs on-property, the code lives on the lock itself. The decision to honor a valid PIN is made on local hardware, not on a server across the internet — which is why, with a local-radio lock (Z-Wave, Zigbee, or Matter), the door still opens for a guest holding a valid code even during an internet or vendor-cloud outage. (Cloud-dependent Wi-Fi locks are the exception — they may not honor codes when their vendor's servers are unreachable.) For the lock side of this in detail, see how to automate Airbnb locks with Home Assistant.
What are my options for sending codes?
Not every approach is created equal. Here's the honest landscape, from most manual to most automated.
| Approach | How codes are created | How guests get them | Codes expire? |
|---|---|---|---|
| Manual | You set a PIN on the lock by hand each stay | You copy-paste it into a message per booking | Only if you remember to remove it |
| Lock-app automation | The lock vendor's app makes a per-stay code | App or platform message, often per-vendor | Usually, but tied to one lock brand and the vendor cloud |
| Staykey-automated | Calendar-driven, unique PIN per booking | Single guest portal link per stay | Yes — programmed before check-in, removed at checkout |
The manual route works until the night you forget. Lock-app automation is a real step up, but it locks you to one vendor's hardware and cloud — when their servers blink, your access does too. The calendar-driven model keeps the logic in one place, independent of any single lock brand, and runs locally so an outage doesn't strand a guest. We compare the lock-app path head to head in Staykey vs lock apps.
What do I need to set it up?
Three pieces, and you may already own two of them:
- A booking calendar with an iCal feed. Airbnb and VRBO both expose one. This is what makes the system calendar-native — bookings, changes, and cancellations all flow from here.
- A compatible smart lock. Z-Wave, Zigbee, Matter, and most Wi-Fi locks work. If you already have a smart deadbolt, there's a good chance it transfers as-is.
- A small hub running Home Assistant. A Raspberry Pi, Home Assistant Green, or mini PC sits on the property network and does the local work. One hub handles every lock and device at the property.
Staykey ties those together. It connects to Home Assistant, syncs your calendar, and owns the fiddly part — generating each code, delivering it through the portal, and cleaning it up afterward. Pricing is flat per property: $15/mo on Host, $25/mo on ProHost, unlimited devices included, with a 30-day free trial so you can prove it on your own door before paying. You can see how the automation fits the broader system on the smart control page.
Do the codes expire automatically?
Yes — and this is the part manual hosts get wrong most often. Every code Staykey creates is bound to exactly one booking:
- It activates shortly before check-in, so an early-arriving guest isn't locked out but the code isn't live for days beforehand.
- It stays valid for the length of the stay.
- It expires and is removed at checkout, so the moment a guest leaves, their PIN stops working.
You never have to remember to revoke anything. Because removal is driven by the same calendar that created the code, a date change or cancellation updates the lock automatically — there's no orphaned code from a stay that moved or fell through. That self-cleaning behavior is the difference between "I automated my codes" and "I have a drawer full of PINs I'm afraid to delete."
How do guests actually receive the code?
Through the guest portal: one link per stay. When a guest opens it, they see their door code, step-by-step arrival instructions, Wi-Fi details, and anything else you want them to have — all on a single page.
There's deliberately no app to download and no account to create. Friction at the front door is where check-in messages get missed and "what's my code again?" texts get sent at 11 p.m. A single link the guest can reopen anytime removes that friction. And because the link is generated from the booking, you're not assembling a custom message per guest — the same automation that programs the lock fills the portal.
What if I don't want to run any hardware?
This is the honest caveat. Staykey's local-first model means there is one piece of hardware on the property: the hub running Home Assistant. There's no way around having something local — that's exactly what keeps access working through an outage and keeps you off a single vendor's cloud.
But "running hardware" doesn't mean "managing codes." The hub is a one-time purchase that quietly runs the property; once it's set up, you don't log into it per stay. Compare that to a fully cloud-only lock app, which spares you the hub but makes you dependent on that vendor's servers for every door event. We lay out that trade-off in why we built Staykey on Home Assistant.
If a single small hub per property is acceptable, you get automatic codes and local reliability. If you genuinely want zero on-site hardware, a cloud-only lock app is the alternative — with the cloud-dependency caveats above.
How do I verify it's working?
Before a real guest arrives, run a test booking on your connected calendar and confirm the full round-trip:
- A unique code is generated for that booking.
- The code appears in the guest portal link.
- The lock accepts the code at the door.
- The code expires at checkout and no longer opens the lock.
When that loop works end to end, every future booking follows the same path with no further input from you. If you're also juggling the cleaning side of a back-to-back, pair this with automating turnovers from checkout to check-in so the clean and the next guest's code are driven by the same calendar.
Put door codes on autopilot
Sending guests door codes automatically comes down to letting the booking calendar drive everything: one unique code per stay, delivered through one guest link, removed the moment the guest leaves. Staykey is the layer that connects your calendar, your lock, and your guests — and you can prove it on your existing hardware with a free 30-day trial, cancel anytime, no surprise charges. Point Staykey at a lock and a calendar, watch a real code land on the door, then start your trial when you're convinced.