External Event Change Requests

List and act on external-event change requests (approve / reject).

Eligibility scoping (GET /change-requests/):

  • Admins see all change requests in their organization.
  • Members see only requests whose target event they attend (EventAttendance row for their membership).

Default filter: status=PENDING. Pass ?status=approved (or any valid status) to retrieve historical / resolved requests.

Approve (POST /change-requests/{id}/approve/): Apply the proposed change locally. Returns the updated request (200).

Reject (POST /change-requests/{id}/reject/): Push the retained value back to the external provider (GCal) and mark the request REJECTED. Returns the updated request (200).

Error responses:

  • 403 when the caller is not eligible to resolve the specific request.
  • 409 when the request is no longer PENDING.
  • 401 when the caller is not authenticated.
get/change-requests/{id}/

Request

  • The document declares no server URL.
  • Auth: one of:
    • HTTP bearer
    • API key in cookie sessionid

Path parameters

idstring required

Headers

X-Organization-Idstring

Selects the active organization for this request. Optional for callers that belong to exactly one active organization — the single membership is resolved implicitly. Required when the caller has two or more active memberships; omitting it in that case returns 400. If the header names an organization the caller is not an active member of, the server returns 403.

Response

idinteger required
event_idinteger required
kind'update' | 'delete' required
  • update - Update
  • delete - Delete
status'pending' | 'approved' | 'rejected' | 'stale' | 'auto_undone' required
  • pending - Pending
  • approved - Approved
  • rejected - Rejected
  • stale - Stale
  • auto_undone - Auto-undone
provider'internal' | 'google' | 'microsoft' | 'apple' | 'ics' required
  • internal - Internal Calendar
  • google - Google Calendar
  • microsoft - Microsoft Outlook Calendar
  • apple - Apple Calendar
  • ics - ICS
proposed_valuesunknown required
retained_valuesunknown required
resolved_by_user_idinteger nullable required

Return the resolver's user id, or None when unresolved.

resolved_atstring date-time nullable required
createdstring date-time required

Changes

    • ○

      added to the response property allOf list for the response status

    • ○

      removed from the response property allOf list for the response status

    • ○

      endpoint added