---
title: "Adds or updates a teaching event."
method: POST
path: "/api/teaching_events"
tags: ["Teaching Events"]
---

# Adds or updates a teaching event.

`POST /api/teaching_events`

If the `id` is specified then the existing teaching event will be updated, otherwise a new teaching event will be created.

## Request body

- TeachingEvent
  - `id` string, uuid, nullable
  - `typeId` integer
  - `statusId` integer
  - `regionId` integer, nullable
  - `readableId` string, required
  - `webFeedId` string, nullable — If set, the API will accept new attendees for this event (an external sign up should be used if this value is nil).
  - `isOnline` boolean
  - `name` string, required
  - `summary` string, nullable
  - `message` string, nullable — Used to push miscellaneous messages to users (if an event is close to being booked out, for example).
  - `description` string, nullable
  - `videoUrl` string, nullable
  - `scribbleId` string, nullable
  - `providerWebsiteUrl` string, nullable
  - `providerTargetAudience` string, nullable
  - `providerOrganiser` string, nullable
  - `providerContactEmail` string, email, nullable
  - `startAt` string, date-time
  - `endAt` string, date-time
  - `providersList` string, nullable
  - `building` TeachingEventBuilding
    - `id` string, uuid, nullable
    - `venue` string, required
    - `addressLine1` string, nullable
    - `addressLine2` string, nullable
    - `addressLine3` string, nullable
    - `addressCity` string, nullable
    - `addressPostcode` string, nullable
    - `imageUrl` string, nullable
  - `isVirtual` boolean
  - `accessibilityOptions` integer[], nullable
  - `isInPerson` boolean

## Response `201`

Created

- TeachingEvent
  - `id` string, uuid, nullable
  - `typeId` integer
  - `statusId` integer
  - `regionId` integer, nullable
  - `readableId` string, required
  - `webFeedId` string, nullable — If set, the API will accept new attendees for this event (an external sign up should be used if this value is nil).
  - `isOnline` boolean
  - `name` string, required
  - `summary` string, nullable
  - `message` string, nullable — Used to push miscellaneous messages to users (if an event is close to being booked out, for example).
  - `description` string, nullable
  - `videoUrl` string, nullable
  - `scribbleId` string, nullable
  - `providerWebsiteUrl` string, nullable
  - `providerTargetAudience` string, nullable
  - `providerOrganiser` string, nullable
  - `providerContactEmail` string, email, nullable
  - `startAt` string, date-time
  - `endAt` string, date-time
  - `providersList` string, nullable
  - `building` TeachingEventBuilding
    - `id` string, uuid, nullable
    - `venue` string, required
    - `addressLine1` string, nullable
    - `addressLine2` string, nullable
    - `addressLine3` string, nullable
    - `addressCity` string, nullable
    - `addressPostcode` string, nullable
    - `imageUrl` string, nullable
  - `isVirtual` boolean
  - `accessibilityOptions` integer[], nullable
  - `isInPerson` boolean

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.net/department-for-education/apis/get-into-teaching-api-v1.md) · [All operations](https://skmtc.net/department-for-education/apis/get-into-teaching-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/department-for-education/get-into-teaching-api-v1/versions/5d53dbaed560/schema)
