Calendar Tools
The Marketing Calendar: read every lane, and manage your own events.
Calendar operations take workspaceId and need access to Work (Marketing) in that workspace. The shared confirm_workspace_action takes a pendingId and checks the permissions of the Calendar, Space or Perks action it confirms. The Calendar works as in Betterness One: an event you create is visible only to you, and items from Eventbrite, Mailchimp, Instagram and X are managed where they come from. Your Google calendars are not included: they are yours, not the business's.
get_calendar
Everything on the Calendar for a range, by lane: events created in Betterness One, Eventbrite events, Mailchimp campaigns, Instagram posts published and scheduled, planned content and X posts. Each item has its id, kind, title, start and end, whether it can change here (editableHere) and, when not, where it is managed (managedIn, manageUrl). Scheduled posts carry their postId for get_post. A post published from Betterness One shows once.
| Parameter | Notes |
|---|---|
startDate | First day, YYYY-MM-DD, in your time zone. Default: today. |
endDate | Last day, inclusive. Default: 13 days after startDate. At most 62 days in all. |
Permission: calendar:read
create_calendar_event
Previews creating an event in the Events lane, as you. Nothing is created yet: returns the proposed details, confirmationRequired: true and a pendingId. Review the date, start/end, time zone and reminders. The assistant must show the preview and wait for your explicit approval in a new reply before calling confirm_workspace_action. Your initial request is not approval of the preview.
| Parameter | Notes |
|---|---|
title | Required. |
start, end | Required. ISO 8601 with an offset, e.g. 2026-11-20T18:00:00-03:00; for an all-day event, dates (end inclusive) |
allDay | true for an all-day event |
timezone | IANA time zone. Default: the time zone in your settings. |
description, location | Optional |
reminderMinutesBefore | 0, 5, 10, 15, 30, 60, 120, 1440 or 2880 |
reminderChannels | home and/or email (default home) |
Permission: calendar:write
update_calendar_event
Previews moving, resizing or editing one of your events (kind: "event"). Give only what changes. Takes the same parameters as create_calendar_event, all optional, plus eventId (required, from get_calendar) and removeReminder. Returns a before/after preview and a pendingId; nothing changes until you approve and confirm_workspace_action runs. If the event changes after the preview, prepare again and approve the new details.
Permission: calendar:write
delete_calendar_event
Prepares deleting one of your events. Nothing is deleted yet: it returns the event with a pendingId for confirm_workspace_action.
| Parameter | Notes |
|---|---|
eventId | Required. From get_calendar |
Permission: calendar:write
confirm_workspace_action
Runs what the person approved from create_calendar_event, update_calendar_event, delete_calendar_event, a Space preview or a Perks preview. The assistant must wait for a new reply approving the shown preview before calling this tool; it must not prepare and confirm in the same turn. The same pendingId again returns the first result. A pendingId lasts 10 minutes and works only for the connection or key that prepared it. If saved state, access or Perk recipients changed, prepare again and approve the new preview. Posts are confirmed with confirm_post.
| Parameter | Notes |
|---|---|
pendingId | Required. From the approved preview |
Permission: the one of the tool that prepared it

