MyChurchDocs

Events, calendar and TV schedules

Upcoming events with their fees, registering a member or child (with an M-Pesa prompt for paid events), supporting an event, confirming attendance on the day, the church calendar and the weekly TV schedule.

Premium

Every route on this page needs the church to be on the premium plan. A basic church answers {"message": "Your church is currently not subscribed to this feature.", "status": false}.

Upcoming events

GEThttps://uat-api.mychurch.co.ke/api/v2/events/publicMember token, premium
bash
curl https://uat-api.mychurch.co.ke/api/v2/events/public \
  -H "Authorization: Bearer 11111111-2222-4333-8444-555555555555"
Response
{
  "message": "Success",
  "status": true,
  "regions": [ { "uuid": "00000000-0000-4000-8000-000000000611", "name": "Nairobi West" } ],
  "positions": [ { "name": "Usher", "uuid": "00000000-0000-4000-8000-000000000621" } ],
  "events": [
    {
      "uuid": "00000000-0000-4000-8000-000000000601", "name": "Youth Camp 2026", "description": "Three days at Limuru",
      "location": "Limuru", "account_number": "EV-30412", "support_account_number": "EVS-30412",
      "poster": "https://uat-api.mychurch.co.ke/storage/scarlet/posters/camp.jpg", "is_paid": 1,
      "start": "Fri, 11-Dec-26 08:00AM", "end": "Sun, 13-Dec-26 04:00PM",
      "payment_accounts": [ { "amount": "3500.00", "account_number": "EV-30412", "title": "Camp fee" } ],
      "type": 1
    },
    {
      "uuid": "00000000-0000-4000-8000-000000000701", "name": "Church T-shirt", "description": "Cotton, all sizes",
      "poster": "https://uat-api.mychurch.co.ke/storage/scarlet/merchandise/tshirt.jpg", "type": 2, "amount": "1,200.00"
    }
  ],
  "eventsOnly": [
    {
      "uuid": "00000000-0000-4000-8000-000000000601", "name": "Youth Camp 2026", "description": "Three days at Limuru",
      "location": "Limuru", "account_number": "EV-30412", "support_account_number": "EVS-30412",
      "poster": "https://uat-api.mychurch.co.ke/storage/scarlet/posters/camp.jpg", "is_paid": 1,
      "start": "2026-12-11 08:00:00", "end": "2026-12-13 16:00:00",
      "payments": [ { "amount": "3500.00", "account_number": "EV-30412", "title": "Camp fee" } ]
    }
  ],
  "streams": [
    { "link": "https://www.youtube.com/watch?v=example", "is_youtube": 1, "poster": null, "service": "Sunday First Service", "uuid": "00000000-0000-4000-8000-000000000801" }
  ]
}

events mixes events (type: 1) and listed merchandise (type: 2) for the app's feed; eventsOnly is events alone with machine-readable dates. streams are the current livestreams (used by online check-in). regions and positions feed the registration form. Each payment_accounts entry is a fee with its own EV- account number; support_account_number (EVS-) receives donations towards the event.

Register for an event

POSThttps://uat-api.mychurch.co.ke/api/v2/event/attendanceMember token, premium

Parameters

FieldTypeRequiredDescription
event_iduuidYesThe event.
accountstringNoThe fee being paid, by its EV- account number. Needed for a paid event to send a prompt.
amountintegerNoWhat the member pays now, up to the fee. Money the member already paid to the church paybill and that is held unallocated is added to it.
childuuidNoRegister this child of the member instead of the member.
regionuuidNoRegion, for bus allocation.
positionuuidNoPosition (role at the event), for bus allocation.
bash
curl -X POST https://uat-api.mychurch.co.ke/api/v2/event/attendance \
  -H "Authorization: Bearer 11111111-2222-4333-8444-555555555555" \
  -H "Content-Type: application/json" \
  -d '{"event_id": "00000000-0000-4000-8000-000000000601", "account": "EV-30412"}'

Answers (all HTTP 200):

  • Please pay the event fee when prompted (status: true): a paid event; an M-Pesa prompt for the balance of the fee is on its way to the member's phone. The registration is confirmed when the payment is verified.
  • Event attendance saved (status: true): a free event, or a fee already covered by money held for the member.
  • You have already registered for this event (status: false).
  • The amount you've entered is more that the event amount (status: false).
  • Your church has no paybill configured for payments (status: false).

Calling the route again for a registered-but-unpaid member sends a new prompt. When the event has buses, a seat is reserved on one matching the region and position.

Support an event

POSThttps://uat-api.mychurch.co.ke/api/v2/event/supportMember token, premium

Parameters

FieldTypeRequiredDescription
event_iduuidYesThe event.
amountintegerYesWhole shillings, more than 0.
Response
{"status": true, "message": "A payment request has been initiated"}

The prompt carries the event's EVS- number. Failures: Amount should be greater than 0, This event does not accept support payments, Your church has no paybill configured for payments.

Confirm attendance on the day

POSThttps://uat-api.mychurch.co.ke/api/v2/confirm/attendanceMember token, premium

Parameters

FieldTypeRequiredDescription
event_iduuidYesThe event.
codestringYesThe event code announced at the venue.
Response
{"message": "Attendance confirmed. Thank you", "status": true}

Failures: You have not registered for this event (also when the fee is unpaid), You have already confirmed attendance, You have entered the wrong code.

Event QR code

POSThttps://uat-api.mychurch.co.ke/api/v2/generate-qr-codeMember token, premium

The link the app renders as the member's event QR code, scanned by ushers in the portal.

Response
{"message": "Success", "status": true, "url": "https://account.mychurch.co.ke/church-member-events/00000000-0000-4000-8000-0000000000b1"}

The /api/v1 variant (a PDF) answers the "being upgraded" message.

Calendar

GEThttps://uat-api.mychurch.co.ke/api/v2/calendar-dataMember token, premium

Query

FieldTypeRequiredDescription
typeintegerNo2 to list only one-off services dated after today; otherwise every service.

Upcoming events, meetings of the member's departments and cell groups, and the next occurrence of each service, in one list.

Response
{
  "message": "Success",
  "status": true,
  "events": [
    { "uuid": "00000000-0000-4000-8000-000000000601", "name": "Youth Camp 2026", "description": "Three days at Limuru", "location": "Limuru", "start": "2026-12-11 08:00:00", "end": "2026-12-13 16:00:00" },
    { "uuid": "00000000-0000-4000-8000-000000000901", "name": "Choir practice", "description": null, "location": null, "start": "2026-11-05 17:30:00", "end": "2026-11-05 19:00:00" },
    { "uuid": "00000000-0000-4000-8000-000000000a01", "name": "Sunday First Service", "description": null, "location": null, "start": "2026-11-08 08:00:00", "end": "2026-11-08 10:00:00" }
  ]
}

TV schedules

GEThttps://uat-api.mychurch.co.ke/api/v2/tv-schedules/{church}Public

The church's TV programme for the current week (Monday to Sunday), grouped by day, plus its live TV link. Public, but gated on the church's premium plan.

bash
curl https://uat-api.mychurch.co.ke/api/v2/tv-schedules/00000000-0000-4000-8000-000000000001
Response
{
  "message": "success",
  "status": true,
  "schedules": [
    { "day": "Sun", "schedules": [
      { "topic": "Sunday Service Live", "category_id": 9, "from": "10:00:00", "to": "12:00:00", "date": "2026-11-08",
        "cat": { "id": 9, "uuid": "00000000-0000-4000-8000-000000000b01", "church_id": 12, "name": "Worship", "type": 3,
                 "deleted_at": null, "created_at": "2025-02-01T06:00:00.000000Z", "updated_at": "2025-02-01T06:00:00.000000Z" } }
    ] },
    { "day": "Mon", "schedules": [] }
  ],
  "live_tv_link": { "link": "https://www.youtube.com/watch?v=example", "video_id": "example", "type": 1 },
  "current_day": 0
}

schedules always has seven entries, Sun to Sat. current_day is today, 0 Sunday to 6 Saturday. live_tv_link.type is 1 YouTube, 2 other; the whole link is null when none is set.

Event fees and supports are paid like any other giving: see account numbers for EV- and EVS-.