---
title: "Create or update a calendar event"
method: PATCH
path: "/notifications"
tags: ["notifications"]
---

# Create or update a calendar event

`PATCH /notifications`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/notifications`
- Auth: HTTP bearer

Identify the event by `id`, or by `external_id` together with `platform` and `platform_account`. Setting `is_dismissed` to true on an event that was not already dismissed also notifies the other devices of the user, exactly as the dismiss endpoint does — `device_id` included, so the caller can ignore its own echo. `device_id` is never stored on the event.

## Request body

- UpdateCalendarEventDto
  - `dismiss_reason` string
  - `id` string, uuid
  - `summary` string
  - `description` string
  - `event_begins` string, date-time
  - `event_ends` string, date-time
  - `is_dismissed` boolean
  - `external_id` string
  - `received` boolean
  - `platform` 'google' | 'microsoft'
  - `platform_account` string
  - `calendar_id` string
  - `external_metadata` object
  - `device_id` string, uuid: The device reporting the change. Never persisted — it only rides along on the dismissal broadcast so the sender can ignore its own event, keeping this endpoint at the parity with `POST calendar-events/dismiss` that its description promises.

## Response `200`

- UpdateCalendarEventDto
  - `dismiss_reason` string
  - `id` string, uuid
  - `summary` string
  - `description` string
  - `event_begins` string, date-time
  - `event_ends` string, date-time
  - `is_dismissed` boolean
  - `external_id` string
  - `received` boolean
  - `platform` 'google' | 'microsoft'
  - `platform_account` string
  - `calendar_id` string
  - `external_metadata` object
  - `device_id` string, uuid: The device reporting the change. Never persisted — it only rides along on the dismissal broadcast so the sender can ignore its own event, keeping this endpoint at the parity with `POST calendar-events/dismiss` that its description promises.

---

[API](https://skmtc.dev/focusbear/apis/focusbear-api.md) - [All operations](https://skmtc.dev/focusbear/apis/focusbear-api/llms.txt) - [OpenAPI document](https://skmtc.dev/focusbear/apis/focusbear-api/revisions/3a83a3b9a811?raw)
