Appointments
Book time with a pastor or a department leader: pick a department that accepts appointments, a person to see, an optional slot, and send the request for approval.
Premium, v2 only
Appointments need the church's premium plan; a basic church answers
Your church is currently not subscribed to this feature. These routes exist on /api/v2 only.Flow
GET appointment-departments: departments that accept appointments.GET get-people-to-see/{department}: the department's office holders.GET get-slots/{person}: when that person receives visitors (may be empty).POST save-appointment: the request, which the church approves or declines in the portal; the member is told by SMS.
Departments
GEThttps://uat-api.mychurch.co.ke/api/v2/appointment-departmentsMember token, premium
Response
{
"message": "Success",
"status": true,
"name": "Department",
"departments": [
{ "uuid": "00000000-0000-4000-8000-000000000c02", "department_name": "Pastoral Care", "description": "Counselling and visits", "code": 210 }
]
}People to see
GEThttps://uat-api.mychurch.co.ke/api/v2/get-people-to-see/{department}Member token, premium
Response
{
"message": "Success",
"status": true,
"members": [
{
"id": 77, "first_name": "Samuel", "middle_name": null, "other_names": "Otieno", "email": "[email protected]",
"phone": "254700111222", "department_id": 15, "position": "Senior Pastor",
"deleted_at": null, "created_at": "2025-01-01T06:00:00.000000Z", "updated_at": "2025-01-01T06:00:00.000000Z",
"uuid": "00000000-0000-4000-8000-000000001301", "status": 1, "position_id": 2, "user_id": null, "hashed_phone": "4b2f...e91c"
}
]
}Whole department member records, integer ids included, because the installed apps read them. Use uuid in the next calls.
Slots
GEThttps://uat-api.mychurch.co.ke/api/v2/get-slots/{person}Member token, premium
Response
{
"message": "Success",
"status": true,
"slots": [
{ "date_or_day": "tuesday", "uuid": "00000000-0000-4000-8000-000000001311", "from": "10:00:00", "to": "13:00:00" },
{ "date_or_day": "2026-11-12", "uuid": "00000000-0000-4000-8000-000000001312", "from": "14:00:00", "to": "16:00:00" }
]
}date_or_day is a weekday for a weekly slot or a date for a one-off slot.
Book
POSThttps://uat-api.mychurch.co.ke/api/v2/save-appointmentMember token, premium
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| department | uuid | Yes | The department. |
| person_to_see | uuid | Yes | From get-people-to-see. |
| purpose | string | Yes | What the meeting is about. |
| start_time | string | Yes | Nairobi time, YYYY-MM-DD HH:MM (seconds and an ISO T also accepted). |
| end_time | string | Yes | Same format. |
| slot | uuid | No | The slot the time falls in. When given, the time must sit inside the slot and within its allowed length. |
bash
curl -X POST https://uat-api.mychurch.co.ke/api/v2/save-appointment \
-H "Authorization: Bearer 11111111-2222-4333-8444-555555555555" \
-H "Content-Type: application/json" \
-d '{"department": "00000000-0000-4000-8000-000000000c02", "person_to_see": "00000000-0000-4000-8000-000000001301", "purpose": "Pre-marital counselling", "start_time": "2026-11-10 10:00", "end_time": "2026-11-10 10:30"}'Response
{"message": "Appointment saved successfully", "status": true}The member receives an SMS that the request is under review. Failures (HTTP 200, status: false):
The requested time is not validThe person to see already has an appointment booked between 2026-11-10 10:00:00 and 2026-11-10 10:30:00You already has an appointment booked between ...The requested time is outside the allowed slot time.The allocated time for the slot is 30 minutes
The member's appointments
GEThttps://uat-api.mychurch.co.ke/api/v2/my-appointmentsMember token, premium
Response
{
"message": "Success",
"status": true,
"appointments": [
{
"uuid": "00000000-0000-4000-8000-000000001401", "start": "2026-11-10 10:00:00", "end": "2026-11-10 10:30:00",
"status": 3, "title": "Pre-marital counselling", "department_id": 15, "person_to_see_id": 77, "id": 512,
"department": { "id": 15, "department_name": "Pastoral Care", "description": "Counselling and visits", "uuid": "00000000-0000-4000-8000-000000000c02" },
"person_to_see": { "id": 77, "first_name": "Samuel", "middle_name": null, "other_names": "Otieno", "uuid": "00000000-0000-4000-8000-000000001301", "position": "Senior Pastor" }
}
]
}status is 0 scheduled, 1 closed, 2 no-show, 3 awaiting approval, 4 declined.