Skip to content
James Tannahill
Insights (opens in new tab) The Agency (opens in new tab) RDLB (opens in new tab) Thoughts Contact

OpenTime

Your free time, inside a link.

Calendar availabilityOn-deviceiPhone, iPad, Apple Watch

OpenTime reads the calendars already on your iPhone and shows your free time at a glance: every open half hour between meetings, inside your working hours, from only the calendars that count. It answers one question, when am I free, and it answers it before you have finished asking.

Finding a time is a small problem that wastes a large amount of attention. The usual answers are a list of times typed into a message, which goes stale the moment either calendar moves, or a booking page, which asks the other person to make an account, asks you to hand your calendar to a server, and turns a favour between two people into a transaction with a vendor in the middle.

The answer is a link. Choose the days, and OpenTime turns the gaps into a link the other person opens to tap the time that suits them, shown in their own time zone, then reply or add it to their calendar. On an iPhone it opens as an App Clip, with nothing to install; anywhere else it opens in a browser. The free times travel inside the link itself, in the part a browser never sends to a server, so there is no booking page, no account and no copy of your week held anywhere.

The same restraint runs through the rest of the app. Declined invites and events marked free never count against you, holidays and a partner's shared calendar can be left out, and questions typed in plain words, such as tomorrow afternoon for thirty minutes, are worked out on the device by Apple Intelligence. The app makes no network connections at all. A calendar is one of the most revealing things a person owns, and a tool for sharing a sliver of it should not need the rest.

How it is built

Availability is computed, not fetched. EventKit returns the selected calendars' events, and one shared set of rules, used by the app, widget, iMessage app, share sheet, Siri and Live Activity alike, decides what blocks time: an event that spans days blocks every day it touches, an all-day event blocks only when it is marked busy, and today's elapsed time is dropped. Free stretches are the complement within your working hours, cut into the meeting length you choose.

A pick-a-time link is a URL whose fragment is a compact JSON record of free stretches, encoded once in Swift and read by the App Clip, the full app and a static web page with no backend. The same format is exposed to AI assistants through a stateless MCP server at lulls.app/mcp, which can make a link from free time an assistant already knows or read one someone sent, and which stores nothing and never sees a calendar.

Calendars
EventKit, on device, selectable per calendar
Queries
Apple Intelligence Foundation Models, on device
Sharing
Pick-a-time links, times in the URL fragment
App Clip
Opens a link on iPhone with nothing to install
Surfaces
Widgets, Live Activity, iMessage, Share, Siri, Watch
Assistants
Stateless MCP server, lulls.app/mcp
Network
None from the app
Price
$0.99, once
OpenTime app icon
On iPhone

See your free time at a glance and send it as a link they pick a time from, with your calendar kept on your phone.

Download on the App Store
lulls.app