Most calendar tools show open slots. Envoy understands why a slot is open, who's asking for it, and what kind of meeting it is — then negotiates the best time on your behalf. For one-on-ones, group events, or anything in between.
Last updated: April 15, 2026
Google Calendar events, synced in real-time
General habits, blocked windows, current context
Per-invite rules, VIP treatment, exclusive slots
Traditional calendar tools show you a grid of open slots. Envoy adds three layers of awareness on top of that grid, so the times it offers are genuinely good — not just empty.
Envoy connects to your Google Calendar and syncs incrementally — only fetching events that changed since the last check. It sees titles, attendee counts, your RSVP status, and whether events are recurring. This forms the base layer of your availability. But unlike a basic free/busy check, Envoy understands nuance. A declined invite means you're free. A tentative 1:1 is probably movable. A board meeting with 12 attendees is not.
On top of your calendar, Envoy layers in your preferences — both general and current: General preferences: "I surf 8-10 AM every weekday," "I prefer mornings for calls," "Focus Time is flexible but don't schedule over it unless it's important." Current context: "I'm in Baja through Thursday," "keep meetings short this week, I'm recovering from travel," "Katie is evaluating AgentEnvoy — treat her as a VIP." These preferences are stored as structured data that directly affects scoring — not just free text that gets ignored. When you say "I surf 8-10 AM," those slots are protected just like a calendar event.
When you create a specific meeting invite, you can give Envoy additional context that applies only to that event: "Set up a call with Katie — ideally Tuesday morning." Envoy marks Tuesday morning slots as preferred for Katie's invite, but your general availability stays the same for everyone else. "Only offer 10-11 Tuesday and 2-3 Wednesday for the board review." Envoy locks the invite to exactly those windows — nothing else is shown. "Nathan is a VIP — be generous with availability." Envoy relaxes the usual protections for Nathan's invite, offering slots it would normally hold back. This layering means every invite can be as broad or as narrow as the situation requires.
Setting up takes about 5 minutes. You'll connect your calendar and have a short conversation with Envoy to teach it how you like to schedule.
Sign in with Google and grant Envoy access to your calendar. Envoy needs to read your events to understand your schedule, and optionally write events to create calendar invites when meetings are confirmed. Envoy never shares your event details with guests. It uses them for its own reasoning only.
On your first visit, Envoy looks at your upcoming week and asks a few questions: - "You have Focus Time on Wednesday. Should I protect it or treat it as flexible?" - "Your Thursday evening is open. Should I offer evening slots?" - "Anything not on your calendar I should protect? Workouts, commute, family time?" This takes 3-5 exchanges. Envoy saves what it learns — both as structured data (blocked windows, business hours) and as general knowledge (your scheduling philosophy). Calibration isn't one-and-done. As your calendar evolves, Envoy periodically offers a light check-in to stay current.
Once calibrated, you have a personal scheduling link (e.g., agentenvoy.ai/meet/yourname). Share it anywhere — email signature, LinkedIn, Slack — and Envoy handles the rest. When someone opens your link, they see a calendar widget with your available times and a chat with Envoy. Envoy proposes times, answers questions, and negotiates back and forth until a time is agreed.
There are three surfaces for getting on your calendar, from most open to most tightly scoped: your general link, office hours, and event-specific invites. Each solves a different scheduling problem.
Your general scheduling link (agentenvoy.ai/meet/yourname) works for anyone, anytime. It shows availability based on your calendar and general preferences — no event-specific context. Put it in your email signature, share it on your website, or drop it in a Slack message. It always shows your current availability because Envoy syncs your calendar in real-time. When a guest opens it, Envoy asks their name, what the meeting is about, and proposes times. It's a full scheduling conversation, not just a slot picker.
Office hours sit between your general link and event-specific invites. You declare a recurring window once — "Office hours Tuesdays 2–4pm, 20-min video calls" — and share a single URL. Anyone with the link can independently book an open slot without asking you first. Create one the same way as any other rule: type it in plain English on your Availability page. Envoy parses it, shows you the parsed fields (title, format, duration, window), and generates a shareable link on save. The link lives with the rule — pause it, edit it, or let it expire. Office hours override your soft protections inside the declared window. If you said "office hours Tuesday 2–4," Envoy offers those slots even if the schedule normally shows focus time or weekend protection there. Real calendar events and blackout days still block them — office hours never double-book you. As guests book slots, already-confirmed times disappear for the next visitor. One link, many independent bookings, no polling.
When you need more control, tell Envoy to create a specific invite: "Set up a call with Sarah about the Q2 roadmap, ideally Tuesday." Envoy creates a unique link for that meeting. It knows the guest's name, the topic, your preferred times, the format (phone/video/in-person), and any special rules. The calendar widget and Envoy's conversation both reflect those constraints. You can also lock an invite to specific time slots — "only offer 10-11 Tuesday and 2-3 Wednesday" — and nothing else will be shown. Each event-specific link is unique. You can create as many as you need, each with different rules and context.
Envoy can coordinate meetings with multiple people — not just one-on-ones.
Tell Envoy to create a group event: "Set up a surf retreat with Sarah, Mike, Nathan, and Katie — sometime the week of April 14." Envoy creates individual scheduling links for each participant. Each person has their own private conversation with Envoy — they share their availability, ask questions, and state preferences. Envoy sees all the responses and works to find a window that works for everyone. Envoy respects privacy across participants. It won't tell Katie that Mike has therapy on Tuesday — it just says "Tuesday afternoon doesn't work for the group." It shares names and aggregate availability, not private details.
As responses come in, Envoy narrows the options: "Most people are free Thursday-Sunday. A couple have afternoon conflicts on Friday." It doesn't wait for everyone before proposing — it starts suggesting times as soon as patterns emerge. If 4 out of 5 agree and the last person hasn't responded, Envoy may recommend locking it in. The host (you) has final authority on confirmation. Envoy proposes, you decide.
No. Guests can schedule with you without creating an account — they just open your link and start chatting with Envoy. However, if a guest creates an account and connects their own calendar, Envoy can cross-reference both calendars to find mutually ideal times automatically. This is optional and entirely up to the guest.
Hosts need a free AgentEnvoy account (sign in with Google) and a connected calendar. That's it. Envoy handles everything else — the scheduling page, the chat, the calendar widget, and the confirmation flow.
For those curious about how it all works technically.
Envoy uses Google Calendar's incremental sync API. On the first connection, it fetches all events in a 2-week window and stores a sync token. On subsequent checks, it sends the sync token back to Google, which returns only the events that changed since the last sync — additions, updates, and cancellations. This means Envoy doesn't re-download your entire calendar every time. A typical sync takes milliseconds and transfers only a handful of events. Syncs happen automatically whenever your availability is accessed, with a 5-minute cache window.
Every 30-minute slot in a 2-week window gets a protection score from -2 to 5: -2 Exclusive (event-specific: ONLY these times) -1 Preferred (event-specific: offer these first) 0 Explicitly free (you declined an invite) 1 Open (empty business hours) 2 Soft hold (Focus Time, tentative small meetings) 3 Moderate friction (tentative meetings, recurring 1:1s) 4 Protected (confirmed meetings, blocked windows) 5 Immovable (flights, legal, sacred items) Scores are computed deterministically from your calendar events, blocked windows, and business hours. The result is cached and only recomputed when the inputs change (checked via an input hash). The computation itself is pure JavaScript — no AI calls — and takes under 10ms. Guests see only slots scored 2 or below. Scores 3+ are hidden entirely.
Envoy uses mediation tactics to find mutually ideal times: - It leads with the broadest, best availability — not a few random slots. - It adjusts low-confidence scores (2, 3) based on meeting format, guest priority, and day density. A phone call during Focus Time is fine; a video call isn't. - When a guest counter-proposes, Envoy checks the suggested time against the scored schedule and either confirms, offers the nearest alternative, or explains why it doesn't work. - For group events, Envoy synthesizes individual responses into aggregate overlap, preserving privacy across participants. The calendar widget and Envoy's chat always read from the same scored schedule, so there's never a mismatch between what the widget shows and what Envoy says.