Calendar Availability for Scheduling Replies
Point Owlat at a read-only calendar feed so AI scheduling replies propose your real open times instead of only echoing the sender's.
When an inbound email is a scheduling request, Owlat's suggested replies normally stay conservative: they reference the times the sender proposed and never invent availability of their own. If you connect a read-only calendar feed, those same scheduling replies can go one step further and propose your actual open slots — "Tue, Jul 8, 2:00 PM or Wed, Jul 9, 10:00 AM?" — grounded in your real free/busy.
With no calendar feed configured, behaviour is unchanged: scheduling replies only reference the sender's proposed times. Availability grounding is purely additive.
How it works
- Owlat reads a single read-only ICS/CalDAV subscription URL — the private iCal export most calendars offer (Google Calendar, Fastmail, Apple, Nextcloud, and any CalDAV server).
- The feed is fetched server-side, inside your deployment — the calendar URL and its contents never reach the browser.
- Only free/busy time ranges are used. Event titles, attendees, locations, and descriptions are ignored; they never enter a prompt.
- Owlat looks a couple of weeks ahead and offers up to three weekday business-hours slots (09:00–17:00 in your configured timezone) that don't collide with anything on the calendar.
Configuration
Set these environment variables on the Convex backend:
| Variable | Purpose |
|---|---|
CALENDAR_FREEBUSY_ICS_URL | Read-only ICS/CalDAV subscription URL for the calendar to treat as busy. Unset ⇒ no availability grounding. |
CALENDAR_TIMEZONE | IANA timezone (e.g. America/New_York) used to compute and label open slots. Unset ⇒ UTC. |
Use a private, read-only iCal export URL — Owlat only ever reads it, and only free/busy is derived.
Fail-soft
Availability grounding never blocks a reply. A missing URL, an unreachable feed, an oversized body, or an unparseable calendar all quietly degrade to exactly the previous behaviour: the reply references the sender's proposed times and proposes no availability of its own. Suggested replies remain advisory — nothing is auto-sent, and you always edit before sending.