Recurring Template Repository
API Contract
REST
/api/v1/recurring-templates
7 endpoints
GET
/api/v1/recurring-templates/api/v1/recurring-templates
List recurring templates
Public
Response Example
{
"data": [
{
"id": "rt-001",
"coordinator_id": "coord-119",
"organization_id": "org-44",
"name": "Weekly Peer Session Template",
"activity_type": "peer_session",
"recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
"duration_minutes": 60,
"mentor_ids": [
"mentor-482",
"mentor-510"
],
"is_active": true,
"created_at": "2026-01-15T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 8
}
}
GET
/api/v1/recurring-templates/api/v1/recurring-templates/:id
Get recurring template by ID
Public
Response Example
{
"id": "rt-001",
"coordinator_id": "coord-119",
"organization_id": "org-44",
"name": "Weekly Peer Session Template",
"activity_type": "peer_session",
"recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
"duration_minutes": 60,
"mentor_ids": [
"mentor-482",
"mentor-510"
],
"notes_template": "Regular Monday group session",
"is_active": true,
"created_at": "2026-01-15T08:00:00Z",
"updated_at": "2026-03-01T10:00:00Z"
}
POST
/api/v1/recurring-templates/api/v1/recurring-templates
Create a new recurring activity template
Public
Request Example
{
"coordinator_id": "coord-119",
"organization_id": "org-44",
"name": "Bi-weekly Workshop",
"activity_type": "workshop",
"recurrence_rule": "RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE",
"duration_minutes": 90,
"mentor_ids": [
"mentor-482",
"mentor-521",
"mentor-533"
],
"notes_template": "Bi-weekly skills workshop"
}
Response Example
{
"id": "rt-009",
"coordinator_id": "coord-119",
"organization_id": "org-44",
"name": "Bi-weekly Workshop",
"activity_type": "workshop",
"recurrence_rule": "RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE",
"duration_minutes": 90,
"mentor_ids": [
"mentor-482",
"mentor-521",
"mentor-533"
],
"is_active": true,
"created_at": "2026-03-26T10:00:00Z",
"updated_at": "2026-03-26T10:00:00Z"
}
PUT
/api/v1/recurring-templates/api/v1/recurring-templates/:id
Update a recurring template
Public
Request Example
{
"name": "Bi-weekly Workshop (Updated)",
"duration_minutes": 120,
"mentor_ids": [
"mentor-482",
"mentor-521"
],
"is_active": false
}
Response Example
{
"id": "rt-009",
"coordinator_id": "coord-119",
"name": "Bi-weekly Workshop (Updated)",
"duration_minutes": 120,
"mentor_ids": [
"mentor-482",
"mentor-521"
],
"is_active": false,
"updated_at": "2026-03-26T11:30:00Z"
}
DELETE
/api/v1/recurring-templates/api/v1/recurring-templates/:id
Delete a recurring template
Public
Response Example
{
"success": true,
"deleted_id": "rt-009"
}
GET
/api/v1/recurring-templates/api/v1/recurring-templates/by-coordinator/:coordinator_id
Get all templates for a specific coordinator
Public
Response Example
{
"data": [
{
"id": "rt-001",
"name": "Weekly Peer Session Template",
"activity_type": "peer_session",
"recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
"mentor_ids": [
"mentor-482",
"mentor-510"
],
"is_active": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 5
}
}
GET
/api/v1/recurring-templates/api/v1/recurring-templates/by-organization/:organization_id
Get all templates for an organization
Public
Response Example
{
"data": [
{
"id": "rt-001",
"coordinator_id": "coord-119",
"name": "Weekly Peer Session Template",
"activity_type": "peer_session",
"is_active": true
},
{
"id": "rt-003",
"coordinator_id": "coord-205",
"name": "Monthly Review",
"activity_type": "review",
"is_active": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 14
}
}