---
title: "Create a new training session"
method: POST
path: "/api/2026-07-01/resources/trainings/sessions"
tags: ["Trainings > Session"]
---

# Create a new training session

`POST /api/2026-07-01/resources/trainings/sessions`

Create a new training session, do not forget to make it child from a training class if you want it to be displayed in the frontend application.

## Request body

- object
  - `name` string, required — Session name
  - `training_id` string, required — Training this session belongs to
  - `description` string — Session specific description
  - `training_class_id` string — Training class it belongs to
  - `starts_at` string — Start date for the session, if scheduled, starts at and ends at needs to happen within the same day.
  - `ends_at` string — End date for the session, if scheduled, starts at and ends at needs to happen within the same day.
  - `due_date` string — Only necessary for self paced sessions.
  - `duration` string — Duration in hours of the session
  - `modality` 'online' | 'inperson' | 'mixed' — Online, In person or mixed
  - `schedule` 'selfpaced' | 'scheduled' — Scheduled or Self paced. Scheduled needs to have a start time and end time within the same day, self paced can start and end in different days and specific time won't be shown in the frontend app.
  - `link` string — Link to join the session if it's online, or to access or download related material for the session.
  - `location` string — Place where the session will happen if modality is mixed or in person.
  - `subsidized` boolean — Mark the session as subsidized
  - `recurrent` boolean — -
  - `reminders` unknown[] — Session reminder notifications for those assigned to the session
    - unknown
  - `send_calendar_invites` boolean — Send calendar invites to attendees assigned to the session

## Response `201`

CREATED

- TrainingsSession
  - `id` string, required — id of the session
  - `name` string, required
  - `training_id` string, required — Identifier of the course
  - `description` string — Session description
  - `training_class_id` string — Identifier of the group
  - `starts_at` string — Date when the session should start
  - `ends_at` string — Date when the session should end
  - `due_date` string — Date when the session should end
  - `duration` string — The duration in hours and minutes of the session
  - `modality` 'online' | 'inperson' | 'mixed' — The mode the session will be handled, online, in person or hybrid.
  - `schedule` 'scheduled' | 'selfpaced' — Session schedule information (scheduled, self-paced)
  - `link` string — The link to see material from the session
  - `location` string — The place where the session takes place
  - `session_attendance_ids` string[]
  - `session_feedback_id` string
  - `subsidized` boolean, required — if the session is subsidized
  - `status` string — Status of the session
  - `parent_id` string — Id of the recurrent session that is parent of the current one

---

[API](https://skmtc.net/factorialhr/apis/factorial-api.md) · [All operations](https://skmtc.net/factorialhr/apis/factorial-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/factorialhr/factorial-api/revisions/1a6bffb20f7d/schema)
