Welcome

The Church in Cape Town

The church in Cape Town, South Africa, warmly welcomes you. We are believers in the Lord Jesus Christ who have personally received Him as our Savior. He is the most excellent and enjoyable Person. We love Him and endeavor to give Him the first place in all things. We rejoice to be cleansed by the blood of Jesus, God’s Son, born again of the Father’s divine life, and filled with the Holy Spirit.

About Us

The church in Cape Town isn't our name - it's our description. As such, it's an inclusive title, not an exclusive one. We gather together simply as believers of the Lord in this city, and we receive as our brothers and sisters all who believe in Jesus Christ. Likewise, we warmly welcome guests and visitors who are not Christians.In the 1980s, a group of believers in Christ began to meet as "the church in Cape Town," a local expression of the Body of Christ according to the New Testament principle of "one city, one church"—Rev 1:11; Acts 14:23; Titus 1:5.

As individual believers in Christ, we seek to live a life that glorifies our Savior and Lord Jesus Christ, denying ungodliness and putting off the "old man" to live according to the life and nature of Christ who indwells us.

As members of the Body of Christ, we seek to live a corporate life by laying aside all distinctions and divisive practices, expressing the one, universal Body of Christ in a practical, local way but in fellowship with all the local churches on the earth. We have been especially helped, both individually and collectively, by the ministry of Watchman Nee and Witness Lee, and wholeheartedly recommend their ministry to all seekers of the Lord.For further information on meeting times and places, please visit our contact page.

Our Belief

We hold the faith which is common to all believers.—Titus 1:4, Jude 3

The Bible
The Bible is the complete divine revelation inspired word by word by God through the Holy Spirit.—2 Peter 1:21, 2 Timothy 3:16
The Triune God
God is uniquely one, yet a Trinity - the Father, the Son, and the Spirit.—1 Timothy 2:5, Matthew 28:19
Jesus Christ
The Son of God, even God Himself, was incarnated to be a man by the name of Jesus Christ.—John 1:1, John 1:14
Christ's crucifixion
Christ died on the cross for our sins, shedding His blood for our redemption.—1 Peter 2:24, Ephesians 1:7

Christ's ascension
Christ ascended to the right hand of God to be Lord of all.—Acts 1:9, Acts 2:33, Acts 2:36
Regeneration
Whenever any person repents to God and believes in the Lord Jesus Christ, he or she is regenerated (born again) and becomes a living member of the one Body of Christ.—Acts 20:21, John 3:3, Ephesians 1.22-23, Romans 12:5
Christ's return
Christ is coming again to receive His believers to Himself.—1 Thessalonians 2:19
Christ's resurrection
Christ resurrected from among the dead on the third day.—1 Corinthians 15:4

Children's service
Our toddlers and children are very precious to us. That's why we seek to help the little ones among us develop into young men and women who love Jesus Christ, know the Bible, and seek God's kingdom first.
The Lord's supper and teaching
As believers in Christ who love and serve Him, we enjoy the Lord's supper each Lord's Day. Following our worship of the Father, we share with one another what we have enjoyed in the Scriptures in an open session of mutual teaching and encouragement.
Spiritual companionship
Prayerful spiritual relationships of two or three believers fuel our Christian life and enable us to be Christ's witnesses. We value these companionships highly and take every opportunity to encourage,strengthen, and sustain them.
Young people's gatherings
We are stongly commited to the spiritual development of our next generation. We keep our high school students' lives meaningful by providing an atmosphere rich with God's Word, healthy companionships, and young people's bible camps.

Our Life

We maintain a vibrant and active life. Whether you're a growing family or a student, single or retired, we give you a place to live, grow, and serve as an indispensable member of Christ's Body.

Small-group life
Gather with believers in your neighborhood for dinner, singing, mutual Bible study, prayer, and daily fellowship.

Student groups
We desire young men and women to be useful to the Master (2 Tim 2:21). For this we have Bible studies at the campuses of University of Cape Town, University of the Western Cape, and Stellenbosch University and also family-hosted groups near these universities.
Special events
We hold retreats, conferences, and special trainings that are aimed at knowing and experiencing Christ and building His church.

Get in touch

We would love to get in contact with you. We gladly fellowship with all believers and are open to any questions.
You can contact us directly or fill in the form below:

Jandries: 27 82 766 3883 | jandries14@gmail.com

Events

var calendarInitialized = false; var events = []; var calendar; const icons = { block: "#icon-382a61b3b78069a2923fa7feb2cf6bba", checked: "#icon-be848c9691a8e3f7630e3908e426bf9f", calendar: "#icon-59c45c646c93a770c2b114cf72c44f8e", location: "#icon-4c36dea559df9f4384b432ac3c2dbf36", info: "#icon-5df67a211ae41c4e5f96b6e0ea004ca3" }; /** * Carrd loads the script by adding new elements with only the src elements, so we can't trace when the onload event fires. */ function waitForScript(onLoadFunction){ if(typeof(FullCalendar) == 'undefined'){ console.log("FullCalendar is undefined. Waiting..."); window.setTimeout(function(){ waitForScript(onLoadFunction); }, 100); }else{ console.log("FullCalendar is defined"); onLoadFunction(); } } /** * Check if the correct page is in view */ function checkHashForCalendar(){ return window.location.hash == "#calendar"; } /** * This will fire if the document was already loaded */ if(checkHashForCalendar()) waitForScript(init); function init(){ setupTabs(); setupFullCalendar(); document.querySelector("ul.buttons:has(a[href='#myIcons'])").style.display = "none"; } function setupFullCalendar(){ if(calendarInitialized) return; console.log("Initializing calendar"); var calendarEl = document.getElementById('calendar'); calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridYear', customButtons: { myToday: { text: 'Today', click: function() { calendar.today(); } } }, headerToolbar: { left: 'prev,next myToday', center: 'title', right: 'dayGridYear' }, height: 650, events: getCalendarEvents, eventOverlap: false, eventDidMount: function (info) { info.el.setAttribute('data-bs-html', 'true'); var popover = new bootstrap.Popover(info.el, { content: generatePopoverContent(info.event), html: true, placement: 'top', trigger: 'manual', customClass: 'custom-tooltip', sanitize: false }); info.el.addEventListener('mouseenter', function () { popover.show(); popover._popper.state.elements.popper.addEventListener("mouseleave", () => popover.hide()); }); info.el.addEventListener('mouseleave', function () { setTimeout(function () { if (!info.el.matches(':hover') && !document.querySelector('.popover:hover')) { popover.hide(); } }, 100); }); document.addEventListener('click', function (e) { if (!info.el.contains(e.target)){ var pop = document.querySelector('.popover'); if(pop && !pop.contains(e.target)) popover.hide(); } }); }, eventContent: function (info) { if (info.view.type === 'dayGridYear') { return { html: ` <${"div"} class="fc-month-event"><${"strong"}>${info.event.title} ` }; } } }); calendar.render(); calendarInitialized = true; } function generatePopoverContent(event) { /* Carrd filters out html tags, so we need to do this for a workaround*/ var end = event.end == null ? "" : ` <${'div'}><${'div class="detail_name"'}><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.calendar}"><${"/use"}><${"/svg"}><${"/div"}> Until: <${"/div"}><${'div class="detail_value"'}>${formatDate(event.end)}<${"/div"}><${"/div"}> `; var loc = !event.extendedProps.location ? "" : ` <${'div'}><${'div class="detail_name"'}><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.location}"><${"/use"}><${"/svg"}><${"/div"}> Location: <${"/div"}><${'div class="detail_value"'}>${event.extendedProps.location}<${"/div"}><${"/div"}> `; var details = !event.extendedProps.details ? "" : ` <${'div'}><${'div class="detail_name"'}><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.info}"><${"/use"}><${"/svg"}><${"/div"}> Details: <${"/div"}><${'div class="detail_value"'}>${event.extendedProps.details}<${"/div"}><${"/div"}> `; var startDate = new Date(event.start); var btn_startDate = 'startDate="' + startDate.getFullYear() + "-" + String(startDate.getMonth()+1).padStart(2, '0') + "-" + String(startDate.getDate()).padStart(2, '0') + '"'; var btn_startTime = startDate.getHours() == 0 ? "" : 'startTime="' + String(startDate.getHours()).padStart(2, '0') + ":" + String(startDate.getMinutes()).padStart(2, '0') + '"'; var endDate = event.end == null ? new Date(event.start) : new Date(event.end); var btn_endDate = 'endDate="' + endDate.getFullYear() + "-" + String(endDate.getMonth()+1).padStart(2, '0') + "-" + String(endDate.getDate()).padStart(2, '0') + '"'; var btn_endTime = endDate.getHours() == 0 ? "" : 'endTime="' + String(endDate.getHours()).padStart(2, '0') + ":" + String(endDate.getMinutes()).padStart(2, '0') + '"'; var html = ` <${'div class="title"'}>${event.title}<${"/div"}><${'div'}><${'div class="detail_name"'}><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.calendar}"><${"/use"}><${"/svg"}><${"/div"}> Date: <${"/div"}><${'div class="detail_value"'}>${formatDate(event.start)}<${"/div"}><${"/div"}> ${end} ${loc} ${details} <${"div"} class="add_cal_btn"><${"add-to-calendar-button"} name="${event.title}" options="'Apple','Google','iCal','Outlook.com','Yahoo'" size="2" inline="true" location="${event.extendedProps.location_raw}" ${btn_startDate} ${btn_startTime} ${btn_endDate} ${btn_endTime} timeZone="Africa/Johannesburg" ><${"/add-to-calendar-button"}><${"/div"}> `; return html; } async function getCalendarEvents(){ if(events.length > 0){ return events; } const url = "https://christiansoncampus.co.za/php/getCalendar.php"; try { const response = await fetch(url); if (!response.ok) { console.log("Invalid response", response); throw new Error(`Response status: ${response.status}`); } const jsonEvents = (await response.json()).events; parseEvents(jsonEvents); events = jsonEvents; } catch (error) { console.error(error.message); } updateEventsList(); return events; } function parseEvents(events){ for(evt of events){ evt.allDay = evt[2] == evt[3]; evt.start = parseEventDate(evt[2].value); evt.end = parseEventDate(evt[3].value); evt.title = parseFormatRuns(evt[4]); evt.extendedProps = { location: parseFormatRuns(evt[5]), location_raw: evt[5].link ? evt[5].link : evt[5].value, details: parseFormatRuns(evt[6]) }; } } function parseEventDate(dateStr){ if(dateStr) return new Date(dateStr); return null; } function parseFormatRuns(valueWithFormatRuns){ var value = ""; if(valueWithFormatRuns.link){ value = `<${"a"} class="link_in_text" target="_blank" href="${valueWithFormatRuns.link}">${valueWithFormatRuns.value}<${"/a"}>`; }else if(valueWithFormatRuns.formatRuns.length > 0){ var prevStart = valueWithFormatRuns.value.length; for(var i = valueWithFormatRuns.formatRuns.length-1; i >= 0; i--){ var run = valueWithFormatRuns.formatRuns[i]; var start = run.start || 0; var runVal = valueWithFormatRuns.value.substring(start, prevStart); if(run.link){ runVal = `<${"a"} class="link_in_text" target="_blank" href="${run.link}">${runVal}<${"/a"}>`; } value = runVal + value; prevStart = start; } }else{ value = valueWithFormatRuns.value || ""; } return value; } function setupTabs(){ const tabs = { list: document.querySelector(`a[href="#calTabList"]`), month: document.querySelector(`a[href="#calTabMonth"]`) }; const tabPages = { list: document.querySelector(`#calListTabPage`), month: document.querySelector(`#calMonthTabPage`) }; tabs.list.addEventListener("click", (e) => { e.preventDefault(); if(tabs.list.dataset.active == "true") return; setBtnActive(tabs.list); setBtnInactive(tabs.month); tabPages.list.classList.add("active"); tabPages.month.classList.remove("active"); }); tabs.month.addEventListener("click", (e) => { e.preventDefault(); if(tabs.month.dataset.active == "true") return; setBtnInactive(tabs.list); setBtnActive(tabs.month); tabPages.list.classList.remove("active"); tabPages.month.classList.add("active"); calendar.today(); }); setBtnActive(tabs.list); setBtnInactive(tabs.month); } function setBtnActive(ele){ ele.dataset.active = "true"; ele.classList.add("active"); ele.querySelector("use").setAttribute("xlink:href", icons.checked); } function setBtnInactive(ele){ ele.dataset.active = "false"; ele.classList.remove("active"); ele.querySelector("use").setAttribute("xlink:href", icons.block); } function updateEventsList(){ const eventsList = document.querySelector(`#cal_events_list`); var html = ""; if(events.length == 0){ html += `<${"div"} class="message">No events to display<${"/div"}>`; }else{ for (var event of events) { var end = ""; if(event.end) end = `<${"div"} >Until ${formatDate(event.end)}<${"/div"}>`; var loc = ""; if(event.extendedProps.location != null && event.extendedProps.location.length > 0) loc = `<${"div"} class="location flex"><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.location}"><${"/use"}><${"/svg"}><${"/div"}><${"div"} class="normal_line_height"> ${event.extendedProps.location} <${"/div"}><${"/div"}>`; var details = ""; if(event.extendedProps.details != null && event.extendedProps.details.length > 0) details = `<${"div"} class="details flex"><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.info}"><${"/use"}><${"/svg"}><${"/div"}><${"div"} class="normal_line_height"> ${event.extendedProps.details} <${"/div"}><${"/div"}>`; var startDate = new Date(event.start); var btn_startDate = 'startDate="' + startDate.getFullYear() + "-" + String(startDate.getMonth()+1).padStart(2, '0') + "-" + String(startDate.getDate()).padStart(2, '0') + '"'; var btn_startTime = startDate.getHours() == 0 ? "" : 'startTime="' + String(startDate.getHours()).padStart(2, '0') + ":" + String(startDate.getMinutes()).padStart(2, '0') + '"'; var endDate = event.end == null ? new Date(event.start) : new Date(event.end); var btn_endDate = 'endDate="' + endDate.getFullYear() + "-" + String(endDate.getMonth()+1).padStart(2, '0') + "-" + String(endDate.getDate()).padStart(2, '0') + '"'; var btn_endTime = endDate.getHours() == 0 ? "" : 'endTime="' + String(endDate.getHours()).padStart(2, '0') + ":" + String(endDate.getMinutes()).padStart(2, '0') + '"'; html += `<${"div"} class="event"><${"div"} class="date"><${"div"}>${new Date(event.start).toLocaleDateString('en-GB', { month:"short", day:"numeric"})}<${"/div"}><${"/div"}><${"div"} class="content"><${"div"} class="name">${event.title}<${"/div"}><${"div"} class="full-date flex"><${"div"} class="my_icon"><${"svg"} aria-labelledby="icon-title"><${"title"} id="icon-title">calendar<${"/title"}><${"use"} xlink:href="${icons.calendar}"><${"/use"}><${"/svg"}><${"/div"}><${"div"} class="normal_line_height"><${"div"}>Date: ${formatDate(event.start)}<${"/div"}> ${end} <${"/div"}><${"/div"}> ${loc} ${details} <${"div"} class="add_cal_btn"><${"add-to-calendar-button"} name="${event.title}" options="'Apple','Google','iCal','Outlook.com','Yahoo'" size="2" inline="true" location="${event.extendedProps.location_raw}" ${btn_startDate} ${btn_startTime} ${btn_endDate} ${btn_endTime} timeZone="Africa/Johannesburg" ><${"/add-to-calendar-button"}><${"/div"}><${"/div"}><${"/div"}>`; } } eventsList.innerHTML = html; } function formatDate(date){ if(date.getHours() == 0) return date.toLocaleDateString('en-GB', { weekday: "short", day:"numeric", month:"short", year:"numeric"}); return date.toLocaleDateString('en-GB', { weekday: "short", day:"numeric", month:"short", year:"numeric", hour: "numeric", minute: "numeric"}); }

Video Training

Registrations for the video training has closed.

Monday Fellowship Zoom

You will be redirected to the Zoom meeting.If you have any difficulty, the meeting details are below:ID: 977 0826 2252
Passcode: 497101

Lord's Day Zoom

You will be redirected to the Zoom meeting.If you have any difficulty, the meeting details are below:ID: 990 7993 0336
Passcode: 923241

Students Zoom

You will be redirected to the Zoom meeting.If you have any difficulty, the meeting details are below:ID: 923 8314 6279
Passcode: 009131

Prayer Zoom

You will be redirected to the Zoom meeting.If you have any difficulty, the meeting details are below:ID: 978 3495 5846
Passcode: 756531

HWMR Book Orders

Orders for the HWMR has closed