@agent-native/core 0.172.4 → 0.172.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/factory/AGENTS.md +5 -3
  3. package/corpus/templates/factory/actions/babysit-pull-request.ts +6 -0
  4. package/corpus/templates/factory/actions/list-factory-automations.ts +2 -2
  5. package/corpus/templates/factory/actions/save-factory-automation.ts +0 -5
  6. package/corpus/templates/factory/changelog/2026-08-24-slack-checking-works-for-teammate-created-factories.md +6 -0
  7. package/corpus/templates/factory/changelog/2026-08-24-teammates-can-edit-and-run-factory-jobs.md +6 -0
  8. package/corpus/templates/factory/server/lib/factory-scope.ts +8 -0
  9. package/corpus/templates/factory/server/lib/require-factory-automation.ts +1 -9
  10. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +2 -1
  11. package/dist/automations/service.d.ts +6 -0
  12. package/dist/automations/service.js +20 -0
  13. package/dist/client/settings/SettingsPanel.js +80 -33
  14. package/dist/collab/awareness.d.ts +2 -2
  15. package/dist/jobs/run-now.js +2 -2
  16. package/dist/observability/routes.d.ts +3 -3
  17. package/dist/progress/routes.d.ts +1 -1
  18. package/dist/resources/handlers.d.ts +1 -1
  19. package/dist/server/realtime-token.d.ts +1 -1
  20. package/dist/server/transcribe-voice.d.ts +1 -1
  21. package/dist/vite/client.js +5 -2
  22. package/docs/content/docs-components.mdx +20 -1
  23. package/docs/content/template-calendar-agent.mdx +63 -26
  24. package/docs/content/template-calendar-developers.mdx +165 -40
  25. package/docs/content/template-calendar-features.mdx +276 -0
  26. package/docs/content/template-calendar-integrations.mdx +78 -0
  27. package/docs/content/template-calendar.mdx +56 -123
  28. package/package.json +3 -3
  29. package/docs/content/template-calendar-booking-links.mdx +0 -73
  30. package/docs/content/template-calendar-scheduling.mdx +0 -128
@@ -0,0 +1,276 @@
1
+ ---
2
+ title: "Calendar: Features"
3
+ description: "Every core Calendar feature, including views, availability, finding time, and booking links, with setup steps for each."
4
+ ---
5
+
6
+ # Features
7
+
8
+ Every core Calendar feature: how it works, and how to set it up. See
9
+ [Calendar](/docs/template-calendar) for the overview and
10
+ [Talk to the Agent](/docs/template-calendar-agent) for the full list of
11
+ prompts.
12
+
13
+ ## Calendar views
14
+
15
+ <Video
16
+ src="https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fd033f1071872452687ea570ed2ab6da3?alt=media&token=c6318aee-94cc-4898-be16-32b8fbf4fb2f&apiKey=YJIGb4i01jvw0SRdL5Bt"
17
+ alt="A brief tour of the calendar view."
18
+ caption="A tour of the calendar view, including viewing another person's calendar and adding events."
19
+ autoplay={true}
20
+ loop={true}
21
+ />
22
+
23
+ Switch between day, week, and month view from the toolbar. Every view reads
24
+ your real, connected Google Calendar. Nothing is cached or synthetic.
25
+
26
+ - **Multiple accounts** show in the same grid, color-coded, if you connect
27
+ more than one Google account (work + personal).
28
+ - **Read-only ICS/`webcal://` feeds** cover things like company holidays, a
29
+ conference schedule, or a teammate's public calendar. They mix into the
30
+ same view with their own color, though you can't edit events that come
31
+ from a feed.
32
+ - **Overlay a teammate's calendar** so their events show alongside yours,
33
+ each in their own color. This helps when a manager needs to check a direct
34
+ report's schedule.
35
+ - **Attendee timezones** show a guest's local start time when Google reports
36
+ it, or from a saved per-guest override when it doesn't.
37
+ - **Working locations** (home, office, elsewhere) show as a real status, not
38
+ a generic all-day event, and never block your availability. **Recurring
39
+ events** are supported end to end. Edit a single occurrence or the whole
40
+ series.
41
+
42
+ <Callout tone="warning">
43
+
44
+ If part of your schedule fails to load, whether one account's token expired
45
+ or a feed URL times out, the app tells you which source failed instead of
46
+ quietly showing an empty day. A blank calendar and a broken connection look
47
+ different on purpose, so you never mistake "nothing loaded" for "nothing
48
+ scheduled."
49
+
50
+ </Callout>
51
+
52
+ <Steps>
53
+
54
+ ### Connect your calendar
55
+
56
+ Open **Settings**, click **Connect Google Calendar**, and approve. Connect
57
+ more accounts the same way if you want personal + work overlayed.
58
+
59
+ ### Subscribe to a read-only feed
60
+
61
+ In **Settings → External Calendars**, paste an ICS or `webcal://` URL.
62
+
63
+ ### Overlay a teammate's calendar
64
+
65
+ Ask the agent to "Add Priya's calendar to my view in blue," or add them from
66
+ **Settings → Overlays**.
67
+
68
+ </Steps>
69
+
70
+ ## Finding time
71
+
72
+ Ask the agent to find time and it checks your availability and your real
73
+ Google Calendar events. When you name other people, it also checks their
74
+ free/busy status, then proposes concrete slots. Once you pick one, the agent
75
+ books it directly on Google Calendar.
76
+
77
+ When you're scheduling with someone new, search by name or email instead of
78
+ typing an exact address. Calendar searches your Google Contacts plus your
79
+ Workspace directory, so you can ask "who is Dana at Acme" or "find people
80
+ named Priya" and get real matches to pick from.
81
+
82
+ <Diagram id="doc-block-calendar3" title="From availability to a booked event" summary="The agent combines your availability rules, your existing events, and (when named) other attendees' free/busy before proposing slots.">
83
+
84
+ ```html
85
+ <div class="diagram-flow">
86
+ <div class="diagram-col">
87
+ <div class="diagram-box">
88
+ Your availability<br /><small class="diagram-muted"
89
+ >weekly hours, buffer, notice</small
90
+ >
91
+ </div>
92
+ <div class="diagram-box">
93
+ Existing events<br /><small class="diagram-muted"
94
+ >Google Calendar, live</small
95
+ >
96
+ </div>
97
+ <div class="diagram-box">
98
+ Attendees' free/busy<br /><small class="diagram-muted"
99
+ >when you name people</small
100
+ >
101
+ </div>
102
+ </div>
103
+ <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
104
+ <div class="diagram-panel center">
105
+ <span class="diagram-pill accent">Find a time</span
106
+ ><small class="diagram-muted">candidate slots</small>
107
+ </div>
108
+ <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
109
+ <div class="diagram-box">You pick one</div>
110
+ <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
111
+ <div class="diagram-box">Event created on Google Calendar</div>
112
+ </div>
113
+ ```
114
+
115
+ ```css
116
+ .diagram-flow {
117
+ display: flex;
118
+ align-items: center;
119
+ gap: 12px;
120
+ flex-wrap: wrap;
121
+ }
122
+ .diagram-flow .diagram-col {
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: 10px;
126
+ }
127
+ .diagram-flow .diagram-arrow {
128
+ font-size: 22px;
129
+ line-height: 1;
130
+ }
131
+ .diagram-flow .center {
132
+ display: flex;
133
+ flex-direction: column;
134
+ align-items: center;
135
+ gap: 4px;
136
+ }
137
+ ```
138
+
139
+ </Diagram>
140
+
141
+ <Steps>
142
+
143
+ ### Ask for a slot
144
+
145
+ "Find a 1-hour slot next week with Sam and Priya."
146
+
147
+ ### Pick one
148
+
149
+ The agent proposes concrete slots. Pick one in chat, or from the suggested
150
+ options in the UI.
151
+
152
+ ### It's booked
153
+
154
+ The agent creates the event directly on Google Calendar and it shows up in
155
+ your view immediately.
156
+
157
+ </Steps>
158
+
159
+ ## Booking links
160
+
161
+ Booking links are public pages where anyone can pick a time and book it
162
+ directly onto your calendar. This is the Calendly-style part of Calendar: set
163
+ up meeting types, the availability they draw from, and track who books.
164
+
165
+ ### Meeting Types
166
+
167
+ A meeting type is one specific booking link, like "15 min intro" or "30 min
168
+ demo," each with its own duration, fields, and conferencing choice.
169
+
170
+ <Steps>
171
+
172
+ ### Create a meeting type
173
+
174
+ Give it a title and duration (like "15 min intro" at 15 minutes), then ask
175
+ the agent or click **New booking link**.
176
+
177
+ ### Add options
178
+
179
+ Set alternate durations so a visitor can choose 15, 30, or 60 minutes on the
180
+ same link, custom fields to collect a company name or topic, a conferencing
181
+ choice (Google Meet, Zoom, or a custom link), a color, and required
182
+ co-hosts, other people who must also be free before a slot is offered. When
183
+ someone books, everyone (you and your co-hosts) gets invited to the resulting
184
+ Google Calendar event.
185
+
186
+ ### Connect Zoom (optional)
187
+
188
+ Google Meet needs no setup. It's added the same way any Google Calendar
189
+ invite gets a Meet link. For Zoom, connect your account once from
190
+ **Settings**. After that, any meeting type set to Zoom creates a real Zoom
191
+ meeting for each new booking and attaches the join link to the confirmation.
192
+
193
+ ### Share it
194
+
195
+ Share the public URL anywhere. Grant a teammate viewer/editor/admin access
196
+ from the link's **Share** menu if they should help manage it too. That's
197
+ separate from public booking access, which anyone with the URL always has
198
+ while the link is active.
199
+
200
+ </Steps>
201
+
202
+ Every meeting type has a public URL at `/book/{your-booking-name}/{slug}`,
203
+ for example `/book/steve/30min`. Your booking name is generated automatically
204
+ from your email the first time you create a link, and you can change it later
205
+ from Settings (up to three times every 30 days, since it's part of every
206
+ public link you've shared).
207
+
208
+ <Video
209
+ src="https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2F3dda132ad91b44dfa11c9d4e4b9e1b79?alt=media&token=b25577a1-ef91-48f8-a474-e5a39b246c25&apiKey=YJIGb4i01jvw0SRdL5Bt"
210
+ alt="Video showing how to create a new booking meeting type."
211
+ caption="Video showing how to create a new booking meeting type."
212
+ autoplay={true}
213
+ loop={true}
214
+ />
215
+
216
+ - **Renaming a meeting type**: change its URL slug at any time, for example
217
+ from `/book/steve/into-call` to `/book/steve/intro`. The old URL keeps
218
+ working: visitors who still have it are automatically forwarded to the new
219
+ one, so nothing you've already shared breaks.
220
+
221
+ ### Availability
222
+
223
+ Availability is a weekly schedule: which days you work and what hours you're
224
+ open on each one, plus your timezone. On top of that you can set **buffer
225
+ time** between meetings so back-to-back bookings don't happen, **minimum
226
+ notice** so people can't book you five minutes from now, **how far ahead**
227
+ people can book (advance window), and a **default slot length** for new
228
+ meeting types.
229
+
230
+ The agent reads the same schedule the UI edits, so "set my hours to 9-5
231
+ weekdays" and dragging the sliders in the Availability tab produce the same
232
+ result.
233
+
234
+ <Steps>
235
+
236
+ ### Set your weekly hours
237
+
238
+ Switch to the **Availability** tab and toggle on the days and hours you're
239
+ open, per day if needed.
240
+
241
+ ### Add buffer and notice
242
+
243
+ Set **buffer time** between meetings and a **minimum notice** window so
244
+ people can't book you five minutes from now.
245
+
246
+ ### Set your advance window and default slot length
247
+
248
+ Choose how far ahead people can book, and the default duration new meeting
249
+ types start with.
250
+
251
+ </Steps>
252
+
253
+ Or just ask the agent: "Block Friday afternoons on my availability."
254
+
255
+ ### Bookings
256
+
257
+ A visitor picks an available time from your real availability, fills in
258
+ their name, email, and any custom fields you added, then confirms. They get a
259
+ confirmation with a private manage link. No sign-in is required, since the
260
+ link itself is the credential.
261
+
262
+ - **Managing bookings**: you (the host) see every booking, past and
263
+ upcoming, filtered by all, confirmed, or cancelled, in the **Bookings** tab.
264
+ - **Rescheduling or cancelling**: visitors use their manage link to move to
265
+ a different open slot or cancel outright, without needing an account. You
266
+ can also cancel a booking yourself from the **Bookings** tab.
267
+
268
+ Or ask the agent: "Show me this week's bookings."
269
+
270
+ ## What's next
271
+
272
+ - [**Calendar**](/docs/template-calendar) — the overview and getting-started steps
273
+ - [**Talk to the Agent**](/docs/template-calendar-agent) — every prompt by task, application state, and Extensions
274
+ - [**Calendar in a Multi-App Workspace**](/docs/template-calendar-integrations) — integration strategies and connecting to Dispatch
275
+ - [**Developer Guide**](/docs/template-calendar-developers) — the actions and data model behind these features
276
+ - [**Sharing**](/docs/sharing) — the share-grant model booking links build on
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: "Calendar in a Multi-App Workspace"
3
+ description: "How Calendar connects to Dispatch and other apps, the real events other apps can automate against, and natural-language delegation across a multi-app workspace."
4
+ ---
5
+
6
+ # Calendar in a Multi-App Workspace
7
+
8
+ Calendar is one app among many in a [Dispatch](/docs/template-dispatch)
9
+ workspace. This page covers what that actually means in practice: how the
10
+ connection works, and concrete ways other apps can act on your calendar or
11
+ react to what happens on it. See [Calendar](/docs/template-calendar) for the
12
+ overview.
13
+
14
+ ## How Calendar connects to Dispatch
15
+
16
+ Whether this is automatic depends on how Calendar and Dispatch were set up
17
+ together, not on whether either one is hosted or running locally.
18
+
19
+ ### Same workspace: automatic
20
+
21
+ If Calendar and Dispatch were generated or added together into one Agent
22
+ Native workspace (via `create` or `add-app`) and deployed as one unit, they
23
+ already share one `.env`, one `A2A_SECRET`, and one workspace registry.
24
+ Discovery and authenticated A2A calling both just work, with nothing to set
25
+ up, whether that workspace is running on your machine or in production.
26
+ This is the expected setup for a real multi-app product built on Calendar.
27
+
28
+ ### Separate deployments: one manual step
29
+
30
+ If Calendar and Dispatch are two independently created Agent Native
31
+ projects, they don't share a secret and can't call each other yet.
32
+ Connecting them takes one manual step on each side: add a
33
+ `remote-agents/<id>.json` resource with a shared secret, from Settings →
34
+ Connected Agents, the Agent page's Connections tab, or Dispatch → Agents →
35
+ Add external agent. See [A2A Protocol](/docs/a2a-protocol) for the full
36
+ walkthrough.
37
+
38
+ To check which situation you're in, ask either app's agent "what apps can
39
+ you see?" If Calendar is missing from Dispatch's answer, you're in the
40
+ second case.
41
+
42
+ ## Integration strategies
43
+
44
+ **Automating off calendar events.** Creating an event and creating a booking
45
+ both fire a real event on the shared framework event bus
46
+ (`calendar.event.created`, `calendar.booking.created`). Any app's
47
+ [automation](/docs/automations) can subscribe to either one, regardless of
48
+ which app defines it. A booking landing on your calendar could trigger a
49
+ welcome email draft in Mail, or a meeting agenda in Slides, built before the
50
+ meeting happens. Calendar doesn't ship one of these automations out of the
51
+ box, but the event is real and ready to hook into whenever you want to build
52
+ one.
53
+
54
+ **Natural-language delegation through Dispatch.** A sibling app doesn't need
55
+ a special integration to work with Calendar. It can hand Calendar's agent a
56
+ plain-English request, like "find 30 minutes with Sam next week," the same
57
+ way you would in chat, and Calendar answers or acts on it directly. This is
58
+ the real mechanism behind something like a scheduling request that arrives
59
+ in Mail or Slack turning into a booked event: Dispatch (or the app that
60
+ received the message) delegates the request to Calendar's agent, and
61
+ Calendar handles it like any other prompt.
62
+
63
+ **Staying decoupled.** Calendar never needs to know Mail's or Slack's
64
+ credentials, or vice versa, for any of this. The event bus and the
65
+ automations that subscribe to it sit between apps, so Calendar only has to
66
+ emit a real event or answer a real request. It doesn't need to know who's
67
+ listening, or how.
68
+
69
+ ## What's next
70
+
71
+ - [**Calendar**](/docs/template-calendar) — the overview and getting-started steps
72
+ - [**Features**](/docs/template-calendar-features) — views, availability, finding time, and booking links
73
+ - [**Talk to the Agent**](/docs/template-calendar-agent) — prompts by task, application state, and Extensions
74
+ - [**Developer Guide**](/docs/template-calendar-developers) — quick start, actions, data model, and routes
75
+ - [**Dispatch**](/docs/template-dispatch) — the workspace control plane these patterns run under
76
+ - [**Automations**](/docs/automations) — declaring an automation that reacts to a calendar event
77
+ - [**A2A Protocol**](/docs/a2a-protocol) — how apps discover, authenticate with, and call each other
78
+ - [**Multi-App Workspace**](/docs/multi-app-workspace) — the general pattern of composing first-party apps instead of nesting them
@@ -1,135 +1,68 @@
1
1
  ---
2
2
  title: "Calendar"
3
- description: "An agent-powered calendar with Google Calendar sync and Calendly-style booking links. Schedule, find slots, and manage availability through plain English."
3
+ description: "An agent-powered calendar that replaces Google Calendar and Calendly with one app you own. Schedule, manage availability, and handle booking links through the agent or the UI."
4
4
  ---
5
5
 
6
6
  # Calendar
7
7
 
8
- An agent-powered calendar app. Connect your Google Calendar and the agent can read your schedule, find free slots, create events, and manage Calendly-style booking links — all in plain English. It replaces the Google Calendar + Calendly combo with one app you own.
9
-
10
- <WireframeBlock id="doc-block-calendar1">
11
- <Screen
12
- surface="desktop"
13
- html={
14
- "<div style='display:flex;flex-direction:column;min-height:530px;box-sizing:border-box'><div style='display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1.4px solid var(--wf-line)'><button>Week</button><button>Today</button><button>‹</button><button>›</button><div style='flex:1'></div><strong>May 3-9, 2026</strong><div style='flex:1'></div><button class='primary'>New Event</button></div><div style='display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));grid-template-rows:36px repeat(5,72px);gap:7px;padding:14px;flex:1'><div></div><strong>Sun 3</strong><strong>Mon 4</strong><strong>Tue 5</strong><strong>Wed 6</strong><strong>Thu 7</strong><strong>Fri 8</strong><strong>Sat 9</strong><small class='wf-muted'>7 AM</small><div class='wf-box' style='opacity:.45'></div><div></div><div></div><div></div><div></div><div></div><div></div><small class='wf-muted'>9 AM</small><div class='wf-box'>All-hands</div><div class='wf-box'>Eng standup</div><div class='wf-box'>Eng standup</div><div class='wf-box'>Eng standup</div><div></div><div class='wf-box'>Planning</div><div></div><small class='wf-muted'>11 AM</small><div class='wf-box'>Design review</div><div></div><div class='wf-box'>Design crit</div><div class='wf-box'>Roadmap</div><div class='wf-box'>Friday demo</div><div></div><div></div><small class='wf-muted'>1 PM</small><div></div><div class='wf-box'>1:1</div><div class='wf-box'>Focus block</div><div></div><div></div><div class='wf-box'>All-hands</div><div></div><small class='wf-muted'>3 PM</small><div></div><div></div><div></div><div class='wf-box'>Skip-level</div><div></div><div></div><div></div></div></div>"
15
- }
16
- />
17
- </WireframeBlock>
18
-
19
- When you open the app, the active calendar view is the primary surface. The agent still knows which day, week, or event you're looking at, so you can say "schedule a 30-minute call with Alex on this day" without spelling everything out.
20
-
21
- <Diagram id="doc-block-calendar2" title="How a scheduling request flows" summary="Whether you click in the calendar or ask the agent, the same actions read live from Google Calendar and write back to the same view.">
22
-
23
- ```html
24
- <div class="diagram-flow">
25
- <div class="diagram-col">
26
- <div class="diagram-node">
27
- You click<br /><small class="diagram-muted"
28
- >drag, toolbar, shortcuts</small
29
- >
30
- </div>
31
- <div class="diagram-node">
32
- You ask the agent<br /><small class="diagram-muted"
33
- >"find a 1-hour slot next week"</small
34
- >
35
- </div>
36
- </div>
37
- <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
38
- <div class="diagram-panel center">
39
- <span class="diagram-pill accent">Actions</span
40
- ><small class="diagram-muted"
41
- >list-events · check-availability · create-event</small
42
- >
43
- </div>
44
- <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
45
- <div class="diagram-col">
46
- <div class="diagram-box">
47
- Google Calendar<br /><small class="diagram-muted"
48
- >live, multi-account</small
49
- >
50
- </div>
51
- <div class="diagram-box">
52
- SQL<br /><small class="diagram-muted">bookings · availability</small>
53
- </div>
54
- </div>
55
- <div class="diagram-arrow diagram-muted" aria-hidden="true">&#8635;</div>
56
- <div class="diagram-box">Calendar view updates live</div>
57
- </div>
58
- ```
59
-
60
- ```css
61
- .diagram-flow {
62
- display: flex;
63
- align-items: center;
64
- gap: 12px;
65
- flex-wrap: wrap;
66
- }
67
- .diagram-flow .diagram-col {
68
- display: flex;
69
- flex-direction: column;
70
- gap: 10px;
71
- }
72
- .diagram-flow .diagram-arrow {
73
- font-size: 22px;
74
- line-height: 1;
75
- }
76
- .diagram-flow .center {
77
- display: flex;
78
- flex-direction: column;
79
- align-items: center;
80
- gap: 4px;
81
- }
82
- ```
83
-
84
- </Diagram>
85
-
86
- ## What you can do with it
87
-
88
- - **See your real Google Calendar** in day, week, or month view, with multiple accounts overlayed in one grid.
89
- - **Subscribe to ICS feeds** (HR time off, conference schedules, team calendars) — read-only, mixed into the same view.
90
- - **Set weekly availability** with timezone support, buffer time, and minimum notice — the agent uses this when finding free slots.
91
- - **Create public booking links** at `/book/{your-name}/{slug}` for things like "15-minute intro" or "30-minute demo." Configure durations, custom fields, required co-hosts, and whether visitors get Google Meet or Zoom.
92
- - **Ask the agent anything schedule-related**: "Am I free Thursday afternoon?" "Find a 1-hour slot next week and put 'Planning with Alex' on it." "Pause my demo booking link."
93
- - **Share booking links** with teammates so they can manage them too.
94
-
95
- See [Scheduling, Availability & Finding Time](/docs/template-calendar-scheduling) and [Booking Links](/docs/template-calendar-booking-links) for the full detail on each.
96
-
97
- ## Getting started
98
-
99
- Live demo: [calendar.agent-native.com](https://calendar.agent-native.com).
100
-
101
- When you first open the app:
102
-
103
- 1. Click **Settings**.
104
- 2. Click **Connect Google Calendar** and approve.
105
- 3. (Optional) Connect more Google accounts if you want personal + work overlayed.
106
- 4. Open the main view — your real calendar will load.
107
-
108
- To create your first booking link:
109
-
110
- 1. Click **Booking Links** in the sidebar.
111
- 2. Click **New booking link**, set a title and duration.
112
- 3. Share the public URL — visitors pick from your available slots.
113
-
114
- Or just ask the agent: "Create a 15-minute intro booking link with a name field."
115
-
116
- ### Useful prompts
117
-
118
- - "What is on my calendar today?"
119
- - "Am I free Thursday afternoon for 30 minutes?"
120
- - "Find a 1-hour slot next week and put 'Planning with Alex' on it."
121
- - "Create a booking link called '15 min intro' at 15 minutes with a note field."
122
- - "Block Friday afternoons on my availability."
123
-
124
- See [Talking to the Agent](/docs/template-calendar-agent) for the full list of prompts by task.
125
-
126
- The agent will query Google Calendar live for any schedule question — it never guesses.
8
+ Calendar is an agent-powered scheduling app. Connect your Google Calendar and
9
+ the agent can read your schedule, find free time, create events, and manage
10
+ Calendly-style booking links, in plain English or with a click. It replaces
11
+ the Google Calendar + Calendly combo with one app, so your real schedule and
12
+ your public booking pages are never two things you have to keep in sync by
13
+ hand.
14
+
15
+ <Cards columns={1}>
16
+
17
+ ### :calendar: [Try it out now →](https://calendar.agent-native.com)
18
+
19
+ See Calendar live with a real Google Calendar connected.
20
+
21
+ </Cards>
22
+
23
+ <Video
24
+ src="https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fafb81b5670d44030960cf8b60ec77c53?alt=media&token=59a6171c-f074-4507-91fe-db820cbe007e&apiKey=YJIGb4i01jvw0SRdL5Bt"
25
+ alt="A short screen recording of logging in and touring the calendar app."
26
+ caption="A brief tour of the calendar application."
27
+ autoplay={true}
28
+ loop={true}
29
+ />
30
+
31
+ ## What it replaces
32
+
33
+ <Comparison>
34
+
35
+ ### Before
36
+
37
+ - Google Calendar for your real schedule
38
+ - Calendly (or similar) for public booking links, kept in sync by hand
39
+ - A separate contacts search when you need someone's email
40
+ - Copy-pasting a Zoom link into every invite
41
+
42
+ ### After
43
+
44
+ - One view: your real calendar and your booking links together
45
+ - One availability model that booking links and the agent both read from
46
+ - People search built into the same prompt as scheduling
47
+ - Zoom or Google Meet attached automatically when someone books
48
+
49
+ </Comparison>
50
+
51
+ ## Calendar in a multi-app workspace
52
+
53
+ If you're running Calendar alongside other apps under
54
+ [Dispatch](/docs/template-dispatch), your calendar stops being just a page you
55
+ open. It becomes something other channels and apps can act on, from
56
+ automations that fire off a new booking to a sibling app handing Calendar a
57
+ scheduling request directly. See [Calendar in a Multi-App
58
+ Workspace](/docs/template-calendar-integrations) for how the connection
59
+ actually works and the real mechanisms behind it.
127
60
 
128
61
  ## What's next
129
62
 
130
- - [**Scheduling, Availability & Finding Time**](/docs/template-calendar-scheduling) — views, availability, free-slot search, overlays, and people search
131
- - [**Booking Links**](/docs/template-calendar-booking-links) — creating, sharing, and managing Calendly-style booking pages
132
- - [**Talking to the Agent**](/docs/template-calendar-agent) — prompts by task, application state, and Extensions
63
+ - [**Features**](/docs/template-calendar-features) — views, availability, finding time, and booking links, with setup steps for each
64
+ - [**Talk to the Agent**](/docs/template-calendar-agent) — prompts by task, application state, and Extensions
65
+ - [**Calendar in a Multi-App Workspace**](/docs/template-calendar-integrations) — integration strategies and connecting to Dispatch
133
66
  - [**Developer Guide**](/docs/template-calendar-developers) — quick start, actions, data model, and routes
134
67
  - [**Templates**](/docs/cloneable-saas) — the Cloneable SaaS model, and every other domain template to start from
135
68
  - [**Getting Started**](/docs/getting-started) — the framework fundamentals: actions, application state, and live sync
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.172.4",
3
+ "version": "0.172.6",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -429,8 +429,8 @@
429
429
  "y-protocols": "^1.0.7",
430
430
  "yjs": "^13.6.32",
431
431
  "zod": "^4.3.6",
432
- "@agent-native/toolkit": "^0.16.11",
433
- "@agent-native/recap-cli": "0.5.8"
432
+ "@agent-native/recap-cli": "0.5.8",
433
+ "@agent-native/toolkit": "^0.16.11"
434
434
  },
435
435
  "devDependencies": {
436
436
  "@ai-sdk/anthropic": "^3.0.71",
@@ -1,73 +0,0 @@
1
- ---
2
- title: "Calendar: Booking Links"
3
- description: "Create Calendly-style public booking pages, connect Zoom or Google Meet, and manage bookings people make with you."
4
- ---
5
-
6
- # Booking Links
7
-
8
- Booking links are public pages where anyone can pick a time and book it directly onto your calendar — the Calendly-style part of Calendar. This page covers creating, sharing, and managing them. See [Calendar](/docs/template-calendar) for the overview and [Events, Availability & Finding Time](/docs/template-calendar-scheduling) for the availability rules booking links use.
9
-
10
- ## Creating a booking link
11
-
12
- A booking link needs a title and a duration (like "15 min intro" at 15 minutes). From there you can add:
13
-
14
- - **Alternate durations** so a visitor can choose 15, 30, or 60 minutes on the same link
15
- - **Custom fields** to collect a company name, a topic, or anything else before the meeting
16
- - **A conferencing choice** — Google Meet, Zoom (once connected — see below), or a custom link
17
- - **A color** so the link's bookings stand out on your calendar
18
- - **Required co-hosts** — other people who must also be free before a slot is offered. When someone books, everyone (you and your co-hosts) gets invited to the resulting Google Calendar event.
19
-
20
- Ask the agent to create one ("Create a 15-minute intro link with a name and company field") or use **New booking link** in the sidebar.
21
-
22
- ## Connecting Zoom or Google Meet
23
-
24
- Booking links can generate a real video meeting automatically when someone books:
25
-
26
- - **Google Meet** needs no setup — it's added the same way any Google Calendar invite gets a Meet link.
27
- - **Zoom** needs your Zoom account connected first. Connect it once from Settings; after that, any booking link set to Zoom creates a real Zoom meeting for each new booking and attaches the join link to the confirmation.
28
-
29
- If Zoom isn't connected yet and a link is set to use it, ask the agent to help you connect it, or do it from Settings directly.
30
-
31
- ## Sharing a booking link with teammates
32
-
33
- Sharing controls who can _manage_ the link — edit its duration, pause it, or see its bookings — through the standard viewer/editor/admin roles. It's separate from public access: anyone with the URL can still book as long as the link is active, whether or not they have management access.
34
-
35
- ## The public booking page
36
-
37
- Every booking link has a public URL at `/book/{your-booking-name}/{slug}` — for example `/book/steve/30min`. Your booking name is generated automatically from your email the first time you create a link, and you can change it later from Settings (up to three times every 30 days, since it's part of every public link you've shared).
38
-
39
- A visitor picks an available time from your real availability, fills in their name, email, and any custom fields you added, then confirms. They get a confirmation with a link to manage their own booking.
40
-
41
- <WireframeBlock id="doc-block-calendar4">
42
- <Screen
43
- surface="desktop"
44
- html={
45
- "<div style='display:flex;flex-direction:column;min-height:480px;box-sizing:border-box;padding:36px 60px;gap:16px'><h2 style='margin:0'>30 min with Steve</h2><p class='wf-muted' style='margin:0'>Quick intro call — tell me a bit about what you're working on.</p><div style='display:flex;gap:20px;flex:1'><div class='wf-card' style='flex:1;display:flex;flex-direction:column;gap:8px'><strong>May 2026</strong><div style='display:grid;grid-template-columns:repeat(7,1fr);gap:6px'><span class='wf-muted'>Su</span><span class='wf-muted'>Mo</span><span class='wf-muted'>Tu</span><span class='wf-muted'>We</span><span class='wf-muted'>Th</span><span class='wf-muted'>Fr</span><span class='wf-muted'>Sa</span><span></span><span></span><span></span><span></span><span></span><span class='wf-pill accent'>1</span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div></div><div class='wf-card' style='flex:1;display:flex;flex-direction:column;gap:8px'><strong>Friday, May 1</strong><button>9:00 AM</button><button>9:30 AM</button><button class='primary'>10:00 AM</button><button>10:30 AM</button><button>2:00 PM</button></div></div></div>"
46
- }
47
- />
48
- </WireframeBlock>
49
-
50
- ## Managing, rescheduling, or cancelling a booking
51
-
52
- Every confirmation includes a private manage link. Visitors use it to reschedule to a different open slot or cancel outright, without needing an account — no sign-in, since the link itself is the credential. You (the host) see all bookings, past and upcoming, in the **Bookings** list.
53
-
54
- ## Renaming a link
55
-
56
- You can change a booking link's URL slug at any time — for example from `/book/steve/into-call` to `/book/steve/intro`. The old URL keeps working: visitors who still have the old link are automatically forwarded to the new one, so nothing you've already shared (an email signature, a website) breaks.
57
-
58
- ### Useful prompts
59
-
60
- - "Create a 15-minute intro booking link with a name and company field."
61
- - "Add Brent as a required co-host on my 'Steve + Brent' link."
62
- - "Switch my '30 min demo' link to Zoom."
63
- - "Pause my '30 min demo' booking link."
64
- - "Rename my intro link's URL to '/intro'."
65
- - "Show me this week's bookings."
66
-
67
- ## What's next
68
-
69
- - [**Calendar**](/docs/template-calendar) — the overview and getting-started steps
70
- - [**Events, Availability & Finding Time**](/docs/template-calendar-scheduling) — the availability rules booking links draw from
71
- - [**Talking to the Agent**](/docs/template-calendar-agent) — group/co-host links and more prompts
72
- - [**Developer Guide**](/docs/template-calendar-developers) — the booking data model and actions
73
- - [**Sharing**](/docs/sharing) — the share-grant model booking links build on