---
title: "Import many past sessions (CSV upload). Each row stands alone: a bad row is reported, the rest still import (admin only)"
method: POST
path: "/api/admin/scheduling/past-events/bulk"
tags: ["admin-scheduling"]
---

# Import many past sessions (CSV upload). Each row stands alone: a bad row is reported, the rest still import (admin only)

`POST /api/admin/scheduling/past-events/bulk`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/admin/scheduling/past-events/bulk`
- Auth: HTTP bearer

## Headers

- `x-client` string, required

## Request body

- ImportPastEventsDto
  - `events` ImportPastEventDto[], required
    - `category` 'workshop' | 'group_coaching' | 'community', required
    - `title` string, required
    - `subtitle` string
    - `description` string: Plain text. A blank line starts a new paragraph.
    - `startAt` string, required
    - `endAt` string, required
    - `coachId` number, required: Primary facilitator. Must be an active coach or admin.
    - `coFacilitatorIds` number[]
    - `groupId` number: The cohort, for a group_coaching session.
    - `recordingUrl` string, required: Recording link (e.g. a Zoom share link).
    - `joinUrl` string: The meeting link the session used, if known.
    - `openAttendance` boolean
    - `invitedUserIds` number[]
    - `invitedGroupIds` number[]

## Response `201`

## Changes

- **2026-10-04** `adc88d55b476`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/admin/scheduling/past-events/bulk/post.md)

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
