First OWOS Dental Care Unit - Nyarugusu Refugee Camp
DDS call to volunteer


Let's give the 134,000 refugees in Nyarugusu the oral healthcare they deserve.
Safely, Sustainably, and with Dignity.
Once you volunteer nothing will be the same.


We advocate for oral care to be integrated into UNHCR’s
Primary Healthcare Protocols.
Permanent treatment units are the target, OWOS the bow, and
Volunteers the arrows driving this mission forward.


This project requires shifts of volunteers to cover 240 days a year of patient treatment, educating refugees in dental hygiene, and training
Tanzanian Dental Therapists.
It's not an easy task, and not everyone is cut for it. Are you?

    Want to make an impact? Volunteer for a week, a month, or more. Share your details with us, and we’ll tailor the experience to you.

    ©2025 One World One Smile co. All rights reserved - Privacy policy

    });function timer(id, options) {var _this = this,f;this.id = id;this.timestamp = options.timestamp;this.duration = options.duration;this.unit = options.unit;this.mode = options.mode;this.length = options.length;this.completeUrl = options.completeUrl;this.completion = options.completion;this.defer = options.defer;this.persistent = options.persistent;this.labelStyle = options.labelStyle;this.completed = false;this.status = null;this.$timer = document.getElementById(this.id);this.$parent = document.querySelector('#' + _this.$timer.id + ' ul');this.weeks = {$li: null,$digit: null,$components: null};this.days = {$li: null,$digit: null,$components: null};this.hours = {$li: null,$digit: null,$components: null};this.minutes = {$li: null,$digit: null,$components: null};this.seconds = {$li: null,$digit: null,$components: null};if (this.defer)this.$timer.addEventListener('loadelements', () => {this.init();}); else this.init();};timer.prototype.init = function() {var _this = this,kt, kd;kt = this.id + '-timestamp';kd = this.id + '-duration';switch (this.mode) {case 'duration':this.timestamp = parseInt(Date.now() / 1000) + this.duration;if (this.persistent) {if (registry.get(kd) != this.duration)registry.unset(kt);registry.set(kd, this.duration);if (registry.exists(kt))this.timestamp = parseInt(registry.get(kt)); else registry.set(kt, this.timestamp);} else {if (registry.exists(kt))registry.unset(kt);if (registry.exists(kd))registry.unset(kd);}break;default:break;}window.setInterval(function() {_this.updateDigits();_this.updateSize();}, 250);this.updateDigits();on('resize', function() {_this.updateSize();});this.updateSize();};timer.prototype.updateSize = function() {var $items, $item, $digit, $components, $component, $label, $sublabel, $symbols,w, iw, h, f, i, j, found;$items = document.querySelectorAll('#' + this.$timer.id + ' ul li .item');$symbols = document.querySelectorAll('#' + this.$timer.id + ' .symbol');$components = document.querySelectorAll('#' + this.$timer.id + ' .component');h = 0;f = 0;for (j = 0; j < $components.length; j++) {$components[j].style.lineHeight = '';$components[j].style.height = '';}for (j = 0; j < $symbols.length; j++) {$symbols[j].style.fontSize = '';$symbols[j].style.lineHeight = '';$symbols[j].style.height = '';}for (i = 0; i < $items.length; i++) {$item = $items[i];$component = $item.children[0].children[0];w = $component.offsetWidth;iw = $item.offsetWidth;$digit = $item.children[0];$digit.style.fontSize = '';$digit.style.fontSize = (w * 1.65) + 'px';h = Math.max(h, $digit.offsetHeight);f = Math.max(f, (w * 1.65));if ($item.children.length > 1) {$label = $item.children[1];found = false;for (j = 0; j < $label.children.length; j++) {$sublabel = $label.children[j];$sublabel.style.display = '';if (!found && $sublabel.offsetWidth < iw) {found = true;$sublabel.style.display = '';} else $sublabel.style.display = 'none';}}}if ($items.length == 1) {var x = $items[0].children[0],xs = getComputedStyle(x),xsa = getComputedStyle(x, ':after');if (xsa.content != 'none')h = parseInt(xsa.height) - parseInt(xs.marginTop) - parseInt(xs.marginBottom) + 24;}for (j = 0; j < $components.length; j++) {$components[j].style.lineHeight = h + 'px';$components[j].style.height = h + 'px';}for (j = 0; j < $symbols.length; j++) {$symbols[j].style.fontSize = (f * 0.5) + 'px';$symbols[j].style.lineHeight = h + 'px';$symbols[j].style.height = h + 'px';}this.$parent.style.height = '';this.$parent.style.height = this.$parent.offsetHeight + 'px';};timer.prototype.updateDigits = function() {var _this = this,x = [{class: 'weeks',digit: 0,divisor: 604800,label: {full: 'Weeks',abbreviated: 'Wks',initialed: 'W'}},{class: 'days',digit: 0,divisor: 86400,label: {full: 'Days',abbreviated: 'Days',initialed: 'D'}},{class: 'hours',digit: 0,divisor: 3600,label: {full: 'Hours',abbreviated: 'Hrs',initialed: 'H'}},{class: 'minutes',digit: 0,divisor: 60,label: {full: 'Minutes',abbreviated: 'Mins',initialed: 'M'}},{class: 'seconds',digit: 0,divisor: 1,label: {full: 'Seconds',abbreviated: 'Secs',initialed: 'S'}},],now, diff,zeros, status, i, j, x, z, t, s;now = parseInt(Date.now() / 1000);switch (this.mode) {case 'countdown':case 'duration':if (this.timestamp >= now)diff = this.timestamp - now; else {diff = 0;if (!this.completed) {this.completed = true;if (this.completion)(this.completion)();if (this.completeUrl)window.setTimeout(function() {window.location.href = _this.completeUrl;}, 1000);}}break;case 'countup':diff = Math.max(0, now - this.timestamp);break;default:case 'default':if (this.timestamp >= now)diff = this.timestamp - now; else diff = now - this.timestamp;break;}switch (this.unit) {case 'weeks':break;case 'days':x = x.slice(1);break;case 'hours':x = x.slice(2);break;default:break;}for (i = 0; i < x.length; i++) {x[i].digit = Math.floor(diff / x[i].divisor);diff -= x[i].digit * x[i].divisor;}zeros = 0;for (i = 0; i < x.length; i++)if (x[i].digit == 0)zeros++; else break;while (zeros > 0 && x.length > this.length) {x.shift();zeros--;}z = [];for (i = 0; i < x.length; i++)z.push(x[i].class);status = z.join('-');if (status == this.status) {var $digit, $components;for (i = 0; i < x.length; i++) {$digit = document.querySelector('#' + this.id + ' .' + x[i].class + ' .digit');$components = document.querySelectorAll('#' + this.id + ' .' + x[i].class + ' .digit .component');if (!$digit)continue;z = [];t = String(x[i].digit);if (x[i].digit < 10) {z.push('0');z.push(t);} else for (j = 0; j < t.length; j++)z.push(t.substr(j, 1));$digit.classList.remove('count1', 'count2', 'count3', 'count4', 'count5');$digit.classList.add('count' + z.length);if ($components.length == z.length) {for (j = 0; j < $components.length && j < z.length; j++)$components[j].innerHTML = z[j];} else {s = '';for (j = 0; j < $components.length && j < z.length; j++)s += '' + z[j] + '';$digit.innerHTML = s;}}} else {s = '';for (i = 0; i < x.length && i < this.length; i++) {z = [];t = String(x[i].digit);if (x[i].digit < 10) {z.push('0');z.push(t);} else for (j = 0; j < t.length; j++)z.push(t.substr(j, 1));if (i > 0)s += '
  • ' +':' +'
  • ';s += '
  • ' +'
    ';s += '';for (j = 0; j < z.length; j++)s += '' + z[j] + '';s += '';switch (this.labelStyle) {default:case 'full':s += '' +'' + x[i].label.full + '' +'' + x[i].label.abbreviated + '' +'' + x[i].label.initialed + '' +'';break;case 'abbreviated':s += '' +'' + x[i].label.abbreviated + '' +'' + x[i].label.initialed + '' +'';break;case 'initialed':s += '' +'' + x[i].label.initialed + '' +'';break;case 'none':break;}s += '
    ' +'
  • ';}_this.$parent.innerHTML = s;this.status = status;}};new timer('timer01',{mode: 'countdown',length: 4,unit: 'days',completeUrl: '',timestamp: 1751382000,labelStyle: 'full'});function form(id, settings) {var _this = this;this.id = id;this.mode = settings.mode;this.method = settings.method;this.code = ('code' in settings ? settings.code : null);this.success = settings.success;this.initHandler = ('initHandler' in settings ? settings.initHandler : null);this.presubmitHandler = ('presubmitHandler' in settings ? settings.presubmitHandler : null);this.failure = ('failure' in settings ? settings.failure : null);this.optional = ('optional' in settings ? settings.optional : []);this.events = ('events' in settings ? settings.events : {});this.recaptcha = ('recaptcha' in settings ? settings.recaptcha : null);this.collectTrackingParameters = ('collectTrackingParameters' in settings ? settings.collectTrackingParameters : false);this.exportVariables = ('exportVariables' in settings ? settings.exportVariables : false);this.$form = $('#' + this.id);this.$form.addEventListener('change', function(event) {if (event.target.tagName != 'INPUT')return;_this.refreshInput(event.target);});this.$form.addEventListener('submit', function(event) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();});this.$form.addEventListener('reset', function(event) {setTimeout(function() {_this.refreshInputs();}, 0);});this.$form.addEventListener('keydown', function(event) {if (event.keyCode == 13 && event.ctrlKey) {event.preventDefault();event.stopPropagation();_this.triggerSubmit();}});var x = $('#' + this.id + ' input[name="' + settings.hid + '"]');if (x) {x.disabled = true;x.parentNode.style.display = 'none';}this.$submit = $('#' + this.id + ' .actions button[type="submit"]');this.$submit.disabled = false;this.initInputs();if (this.initHandler) {errors.handle(function(message) {return _this.failureHandler(message);});if (!this.initHandler())errors.unhandle();}if (this.recaptcha) {grecaptcha.ready(function() {var id;id = grecaptcha.render(_this.$submit, {sitekey: _this.recaptcha.key,isolated: true,theme: (_this.recaptcha.darkMode ? 'dark' : 'light'),callback: function(token) {_this.submit({recaptchaToken: token},['g-recaptcha-response']);grecaptcha.reset(id);}});});}};form.prototype.completionHandler = function(properties, eventHandler, response) {if (eventHandler !== null)eventHandler.apply(this.$form, [ response ]);switch (properties.mode) {default:case 1:alert(this.expandVariables(properties.value));break;case 2:this.openUrlProperty(properties.value);break;case 3:properties.value.apply(this.$form, [ response ]);break;case 4:break;}};form.prototype.expandVariables = function(s) {if (typeof variables === 'undefined')return s;if (variables.hasVariables(s)) {for (input of this.$form.elements) {if (!this.isAllowedInput(input))continue;value = '';if (this.isValidInput(input)) {switch (input.type) {case 'checkbox':value = input.checked ? 'true' : 'false';break;case 'email':case 'select-one':case 'number':case 'tel':case 'text':case 'textarea':case 'hidden':value = input.value;break;default:value = '';break;}} else value = '';if (!!(s.match(/^(#[a-zA-Z0-9\_\-]+|[a-z0-9\-\.]+:[a-zA-Z0-9\~\!\@\#$\%\&\-\_\+\=\;\,\.\?\/\:\{\}\|]+)$/)))value = encodeURIComponent(value);s = variables.expandVariable(s, input.name, value);}}s = variables.expandVariableString(this.$form, s);return s;};form.prototype.exportVariableValues = function(source, values, suffix) {if (typeof variables === 'undefined'|| this.exportVariables !== true)return;variables.import(source + (suffix ? suffix : ''), values);variables.purge('form' + (suffix ? suffix : ''));variables.import('form' + (suffix ? suffix : ''), values);};form.prototype.failureHandler = function(message) {var eventHandler;eventHandler = ('onfailure' in this.events) ? this.events.onfailure : null;if (message.charAt(0) == '*')this.completionHandler({mode: 1,value: message.substring(1)},eventHandler,null); else if (this.failure)this.completionHandler(this.failure,eventHandler,null); else this.completionHandler({mode: 1,value: message},eventHandler,null);this.waiting(false);errors.unhandle();return true;};form.prototype.finalizeInput = function(input) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (!('value' in input))throw 'Missing "value" property.';if (input.type == 'text'|| input.type == 'email'|| input.type == 'textarea'|| input.type == 'hidden')input.value = input.value.replace(/^\s+/, '').replace(/\s+$/, '');}catch (e) {}};form.prototype.formatDate = function(value, format) {var date, options,a, s;if (!value.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/))return '';a = value.split('-');date = new Date(a[0], parseInt(a[1]) - 1, parseInt(a[2]), 0, 0, 0, 0);switch (format) {default:case 'short':break;case 'medium':options = { dateStyle: 'medium' };break;case 'long':options = { dateStyle: 'long' };break;case 'full':options = { dateStyle: 'full' };break;}s = new Intl.DateTimeFormat(undefined, options).format(date);return s;};form.prototype.getAmount = function() {var x;x = this.getRequiredInputValue('amount', ['select-one', 'number']);if (!x)return null;x = parseFloat(x);if (isNaN(x)|| x < 1.00|| x > 100000.00)return null;return x;};form.prototype.getEmail = function() {return this.getRequiredInputValue('email', 'email');};form.prototype.getQuantity = function() {var x;x = this.getRequiredInputValue('quantity', ['select-one', 'number']);if (!x)return null;x = parseInt(x);if (isNaN(x)|| x < 1|| x > 100000)return null;return x;};form.prototype.getRequiredInputValue = function(name, type) {var input;for (input of this.$form.elements) {if (((Array.isArray(type) && type.includes(input.type)) || input.type == type)&& input.name == name&& input.value !== ''&& input.value !== null)return input.value;}return null;};form.prototype.initInputs = function() {var _this = this,i, input;for (i=0; i < this.$form.elements.length; i++) {input = this.$form.elements[i];switch (input.type) {case 'number':(function(input) {var p = input.parentNode,decrement = p.querySelector('button.decrement'),increment = p.querySelector('button.increment');input.addEventListener('blur', function(event) {_this.normalizeNumberInput(input);});if (decrement&& increment) {decrement.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepDown(1);_this.normalizeNumberInput(input);});increment.addEventListener('click', function(event) {event.preventDefault();_this.normalizeNumberInput(input);input.stepUp(1);_this.normalizeNumberInput(input);});}})(input);break;case 'file':(function(input) {var p = input.parentNode,select = p.querySelector('button.select');select.addEventListener('click', function(event) {event.preventDefault();input.click();});input.addEventListener('focus', function(event) {event.target.parentNode.classList.add('focus');});input.addEventListener('blur', function(event) {event.target.parentNode.classList.remove('focus');});})(input);break;case 'date':(function(input) {var p = input.parentNode,select = p.querySelector('button.select'),changeHandler,x, y, z;select.addEventListener('click', function(event) {event.preventDefault();input.click();input.focus();});switch (client.browser) {case 'safari':input.addEventListener('keydown', function(event) {switch (event.keyCode) {case 9:event.preventDefault();input.blur();break;case 27:event.preventDefault();input.blur();break;case 33:break;case 34:break;case 37:break;case 38:break;case 39:break;case 40:break;default:event.preventDefault();break;}});break;default:input.addEventListener('click', function(event) {event.preventDefault();input.focus();input.showPicker();});break;}changeHandler = function() {if (input.value)p.setAttribute('data-value', _this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');};input.addEventListener('change', function(event) {changeHandler();});changeHandler();})(input);break;case 'text':case 'textarea':case 'email':input.addEventListener('blur', function(event) {this.value = this.value.replace(/^\s+/, '').replace(/\s+$/, '');});break;}this.refreshInput(input);}};form.prototype.isAllowedInput = function(input, ignore) {try {if (!input|| typeof input != 'object'|| !('name' in input))throw 'Not an input.';if (ignore&& ignore.indexOf(input.name) != -1)throw 'Input is ignored.';if (input.disabled)throw 'Input is disabled.';switch (input.type) {case 'text':case 'email':case 'textarea':case 'select-one':case 'checkbox':case 'number':case 'tel':case 'file':case 'date':case 'hidden':break;default:throw 'Not an allowed input.';}}catch (e) {return false;}return true;};form.prototype.isValidInput = function(input) {var result = false;switch (input.type) {case 'email':result = input.value.match(new RegExp("^([a-zA-Z0-9\\_\\-\\.\\+]+)@([a-zA-Z0-9\\-\\.]+)\\.([a-zA-Z]+)$"));break;case 'select-one':result = input.value.match(new RegExp("^[^\\<\\>]+$"));break;case 'checkbox':result = true;break;case 'number':result = input.value.match(new RegExp("^[0-9\\-\\.]+$"));break;case 'tel':result = input.value.match(new RegExp("^[0-9\\-\\+\\(\\)\\ \\#\\*]+$"));break;case 'file':result = true;break;case 'date':result = input.value.match(new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$"));break;default:case 'text':case 'textarea':case 'hidden':result = true;break;}return result;};form.prototype.normalizeNumberInput = function(input) {var min = parseFloat(input.min),max = parseFloat(input.max),step = parseFloat(input.step),v = parseFloat(input.value);if (isNaN(v)) {if (!input.required) {input.value = null;return;}v = isNaN(min) ? 0 : min;}if (!isNaN(min)&& v < min)v = min;if (!isNaN(max)&& v > max)v = max;if (!isNaN(step)&& (v % step) !== 0)v = Math.round(v / step) * step;switch (input.dataset.category) {case 'currency':v = parseFloat(v).toFixed(2);break;default:case 'decimal':v = parseFloat(v);break;case 'integer':v = parseInt(v);break;}input.value = v;};form.prototype.openUrlProperty = function(p) {if ('onclick' in p) {(p.onclick)(event);return;}if ('href' in p) {let href = this.expandVariables(p.href);this.$form.reset();if (href.charAt(0) == '#') {window.location.href = href;return;}if ('target' in p&& p.target == '_blank')window.open(href); else window.location.href = href;}};form.prototype.pause = function(values, handler) {var _this = this;this.waiting(true);db.open('formData', function(objectStore) {db.delete(objectStore, _this.id, function() {db.put(objectStore, values, function() {handler.call(_this);});});});};form.prototype.refreshInput = function(input) {var a = [],p;switch (input.type) {case 'file':p = input.parentNode;if (input.files.length > 0)p.setAttribute('data-filename', input.files[0].name); else p.setAttribute('data-filename', '');break;case 'date':p = input.parentNode;if (input.value)p.setAttribute('data-value', this.formatDate(input.value, p.dataset.format)); else p.setAttribute('data-value', '');break;default:break;}};form.prototype.refreshInputs = function() {var i;for (i=0; i < this.$form.elements.length; i++)this.refreshInput(this.$form.elements[i]);};form.prototype.resume = function(handler) {var _this = this;this.waiting(true);this.scrollIntoView();db.open('formData', function(objectStore) {db.get(objectStore, _this.id, function(values) {db.delete(objectStore, _this.id, function() {var e, i, v;for (i in _this.$form.elements) {e = _this.$form.elements[i];if (!e.name)continue;v = (e.name in values ? values[e.name] : null);switch (e.type) {case 'checkbox':e.checked = (v == 'checked' ? true : false);break;case 'file':if (v)e.parentNode.setAttribute('data-filename', v.name);break;default:e.value = v;break;}}handler.call(_this, values);});});});};form.prototype.scrollIntoView = function() {window.scrollTo(0, this.$form.offsetTop);};form.prototype.submit = function(values, ignore) {var _this = this,input, result, _success, _failure,a, b, i, e, fd, k, x, usp;try {for (input of this.$form.elements) {if (!this.isAllowedInput(input, ignore))continue;if (this.optional.indexOf(input.name) !== -1&&(input.value === ''|| input.value === null|| (input.type == 'checkbox' && !input.checked)))continue;this.finalizeInput(input);if (!this.isValidInput(input))throw 'Not valid.';}}catch (e) {alert('Missing or invalid fields. Please try again.');return;}if ('onsubmit' in this.events) {if (this.events.onsubmit.apply(this.$form) === false)return;}a = this.values();if (values) {for (k in values)a[k] = values[k];}if (this.collectTrackingParameters) {usp = new URLSearchParams(window.location.search);b = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];for (k of b) {x = usp.get(k);if (x) {x = x.trim();x = x.replace(/[^a-zA-Z0-9\-\_\%\+\s]/g, '');x = x.replace(/\s+/g, '_');if (x.length <= 256)a[k] = x;}}}switch (this.method) {default:case 'ajax':break;case 'get':case 'post':for (k in a) {if (this.$form.elements[k])continue;e = document.createElement('input');e.setAttribute('type', 'hidden');e.setAttribute('name', k);this.$form.appendChild(e);e.value = a[k];}this.$form.submit();return;case 'code':if (typeof this.code == 'function') {this.waiting(true);_success = function() {_this.exportVariableValues(_this.id, a);_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,null);_this.waiting(false);};_failure = function() {_this.completionHandler(_this.failure,('onfailure' in _this.events) ? _this.events.onfailure : null,null);_this.waiting(false);};result = this.code.apply(this.$form, [_success, _failure]);if (result === true)_success(); else if (result === false)_failure();}return;}if (x = $(':focus'))x.blur();errors.handle(function(message) {return _this.failureHandler(message);});if (this.presubmitHandler)this.presubmitHandler.call(this, a); else this.submitHandler(a);};form.prototype.submitHandler = function(values) {var _this = this,x, k, data;this.waiting(true);data = new FormData;for (k in values) {if (values[k]&& typeof values[k] == 'object'&& ('blob' in values[k]))data.append(k,values[k].blob,values[k].name); else data.append(k, values[k]);}x = new XMLHttpRequest();x.open('POST', ['', 'post', this.mode].join('/'));x.send(data);x.onreadystatechange = function() {var o;if (x.readyState != 4)return;if (x.status != 200)throw new Error('Failed server response (' + x.status + ')');try {o = JSON.parse(x.responseText);}catch (e) {throw new Error('Invalid server response');}if (!('result' in o)|| !('message' in o))throw new Error('Incomplete server response');if (o.result !== true) {if ('response' in o)console.log(o.response);throw new Error(o.message);}_this.exportVariableValues(_this.id, values);if ('response' in o)_this.exportVariableValues(_this.id, o.response, '_response');_this.completionHandler(_this.success,('onsuccess' in _this.events) ? _this.events.onsuccess : null,'response' in o ? o.response : null);_this.$form.reset();_this.waiting(false);errors.unhandle();};};form.prototype.triggerSubmit = function() {if (this.recaptcha)this.$submit.click(); else if (!this.$submit.disabled)this.submit();};form.prototype.values = function() {var a = {};for (i in this.$form.elements) {e = this.$form.elements[i];if (!e.name|| !e.value)continue;switch (e.type) {case 'checkbox':a[e.name] = (e.checked ? 'checked' : null);break;case 'file':a[e.name] = {name: e.files[0].name,blob: new Blob([e.files[0]], { type: e.files[0].type })};break;default:a[e.name] = e.value;break;}}a['id'] = this.id;return a;};form.prototype.waiting = function(x) {var _this = this;if (x) {$body.classList.add('is-instant');this.$submit.disabled = true;this.$submit.classList.add('waiting');if (this.recaptcha)setTimeout(function() {_this.$submit.disabled = true;}, 0);} else {$body.classList.remove('is-instant');this.$submit.classList.remove('waiting');this.$submit.disabled = false;}};new form('form01', {mode: 'contact',collectTrackingParameters: true,method: 'ajax',hid: 'telephone',success: {mode: 1,value: 'Thank you! We\'re already flying!',},optional: ['phone', 'company'],});ready.run();})();