A scheduling board for tasks, events and reminders, with an assistant that reads your schedule and adds to it when you ask.
Everything sits under a theme you create, like Work or Personal. The same items can be read as a board of columns or as a weekly timetable, and both work on a phone.
Key Features
-
The assistant asks for its own tools. It starts with a single ability, which is to go looking for one. Each prompt, it decides whether it needs to touch your schedule at all. If it does, it describes the capability it wants in plain words so it finds the appropriate tool. If previous discussion context holds relevant information, no extra tool calls are made, saving compute cost. It holds no memory of your schedule between messages, so anything it tells you about one came from a tool call in that same turn.
-
Nothing is written without permission. Tools that read run straight away. Anything that updates information asks for your confirmation by clearly communicating what it's going to do. Ask it to remind you of something after a work meeting, it will look through your items, see when that meeting ends, and ask you whether it got the details right.
-
One collection, three kinds of items. Tasks, events and reminders share a title, a theme and timestamps, then each adds only what it needs: optional deadlines for tasks, starts and ends for event, a single time for reminders. One mutual shape behind three mutations, and it helps the app work with every item without special cases.
-
Saying yes twice does not write twice. Each approved call claims its own id in the database before it runs, so a turn that gets resent replays the first outcome instead of making a second copy. One approval usually carries several writes, and they go in together: a theme is created before the items filed under it, and the first error takes the whole set back out.
-
The search is measured, not assumed. Forty-six test queries run offline against the real embedding model and the real index. Every query naming a capability that exists comes back in the top three. The queries for things the app cannot do are the interesting half. Unrelated ones score low and get rejected, but "share my calendar" scores higher than most real matches, so the prompt refuses those and the threshold never sees them.
What's Next
-
Sophisticated Tools. Reading, creating, updating and deleting now exist for both items and themes, which is eight tools. What is missing is anything cleverer than one verb on one object: moving a block of items to another week, swapping two, clearing a theme without losing what was in it. The pipeline wins at about 30 tools, where picking between them is genuinely hard.
-
Recurring Items, Wider Scope. Weekly deadlines consolidate into one entry. Introduce monthly interfaces, daily modals, and accomodate near-indefinite coverage of time planning.
-
Testing. Twenty-one assertions now cover the transactional writes against a real replica set, and the retrieval eval covers the search layer. Neither one touches the API routes, which is the gap. I would like dedicated localhost services stood up automatically and the routes checked for connectivity, function and matching data shapes.
-
Real Usage. Every turn already records how long it took, what it retrieved and whether the write was approved. The numbers so far are from my own testing, not from traffic, so the figures that instrumentation exists to produce, cost per turn and completion rate, are not worth quoting yet.