AgentDBDocs

Calendar

Calendars, events, availability, free slots, ICS import/export.

Start with: calendar_find_slots, events_create, events_list, calendars_create.

16 operations. Discover them from an agent with agentdb_capabilities {"category": "calendar"}.

#calendar_availability

stable added in 1.0.0-rc.6 read-only

Free-busy per calendar and participant. Busy intervals per subject plus the time all are free, optionally inside working_hours {timezone, days, start, end}.

MCP tool
calendar_availability
REST
POST /v1/workspaces/{ws}/calendar/availability scope records:read
CLI
agentdb calendar availability

Arguments

ArgumentTypeRequiredDescription
fromstringyesStart of the time range (ISO 8601 date-time with time zone).
tostringyesEnd of the time range (ISO 8601 date-time with time zone).
calendar_idsstring[]string[], up to 50 items
participantsstring[]string[], up to 50 items
working_hoursobjectobject
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendar_availability",
  "arguments": {
    "from": "2026-12-01T00:00:00Z",
    "to": "2026-12-02T00:00:00Z",
    "calendar_ids": [
      "cal_example"
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendar_availability",
    "arguments": {
      "from": "2026-12-01T00:00:00Z",
      "to": "2026-12-02T00:00:00Z",
      "calendar_ids": [
        "cal_example"
      ]
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar/availability" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-12-01T00:00:00Z","to":"2026-12-02T00:00:00Z","calendar_ids":["cal_example"]}'
CLI
agentdb calendar availability [options]

#calendar_expand

stable added in 1.0.0-rc.6 read-only

Expand an RRULE into occurrences. E.g. a recurrence field value, from start in an IANA zone, between from and to, with exdates. Nothing is created.

MCP tool
calendar_expand
REST
POST /v1/workspaces/{ws}/calendar/expand scope records:read
CLI
agentdb calendar expand

Arguments

ArgumentTypeRequiredDescription
rulestringyesRecurrence rule (RRULE), e.g. FREQ=WEEKLY;BYDAY=MO. (min length 1, max length 1000)
startstringyesStart of the first occurrence (date or date-time). (min length 10, max length 40)
timezonestringstring, up to 64 characters, default "UTC"
duration_minutesintegerinteger, 0–527040, default 0
exdatesstring[]string[], up to 500 items
fromstringyesStart of the time range (ISO 8601 date-time with time zone).
tostringyesEnd of the time range (ISO 8601 date-time with time zone).
limitintegerinteger, 1–2000, default 100
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendar_expand",
  "arguments": {
    "rule": "FREQ=WEEKLY;BYDAY=MO",
    "start": "2026-12-07T09:00:00Z",
    "from": "2026-12-01T00:00:00Z",
    "to": "2027-01-01T00:00:00Z"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendar_expand",
    "arguments": {
      "rule": "FREQ=WEEKLY;BYDAY=MO",
      "start": "2026-12-07T09:00:00Z",
      "from": "2026-12-01T00:00:00Z",
      "to": "2027-01-01T00:00:00Z"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar/expand" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rule":"FREQ=WEEKLY;BYDAY=MO","start":"2026-12-07T09:00:00Z","from":"2026-12-01T00:00:00Z","to":"2027-01-01T00:00:00Z"}'
CLI
agentdb calendar expand [options]

#calendar_export_ics

stable added in 1.0.0-rc.6 read-only

The calendar as iCalendar (.ics) text for other calendar apps.

MCP tool
calendar_export_ics
REST
GET /v1/workspaces/{ws}/calendars/{calendar}/ics scope records:read

Arguments

ArgumentTypeRequiredDescription
calendar_idstringyesCalendar id (cal_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendar_export_ics",
  "arguments": {
    "calendar_id": "cal_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendar_export_ics",
    "arguments": {
      "calendar_id": "cal_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars/cal_example/ics" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#calendar_find_slots

stable added in 1.0.0-rc.6 read-only

Find free meeting slots. Every given calendar and participant is free for duration_minutes (buffer_minutes around busy time, step_minutes grid, working_hours). Nothing is booked; create the event with events_create.

MCP tool
calendar_find_slots
REST
POST /v1/workspaces/{ws}/calendar/slots scope records:read

Arguments

ArgumentTypeRequiredDescription
fromstringyesStart of the time range (ISO 8601 date-time with time zone).
tostringyesEnd of the time range (ISO 8601 date-time with time zone).
calendar_idsstring[]string[], up to 50 items
participantsstring[]string[], up to 50 items
working_hoursobjectobject
duration_minutesintegeryesLength of the slot you need, in minutes. (min 5, max 1440)
step_minutesintegerinteger, 5–1440, default 15
buffer_minutesintegerinteger, 0–240, default 0
limitintegerinteger, 1–100, default 10
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendar_find_slots",
  "arguments": {
    "from": "2026-12-01T00:00:00Z",
    "to": "2026-12-05T00:00:00Z",
    "calendar_ids": [
      "cal_example"
    ],
    "duration_minutes": 30,
    "working_hours": {
      "timezone": "Europe/Amsterdam",
      "start": "09:00",
      "end": "17:00"
    },
    "limit": 3
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendar_find_slots",
    "arguments": {
      "from": "2026-12-01T00:00:00Z",
      "to": "2026-12-05T00:00:00Z",
      "calendar_ids": [
        "cal_example"
      ],
      "duration_minutes": 30,
      "working_hours": {
        "timezone": "Europe/Amsterdam",
        "start": "09:00",
        "end": "17:00"
      },
      "limit": 3
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar/slots" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-12-01T00:00:00Z","to":"2026-12-05T00:00:00Z","calendar_ids":["cal_example"],"duration_minutes":30,"working_hours":{"timezone":"Europe/Amsterdam","start":"09:00","end":"17:00"},"limit":3}'

#calendar_import_ics

stable added in 1.0.0-rc.6 changes data

Import iCalendar (.ics) text into a calendar. Max 1 MiB, 1000 events. Events match on UID (on_existing update|skip); RECURRENCE-ID entries become changed occurrences. Bad events are skipped and listed; TZID must be an IANA name.

MCP tool
calendar_import_ics
REST
POST /v1/workspaces/{ws}/calendars/import scope records:write

Arguments

ArgumentTypeRequiredDescription
calendar_idstringyesCalendar id. (max length 64)
icsstringyesThe iCalendar (.ics) text to import. (min length 1, max length 1048576)
on_existing"update" | "skip"string, one of: update, skip, default "update"
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendar_import_ics",
  "arguments": {
    "calendar_id": "cal_example",
    "ics": "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//example//EN\r\nBEGIN:VEVENT\r\nUID:demo-1@example.test\r\nDTSTAMP:20261101T000000Z\r\nDTSTART:20261201T100000Z\r\nDTEND:20261201T103000Z\r\nSUMMARY:Demo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
    "on_existing": "skip"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendar_import_ics",
    "arguments": {
      "calendar_id": "cal_example",
      "ics": "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//example//EN\r\nBEGIN:VEVENT\r\nUID:demo-1@example.test\r\nDTSTAMP:20261101T000000Z\r\nDTSTART:20261201T100000Z\r\nDTEND:20261201T103000Z\r\nSUMMARY:Demo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
      "on_existing": "skip"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars/import" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"calendar_id":"cal_example","ics":"BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//example//EN\r\nBEGIN:VEVENT\r\nUID:demo-1@example.test\r\nDTSTAMP:20261101T000000Z\r\nDTSTART:20261201T100000Z\r\nDTEND:20261201T103000Z\r\nSUMMARY:Demo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n","on_existing":"skip"}'

#calendars_create

stable added in 1.0.0-rc.6 changes data

Create a calendar. It books people's and resources' time (the scheduler runs automation). timezone: IANA default for its events. owner: user:<acc>, agent:<agt> or resource:<name> counts as busy on it. writers: only these members/agents (plus owners/admins) may change its events.

MCP tool
calendars_create
REST
POST /v1/workspaces/{ws}/calendars scope records:write

Arguments

ArgumentTypeRequiredDescription
namestringyesName of the calendar. (min length 1, max length 100)
descriptionstringstring, up to 2000 characters
timezonestringstring, up to 64 characters, default "UTC"
ownerstringstring, up to 330 characters
writersstring[]string[], up to 50 items
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendars_create",
  "arguments": {
    "name": "Sales team",
    "timezone": "Europe/Amsterdam"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendars_create",
    "arguments": {
      "name": "Sales team",
      "timezone": "Europe/Amsterdam"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Sales team","timezone":"Europe/Amsterdam"}'

#calendars_delete

stable added in 1.0.0-rc.6 changes data destructive

Delete a calendar with all its events and reminders.

MCP tool
calendars_delete
REST
DELETE /v1/workspaces/{ws}/calendars/{calendar} scope records:write

Arguments

ArgumentTypeRequiredDescription
calendar_idstringyesCalendar id (cal_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendars_delete",
  "arguments": {
    "calendar_id": "cal_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendars_delete",
    "arguments": {
      "calendar_id": "cal_example"
    }
  }
}
REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars/cal_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

#calendars_get

stable added in 1.0.0-rc.6 read-only

One calendar with its event count.

MCP tool
calendars_get
REST
GET /v1/workspaces/{ws}/calendars/{calendar} scope records:read

Arguments

ArgumentTypeRequiredDescription
calendar_idstringyesCalendar id (cal_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendars_get",
  "arguments": {
    "calendar_id": "cal_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendars_get",
    "arguments": {
      "calendar_id": "cal_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars/cal_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#calendars_list

stable added in 1.0.0-rc.6 read-only

List calendars.

MCP tool
calendars_list
REST
GET /v1/workspaces/{ws}/calendars scope records:read

Arguments

ArgumentTypeRequiredDescription
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendars_list",
  "arguments": {}
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendars_list",
    "arguments": {}
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#calendars_update

stable added in 1.0.0-rc.6 changes data

Change a calendar's name, description or timezone; owners/admins also owner and writers.

MCP tool
calendars_update
REST
PATCH /v1/workspaces/{ws}/calendars/{calendar} scope records:write

Arguments

ArgumentTypeRequiredDescription
namestringstring, 1–100 characters
descriptionstring | nullstring | null
timezonestringstring, up to 64 characters
ownerstring | nullstring | null
writersstring[] | nullstring[] | null
calendar_idstringyesCalendar id (cal_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "calendars_update",
  "arguments": {
    "calendar_id": "cal_example",
    "description": "Sales meetings and demos"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "calendars_update",
    "arguments": {
      "calendar_id": "cal_example",
      "description": "Sales meetings and demos"
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendars/cal_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"description":"Sales meetings and demos"}'

#events_create

stable added in 1.0.0-rc.6 changes data

Book an event. start/end: local wall time YYYY-MM-DDTHH:MM in timezone (default the calendar's), an RFC 3339 instant, or YYYY-MM-DD for all-day (end = the day after). recurrence: RRULE (FREQ=WEEKLY;BYDAY=MO), exdates: skipped occurrences. participants: {type: user|agent|resource|email, id|email}. reminders: [{minutes_before}] run on the scheduler and emit calendar.reminder events. Returns conflicts with busy time; on_conflict=reject refuses with SLOT_CONFLICT instead. Find a free time first with calendar_find_slots.

MCP tool
events_create
REST
POST /v1/workspaces/{ws}/calendar-events scope records:write

Arguments

ArgumentTypeRequiredDescription
calendar_idstringyesCalendar id. (max length 64)
titlestringyesTitle shown to people. (min length 1, max length 500)
descriptionstringstring, up to 20000 characters
locationstringstring, up to 500 characters
meeting_urlstringstring, up to 2048 characters
startstringyesStart of the event (date or date-time). (min length 10, max length 40)
endstringstring, 10–40 characters
duration_minutesintegerinteger, 1–527040
all_daybooleanboolean
timezonestringstring, up to 64 characters
recurrencestringstring, 1–1000 characters
exdatesstring[]string[], up to 500 items
status"confirmed" | "tentative" | "cancelled"string, one of: confirmed, tentative, cancelled
transparency"busy" | "free"string, one of: busy, free
participantsobject[]object[], up to 100 items
remindersobject[]object[], up to 5 items
uidstringstring, 1–255 characters
on_conflict"allow" | "reject"string, one of: allow, reject, default "allow"
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_create",
  "arguments": {
    "calendar_id": "cal_example",
    "title": "Demo with Example Ltd",
    "start": "2026-12-01T10:00:00Z",
    "duration_minutes": 30,
    "participants": [
      {
        "type": "email",
        "email": "buyer@example.test",
        "name": "Buyer"
      }
    ],
    "reminders": [
      {
        "minutes_before": 15
      }
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_create",
    "arguments": {
      "calendar_id": "cal_example",
      "title": "Demo with Example Ltd",
      "start": "2026-12-01T10:00:00Z",
      "duration_minutes": 30,
      "participants": [
        {
          "type": "email",
          "email": "buyer@example.test",
          "name": "Buyer"
        }
      ],
      "reminders": [
        {
          "minutes_before": 15
        }
      ]
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"calendar_id":"cal_example","title":"Demo with Example Ltd","start":"2026-12-01T10:00:00Z","duration_minutes":30,"participants":[{"type":"email","email":"buyer@example.test","name":"Buyer"}],"reminders":[{"minutes_before":15}]}'

#events_delete

stable added in 1.0.0-rc.6 changes data destructive

Delete an event or one occurrence. With occurrence only that occurrence of a recurring event goes (an exception).

MCP tool
events_delete
REST
DELETE /v1/workspaces/{ws}/calendar-events/{event} scope records:write

Arguments

ArgumentTypeRequiredDescription
occurrencestringstring, up to 40 characters
event_idstringyesEvent id (cev_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_delete",
  "arguments": {
    "event_id": "cev_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_delete",
    "arguments": {
      "event_id": "cev_example"
    }
  }
}
REST
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events/cev_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

#events_get

stable added in 1.0.0-rc.6 read-only

One event (series) with exceptions and changed occurrences.

MCP tool
events_get
REST
GET /v1/workspaces/{ws}/calendar-events/{event} scope records:read

Arguments

ArgumentTypeRequiredDescription
event_idstringyesEvent id (cev_...)
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_get",
  "arguments": {
    "event_id": "cev_example"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_get",
    "arguments": {
      "event_id": "cev_example"
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events/cev_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#events_list

stable added in 1.0.0-rc.6 read-only

Events between from and to, recurring ones expanded. RFC 3339, at most 366 days; exceptions and overrides applied, DST-correct. Filter by calendar_ids or one participant key.

MCP tool
events_list
REST
GET /v1/workspaces/{ws}/calendar-events scope records:read

Arguments

ArgumentTypeRequiredDescription
fromstringyesStart of the time range (ISO 8601 date-time with time zone).
tostringyesEnd of the time range (ISO 8601 date-time with time zone).
calendar_idsstring[]string[], up to 50 items
participantstringstring, up to 330 characters
expandbooleanboolean
include_cancelledbooleanboolean
limitintegerinteger, 1–2000, default 500
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_list",
  "arguments": {
    "from": "2026-12-01T00:00:00Z",
    "to": "2026-12-08T00:00:00Z",
    "calendar_ids": [
      "cal_example"
    ]
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_list",
    "arguments": {
      "from": "2026-12-01T00:00:00Z",
      "to": "2026-12-08T00:00:00Z",
      "calendar_ids": [
        "cal_example"
      ]
    }
  }
}
REST
curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events" \
  -H "Authorization: Bearer $AGENTDB_TOKEN"

#events_respond

stable added in 1.0.0-rc.6 changes data

Answer an invitation. accepted, declined, tentative or needs_action; for yourself by default; owners/admins may answer for any participant. Declined participants are free in free-busy.

MCP tool
events_respond
REST
POST /v1/workspaces/{ws}/calendar-events/{event}/respond scope records:write

Arguments

ArgumentTypeRequiredDescription
participantstringstring, up to 330 characters
response"needs_action" | "accepted" | "declined" | "tentative"yesYour answer to the invitation.
event_idstringyesEvent id (cev_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_respond",
  "arguments": {
    "event_id": "cev_example",
    "response": "accepted"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_respond",
    "arguments": {
      "event_id": "cev_example",
      "response": "accepted"
    }
  }
}
REST
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events/cev_example/respond" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"response":"accepted"}'

#events_update

stable added in 1.0.0-rc.6 changes data

Change an event. version = optimistic check. With occurrence (the original start of one occurrence) only that occurrence moves or changes: start, end, title, status, transparency.

MCP tool
events_update
REST
PATCH /v1/workspaces/{ws}/calendar-events/{event} scope records:write

Arguments

ArgumentTypeRequiredDescription
versionintegerThe current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1)
occurrencestringstring, up to 40 characters
titlestringTitle shown to people. (min length 1, max length 500)
descriptionstring | nullstring | null
locationstring | nullstring | null
meeting_urlstring | nullstring | null
startstringstring, 10–40 characters
endstringstring, 10–40 characters
duration_minutesintegerinteger, 1–527040
all_daybooleanboolean
timezonestringstring, up to 64 characters
recurrencestring | nullstring | null
exdatesstring[]string[], up to 500 items
status"confirmed" | "tentative" | "cancelled"string, one of: confirmed, tentative, cancelled
transparency"busy" | "free"string, one of: busy, free
participantsobject[]object[], up to 100 items
remindersobject[]object[], up to 5 items
on_conflict"allow" | "reject"string, one of: allow, reject, default "allow"
event_idstringyesEvent id (cev_...)
idempotency_keystringOptional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again.
workspacestringWorkspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select.

Example

MCP
{
  "tool": "events_update",
  "arguments": {
    "event_id": "cev_example",
    "version": 1,
    "start": "2026-12-01T11:00:00Z"
  }
}
MCP via agentdb_execute
{
  "tool": "agentdb_execute",
  "arguments": {
    "operation": "events_update",
    "arguments": {
      "event_id": "cev_example",
      "version": 1,
      "start": "2026-12-01T11:00:00Z"
    }
  }
}
REST
curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/calendar-events/cev_example" \
  -H "Authorization: Bearer $AGENTDB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"version":1,"start":"2026-12-01T11:00:00Z"}'