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
{"message": "Your church is currently not subscribed to this feature.", "status": false}.Upcoming events
curl https://uat-api.mychurch.co.ke/api/v2/events/public \
-H "Authorization: Bearer 11111111-2222-4333-8444-555555555555"{
"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
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| event_id | uuid | Yes | The event. |
| account | string | No | The fee being paid, by its EV- account number. Needed for a paid event to send a prompt. |
| amount | integer | No | What 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. |
| child | uuid | No | Register this child of the member instead of the member. |
| region | uuid | No | Region, for bus allocation. |
| position | uuid | No | Position (role at the event), for bus allocation. |
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
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| event_id | uuid | Yes | The event. |
| amount | integer | Yes | Whole shillings, more than 0. |
{"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
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| event_id | uuid | Yes | The event. |
| code | string | Yes | The event code announced at the venue. |
{"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
The link the app renders as the member's event QR code, scanned by ushers in the portal.
{"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
Query
| Field | Type | Required | Description |
|---|---|---|---|
| type | integer | No | 2 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.
{
"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
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.
curl https://uat-api.mychurch.co.ke/api/v2/tv-schedules/00000000-0000-4000-8000-000000000001{
"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-.