Composed is the iPhone app that tells you when to leave, not when the event starts. Open any event with a location — a 2pm meeting at WeWork SoMa, a 7:30pm dinner at Lazy Bear, a 9pm flight from SFO — and Composed calculates the real-time leave-by minute using Apple Maps traffic, adds a sensible buffer for the activity type (10 minutes for a restaurant, 120 minutes for a domestic flight, 180 for international), and sends a single notification at the exact minute you should walk out the door. The app does the math you’d otherwise do at 1:30 and get wrong.

This page covers how leave-by alerts work in Composed, what gets adjusted automatically for different event types, and why the difference between “event starts at 2pm” and “leave at 1:15” is the difference between arriving calm and arriving frazzled.

What Most Calendar Reminders Get Wrong

Standard calendar reminders fire at fixed intervals before an event — 15 minutes, 30 minutes, 1 hour. The user picks the interval when they create the event. The reminder doesn’t know how long it takes to get there. It doesn’t know about current traffic. It doesn’t know about parking. It doesn’t know about airport security lines.

The result: you set a 30-minute alert for a 2pm meeting, the alert fires at 1:30, and you discover at 1:35 that traffic is bad today and you actually needed to leave at 1:15. Or: you set a 90-minute alert for a flight, the alert fires at 7:30pm for a 9pm flight, and you arrive at SFO security at 8:25 to find a 40-minute line.

The calendar told you about the event. It didn’t tell you when to leave for it. Those are different questions.

How Composed Calculates Leave-By Times

When you add an event with a location, Composed runs a calculation that combines four numbers:

1. Real-time drive time from Apple Maps. Composed queries Apple Maps for current traffic at the moment the alert is calculated. The drive time is what it will actually take right now — not an average, not a yesterday number. The query refreshes on app foreground and on every recalculation window.

2. A buffer for the activity type. A restaurant reservation gets a 10-minute buffer (find parking, walk in, get seated). A doctor’s appointment gets 15 minutes (parking, check-in paperwork, waiting room). A flight gets a much larger buffer — 120 minutes for domestic, 180 for international.

3. Door time vs. start time. For events with both a door time and a start time (concerts, theater, sports), Composed plans against door time, not start time. Arriving at door time means you’re seated when the show starts.

4. Quiet hours and notification timing. Composed never fires a non-urgency notification during quiet hours (10pm-7am by default). Urgency-layer notifications — including leave-by alerts within 24 hours of departure — break through quiet hours when needed.

The math runs whenever the app foregrounds within 8 hours of the event. If you backgrounded the app at 12pm and come back at 1pm, the leave-by alert recalculates against current traffic — not the traffic that existed at 12pm. This matters: traffic conditions in the hour before a meeting often change significantly.

The Airport Buffer — Why Flights Are Different

A 9pm flight from SFO doesn’t mean “leave at 8:30 to arrive at 9.” It means leave at 6:30 to arrive at SFO by 7, clear security by 7:30, get to the gate by 8, board around 8:30, push back at 9. The arithmetic is fundamentally different from a restaurant.

Composed handles flights with an explicit airport buffer applied at the leave-by calculation stage:

  • Domestic flights: 120 minutes between arrival at the airport and scheduled departure
  • International flights: 180 minutes between arrival at the airport and scheduled departure

The full leave-by calculation for a flight is: scheduled departure − airport buffer − Apple Maps drive time to the airport (with real-time traffic). For a 9pm departure from SFO on a domestic flight, with current 35-minute drive time from your home, the leave-by alert is 9:00pm − 2 hours − 35 minutes = 6:25pm.

Composed’s flight intelligence layer adds even more — separate alerts for check-in window opening, gate boarding, gate change notifications, and layover transitions. The leave-by alert is just the first of a sequence.

Real-Time Traffic Recalculation

The leave-by alert that’s accurate at noon may not be accurate at 1pm. Traffic in major cities changes quickly. A 25-minute drive at noon can be a 50-minute drive by 1pm if there’s an incident.

Composed solves this by recalculating leave-by alerts on app foreground and at regular intervals leading up to the event. The function — recalculateDepartureAlerts(for:) in the app’s notification system — runs on foreground for any timed event within 8 hours that has coordinates. There’s a 10-minute throttle so the recalculation doesn’t fire on every foreground event, and the work runs at background priority so it doesn’t block the UI.

The result: the leave-by alert you see at 12:30pm is based on 12:30pm traffic conditions, not 9am traffic conditions. When you reopen the app at 1pm, the alert refreshes against current data. When the notification fires, it’s the latest calculation.

What Buffer Times Composed Uses By Default

Event TypeBuffer Beyond Drive TimeWhy
Restaurant reservation10 minutesParking, walking in, getting seated
Doctor’s appointment15 minutesParking, check-in, paperwork, waiting room
Coffee meeting5 minutesFind parking, walk in
Work meeting (external office)10 minutesBuilding access, elevator, find the room
Concert / theater / showPlans against door time, not start timeBe seated when the show starts
Wedding ceremony15 minutesParking, finding the venue, being seated before processional
Domestic flight120 minutesTSA, gate walk, boarding
International flight180 minutesInternational check-in, immigration prep, gate walk
Sporting event20 minutesParking, ticket scanning, finding seats
MoviePlans against showtime, not previewsBe seated before the movie starts

The buffer is automatic based on event category. You can override it if a specific event needs more or less.

Real Scenarios

The 2pm Meeting Across Town

You have a 2pm meeting at a client’s office in a part of the city you don’t drive to often. You add the event with the address. Composed calculates the drive time at the moment you add it — 28 minutes — and adds 10 minutes for parking and the elevator. The default leave-by would be 1:22pm.

At 12:45pm, the app comes to the foreground. Composed recalculates: there’s a slowdown on the route. Current drive time is 35 minutes. The leave-by alert moves to 1:15pm.

At 1:14pm, the notification fires: “Leave now for the 2pm meeting at WeWork SoMa.” You walk out the door at 1:15. You arrive at 1:50, find parking by 1:55, and walk into the meeting at 2:00.

The 9pm Flight From SFO

You have a 9pm flight from SFO to JFK booked. You add it via screenshot import, which extracts the flight, terminal, and confirmation number. Composed identifies it as a domestic flight and applies the 120-minute airport buffer.

The leave-by calculation: 9:00pm departure − 120 minutes airport buffer − 35 minutes drive (current Apple Maps traffic) = 6:25pm.

At 6:24pm, the urgency-layer notification fires: “Leave now for JetBlue B6 723 to JFK — 35 minutes to SFO, gate closes at 8:35pm.” You leave at 6:25, arrive at SFO at 7:00, clear security by 7:25, and reach the gate by 7:45. You sit down at the gate with time to spare.

If a gate change happens between leaving home and reaching the airport, flight intelligence catches it and fires a secondary alert with the new gate.

The 7:30pm Dinner at Lazy Bear

You have a 7:30pm reservation at Lazy Bear in San Francisco. You added it via voice input: “Dinner at Lazy Bear Friday at 7:30, party of 4.” Composed geocoded Lazy Bear to 3416 19th St and applied a 10-minute restaurant buffer.

The leave-by calculation: 7:30pm reservation − 10 minutes buffer − 22 minutes current drive = 6:58pm.

At 6:58pm, the notification fires: “Leave now for Lazy Bear — 22 minutes to 3416 19th St.” You arrive at 7:20, find parking by 7:27, and walk in at 7:30 on the dot.

The International Flight to Tokyo

You have a 10am Saturday flight from SFO to NRT (Tokyo Narita). International, so the buffer is 180 minutes.

Leave-by calculation: 10:00am departure − 180 minutes buffer − 30 minutes current drive = 6:30am.

The alert fires at 6:30am with a calm framing: “Leave now for JAL JL1 to Tokyo — 30 minutes to SFO, gate closes at 9:30am.” You walk out the door at 6:30. You arrive at SFO at 7:00, clear international check-in and security by 8:00, and reach the gate by 8:30 with time to grab coffee.

What Happens When You Travel Between Events Back-to-Back

If you have a 2pm meeting downtown and a 4pm meeting in a different neighborhood, Composed calculates the leave-by for the second meeting based on travel from the first meeting’s location, not from home. The hand-off between events is automatic — Composed uses the previous event’s coordinates as the origin when the events are within a 2-hour window.

This matters more than it seems. A 4pm meeting that’s 25 minutes from your office is 45 minutes from the downtown meeting you just finished. Calculating from home instead of from the previous meeting can produce a leave-by that’s 20 minutes off.

What Composed Won’t Do (Yet)

Public transit timing is not currently part of the leave-by calculation. The drive time pulled from Apple Maps assumes a car. If your daily commute is by transit (BART, MUNI, NYC subway, London Underground), the leave-by alert may be off — you’ll need to add a few minutes for walking to the station.

Real-time weather adjustment is also not part of the buffer yet. A 25-minute drive on a sunny day might be a 45-minute drive in heavy rain. The drive time pulled from Apple Maps reflects real-time conditions, including weather-related slowdowns, but the buffer doesn’t preemptively add weather margin.

Both of these are on the roadmap. For now, the leave-by alert is best for car-based travel to events with addresses.

Why “When to Leave” Is the Hardest Question Your Calendar Answers

A calendar’s most useful answer isn’t “when is the event?” Anyone can read a time off a screen. The useful answer is “when do I need to walk out the door?” — and that requires combining three numbers (drive time, buffer, event time) with current conditions (live traffic) in real time.

Composed is built around that calculation. The leave-by alert isn’t a 30-minute pre-event reminder. It’s an answer to the question your future self will ask at 1:30pm: “Should I leave now?”

Yes. Leave now.

Works With Composed’s Other Features

The leave-by alert is part of a larger system:

The leave-by alert is the moment everything else has been preparing you for. Composed makes sure that moment fires at the right minute.