Update an existing calendar event. You can use either PUT (full update) or PATCH (partial update) methods.
Path Parameters
ID or UUID of the event to update.
Request Body
Type of event. One of: meeting
, appointment
, busy
, voice_call
, video_call
.
Event status. One of: scheduled
, confirmed
, cancelled
, completed
, no_show
.
Notes about the customer or appointment.
Whether the event has video conferencing enabled.
URL for video conferencing.
video_conference_provider
Provider of video conferencing (e.g., Zoom, Google Meet, etc.).
Whether reminders are enabled for this event.
How many minutes before the event to send a reminder.
ID of the AI agent to associate with this event.
ID of the team to associate with this event.
Whether to sync this update with connected external calendars.
Whether to send notifications about this update.
Response
PUT vs PATCH
- Use
PUT
when you want to replace the entire event with the new data (full update)
- Use
PATCH
when you want to update only specific fields (partial update)
Example Request (PUT - Full Update)
curl -X PUT 'https://api.klen.ai/api/v1/calendar/events/456/update' \
-H 'Authorization: Bearer klen_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "Updated Product Demo",
"description": "Updated product demonstration for client",
"start_time": "2025-05-16T15:00:00.000Z",
"end_time": "2025-05-16T16:00:00.000Z",
"event_type": "video_call",
"status": "confirmed",
"location": "Online",
"customer_name": "Jane Doe",
"customer_email": "[email protected]",
"customer_phone": "+15551234567",
"has_video_conference": true,
"video_conference_provider": "Zoom",
"is_reminder_enabled": true,
"remind_before_minutes": 30,
"send_notifications": true
}'
Example Request (PATCH - Partial Update)
curl -X PATCH 'https://api.klen.ai/api/v1/calendar/events/456/update' \
-H 'Authorization: Bearer klen_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"start_time": "2025-05-16T15:00:00.000Z",
"end_time": "2025-05-16T16:00:00.000Z",
"send_notifications": true
}'
Example Response
{
"id": 456,
"uuid": "a1b2c3d4-e5f6-7890-a1b2-c3d4e5f67890",
"title": "Updated Product Demo",
"start_time": "2025-05-16T15:00:00.000Z",
"end_time": "2025-05-16T16:00:00.000Z",
"status": "confirmed",
"message": "Event updated successfully"
}
Error Responses
Not Found (404)
{
"error": "not_found",
"message": "Event not found or you do not have access"
}
{
"error": "invalid_datetime_format",
"message": "Invalid datetime format. Expected ISO 8601 format (YYYY-MM-DDTHH:MM:SS)"
}
Invalid Time Range (400)
{
"error": "invalid_time_range",
"message": "End time must be after start time"
}
Agent Not Found (404)
{
"error": "agent_not_found",
"message": "AI agent not found or you do not have access"
}
Team Not Found (404)
{
"error": "team_not_found",
"message": "Team not found or you do not have access"
}
Unauthorized (401)
{
"error": "authentication_required",
"message": "API key is required"
}
Permission Denied (403)
{
"error": "permission_denied",
"message": "This API key does not have can_write_calendar permission"
}
Server Error (500)
{
"error": "server_error",
"message": "An unexpected server error occurred"
}