# PATCH /scheduled-event-types/:id

**Resource:** [Scheduled Event Types](./scheduled-event-types.md)  
**Scopes:** `company:write`  
**Write operation:** yes

Update a scheduled event type. Only include fields you want to change.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `id` | path | uuid | yes | Scheduled event type ID |
| `name` | body | string | no | Event type name |
| `description` | body | string | no | Description |
| `icon` | body | string | no | Lucide icon name |
| `color` | body | string | no | Color theme |
| `is_meeting` | body | boolean | no | Meeting type flag |
| `default_duration_minutes` | body | number | no | Default duration (meeting types only) |
| `event_queue_id` | body | uuid | no | Linked event queue UUID |
| `enrollment_offset_minutes` | body | number | no | Minutes before event to start queue |
| `sort_order` | body | number | no | Display order |
| `is_active` | body | boolean | no | Active/inactive state |
| `is_bookable` | body | boolean | no | Whether external bookers can book this type publicly |
| `slug` | body | string | no | URL-friendly slug for public booking page |
| `buffer_before_minutes` | body | number | no | Buffer time before booking (minutes) |
| `buffer_after_minutes` | body | number | no | Buffer time after booking (minutes) |
| `min_notice_hours` | body | number | no | Minimum notice required (hours) |
| `max_advance_days` | body | number | no | Max days in advance to book |
| `slot_interval_minutes` | body | number | no | Time slot interval (minutes) |
| `booking_pipeline_id` | body | uuid | no | Pipeline for auto-created opportunities |
| `booking_stage_id` | body | uuid | no | Stage for auto-created opportunities |
| `booking_assigned_user_ids` | body | array | no | Team member UUIDs to assign to opportunities and check calendar availability |
| `booking_deal_behavior` | body | string | no | How bookings interact with CRM opportunities (param name preserved for backward compatibility): "create" (always new), "update_or_create" (match existing or create), "never_create" (match only). Default: "create". |
| `booking_notifications` | body | object | no | Booking notifications. Object with keys: pre_meeting, meeting_start, late, no_show, rebooking. Each key is an array of { offset_minutes? (pre_meeting/rebooking), channels: ["email"\|"sms"], recipients: "booker"\|"booker_and_attendees"\|"team"\|"all", email_subject, email_body, sms_body, label }. Template vars: {booker_name}, {event_type}, {date}, {time}, {meet_link}, {duration}, {rebook_link} |

## Request example

```bash
curl -X PATCH \
  "https://api.trustpager.com/functions/v1/api/v1/scheduled-event-types/a1b2c3d4-..." \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Client Site Visit", "color": "blue" }'
```

## Response example

```json
{
  "data": {
    "id": "a1b2c3d4-...",
    "name": "Client Site Visit",
    "color": "blue",
    "is_active": true,
    "updated_at": "2026-03-23T11:00:00Z"
  },
  "meta": { "credits_remaining": 9498 }
}
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`