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/

Request

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

Query parameters

eventnumber

Filter by CalendarEvent ID

limitinteger

Number of results to return per page.

offsetinteger

The initial index from which to return the results.

status'approved' | 'auto_undone' | 'pending' | 'rejected' | 'stale'

Filter by request status (default: pending)

  • pending - Pending
  • approved - Approved
  • rejected - Rejected
  • stale - Stale
  • auto_undone - Auto-undone

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

countinteger required
nextstring uri nullable
previousstring uri nullable

Example response

{
  "count": 123,
  "next": "http://api.example.org/accounts/?offset=400&limit=100",
  "previous": "http://api.example.org/accounts/?offset=200&limit=100"
}

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