MyChurchDocs

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

  1. GET appointment-departments: departments that accept appointments.
  2. GET get-people-to-see/{department}: the department's office holders.
  3. GET get-slots/{person}: when that person receives visitors (may be empty).
  4. 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

FieldTypeRequiredDescription
departmentuuidYesThe department.
person_to_seeuuidYesFrom get-people-to-see.
purposestringYesWhat the meeting is about.
start_timestringYesNairobi time, YYYY-MM-DD HH:MM (seconds and an ISO T also accepted).
end_timestringYesSame format.
slotuuidNoThe 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 valid
  • The person to see already has an appointment booked between 2026-11-10 10:00:00 and 2026-11-10 10:30:00
  • You 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.