include_once('wp-content/search-includes/config.php'); include_once('wp-content/search-includes/admin_functions.php'); include_once('wp-content/search-includes/Validate.php'); // --------------------------------------------------------------------------- // IANA timezone map — same as meeting-search-virtual-dev.php // --------------------------------------------------------------------------- function getMeetingIanaMap(): array { return [ 'ACDT' => 'Australia/Adelaide', 'ACST' => 'Australia/Darwin', 'ACWT' => 'Australia/Eucla', 'ADT' => 'America/Halifax', 'ACT' => 'America/Rio_Branco', 'AEDT' => 'Australia/Sydney', 'AEST' => 'Australia/Brisbane', 'AFT' => 'Asia/Kabul', 'AKDT' => 'America/Anchorage', 'AKST' => 'America/Anchorage', 'ALMT' => 'Asia/Almaty', 'AMT' => 'Asia/Yerevan', 'AMST' => 'America/Manaus', 'ANAT' => 'Asia/Anadyr', 'ANAST' => 'Asia/Anadyr', 'AQTT' => 'Asia/Aqtobe', 'ART' => 'America/Argentina/Buenos_Aires', 'AST' => 'America/Halifax', 'AWDT' => 'Australia/Perth', 'AWST' => 'Australia/Perth', 'AZOT' => 'Atlantic/Azores', 'AZOST' => 'Atlantic/Azores', 'AZT' => 'Asia/Baku', 'AZST' => 'Asia/Baku', 'BNT' => 'Asia/Brunei', 'BDT' => 'Asia/Dhaka', 'BOT' => 'America/La_Paz', 'BRT' => 'America/Sao_Paulo', 'BST' => 'Europe/London', 'BTT' => 'Asia/Thimphu', 'BT' => 'Europe/London', 'BGT' => 'Europe/Berlin', 'CAST' => 'Antarctica/Casey', 'CAT' => 'Africa/Harare', 'CCT' => 'Indian/Cocos', 'CEDT' => 'Europe/Paris', 'CEST' => 'Europe/Paris', 'CET' => 'Europe/Belgrade', 'CHADT' => 'Pacific/Chatham', 'CHAST' => 'Pacific/Chatham', 'CHOT' => 'Asia/Choibalsan', 'CHOST' => 'Asia/Choibalsan', 'CHsT' => 'Pacific/Guam', 'CHUT' => 'Pacific/Truk', 'CIT' => 'Asia/Makassar', 'CKT' => 'Pacific/Rarotonga', 'CLST' => 'America/Santiago', 'CLT' => 'America/Santiago', 'COT' => 'America/Bogota', 'CST' => 'America/Chicago', 'CT' => 'America/Chicago', 'CVT' => 'Atlantic/Cape_Verde', 'CWST' => 'Australia/Eucla', 'CXT' => 'Indian/Christmas', 'DAVT' => 'Antarctica/Davis', 'DDUT' => 'Antarctica/DumontDUrville', 'EASST' => 'Pacific/Easter', 'EAST' => 'Pacific/Easter', 'EAT' => 'Africa/Nairobi', 'ECT' => 'America/Guayaquil', 'EDT' => 'America/New_York', 'EEDT' => 'Europe/Helsinki', 'EEST' => 'Europe/Helsinki', 'EET' => 'Europe/Helsinki', 'EGT' => 'America/Scoresbysund', 'EGST' => 'America/Scoresbysund', 'EST' => 'America/New_York', 'ET' => 'America/New_York', 'EIT' => 'Asia/Jayapura', 'FET' => 'Europe/Minsk', 'FJT' => 'Pacific/Fiji', 'FJST' => 'Pacific/Fiji', 'FKST' => 'Atlantic/Stanley', 'FKT' => 'Atlantic/Stanley', 'FNT' => 'America/Noronha', 'GALT' => 'Pacific/Galapagos', 'GAMT' => 'Pacific/Gambier', 'GET' => 'Asia/Tbilisi', 'GFT' => 'America/Cayenne', 'GILT' => 'Pacific/Tarawa', 'GMT' => 'Etc/GMT', 'GST' => 'Asia/Dubai', 'GYT' => 'America/Guyana', 'HADT' => 'America/Adak', 'HAST' => 'America/Adak', 'HKT' => 'Asia/Hong_Kong', 'HOVT' => 'Asia/Hovd', 'HOVST' => 'Asia/Hovd', 'HST' => 'Pacific/Honolulu', 'ICT' => 'Asia/Bangkok', 'IDT' => 'Asia/Jerusalem', 'IOT' => 'Indian/Chagos', 'IRDT' => 'Asia/Tehran', 'IRKT' => 'Asia/Irkutsk', 'IRKST' => 'Asia/Irkutsk', 'IRST' => 'Asia/Tehran', 'IST' => 'Asia/Kolkata', 'IST2' => 'Europe/Dublin', 'JST' => 'Asia/Tokyo', 'KGT' => 'Asia/Bishkek', 'KOST' => 'Pacific/Kosrae', 'KRAT' => 'Asia/Krasnoyarsk', 'KRAST' => 'Asia/Krasnoyarsk', 'KST' => 'Asia/Seoul', 'KUYT' => 'Europe/Samara', 'LHDT' => 'Australia/Lord_Howe', 'LHST' => 'Australia/Lord_Howe', 'LINT' => 'Pacific/Kiritimati', 'LT' => 'Europe/London', 'MAGT' => 'Asia/Magadan', 'MAGST' => 'Asia/Magadan', 'MART' => 'Pacific/Marquesas', 'MAWT' => 'Antarctica/Mawson', 'MDT' => 'America/Denver', 'MeST' => 'America/Metlakatla', 'MHT' => 'Pacific/Majuro', 'MIST' => 'Antarctica/Macquarie', 'MMT' => 'Asia/Rangoon', 'MSD' => 'Europe/Moscow', 'MSK' => 'Europe/Moscow', 'MST' => 'America/Phoenix', 'MT' => 'America/Denver', 'MUT' => 'Indian/Mauritius', 'MVT' => 'Indian/Maldives', 'MYT' => 'Asia/Kuala_Lumpur', 'NCT' => 'Pacific/Noumea', 'NDT' => 'America/St_Johns', 'NFT' => 'Pacific/Norfolk', 'NOVT' => 'Asia/Novosibirsk', 'NOVST' => 'Asia/Novosibirsk', 'NPT' => 'Asia/Kathmandu', 'NRT' => 'Pacific/Nauru', 'NST' => 'America/St_Johns', 'NT' => 'America/St_Johns', 'NUT' => 'Pacific/Niue', 'NZT' => 'Pacific/Auckland', 'NZST' => 'Pacific/Auckland', 'OMST' => 'Asia/Omsk', 'OMSST' => 'Asia/Omsk', 'ORAT' => 'Asia/Oral', 'PDT' => 'America/Los_Angeles', 'PET' => 'America/Lima', 'PETT' => 'Asia/Kamchatka', 'PETST' => 'Asia/Kamchatka', 'PGT' => 'Pacific/Port_Moresby', 'PHT' => 'Asia/Manila', 'PHOT' => 'Pacific/Enderbury', 'PKT' => 'Asia/Karachi', 'PMDT' => 'America/Miquelon', 'PMST' => 'America/Miquelon', 'PONT' => 'Pacific/Pohnpei', 'PORT' => 'Europe/Lisbon', 'PST' => 'America/Los_Angeles', 'PT' => 'America/Los_Angeles', 'PWT' => 'Pacific/Palau', 'PYT' => 'America/Asuncion', 'PYST' => 'America/Asuncion', 'QYZT' => 'Asia/Qyzylorda', 'RET' => 'Indian/Reunion', 'ROTT' => 'Antarctica/Rothera', 'SAKT' => 'Asia/Sakhalin', 'SAMT' => 'Europe/Samara', 'SAST' => 'Africa/Johannesburg', 'SBT' => 'Pacific/Guadalcanal', 'SCT' => 'Indian/Mahe', 'SGT' => 'Asia/Singapore', 'SLT' => 'Asia/Colombo', 'SLST' => 'Asia/Colombo', 'SRT' => 'America/Paramaribo', 'SRET' => 'Asia/Srednekolymsk', 'SST' => 'Pacific/Pago_Pago', 'SYOT' => 'Antarctica/Syowa', 'TAHT' => 'Pacific/Tahiti', 'TFT' => 'Indian/Kerguelen', 'TJT' => 'Asia/Dushanbe', 'TKT' => 'Pacific/Fakaofo', 'TLT' => 'Asia/Dili', 'TMT' => 'Asia/Ashgabat', 'TOT' => 'Pacific/Tongatapu', 'TRT' => 'Europe/Istanbul', 'TRUT' => 'Pacific/Truk', 'TVT' => 'Pacific/Funafuti', 'ULAT' => 'Asia/Ulaanbaatar', 'ULAST' => 'Asia/Ulaanbaatar', 'UTC' => 'UTC', 'UYST' => 'America/Montevideo', 'UYT' => 'America/Montevideo', 'UZT' => 'Asia/Tashkent', 'VET' => 'America/Caracas', 'VLAT' => 'Asia/Vladivostok', 'VLAST' => 'Asia/Vladivostok', 'VOLT' => 'Europe/Volgograd', 'VUT' => 'Pacific/Efate', 'WAKT' => 'Pacific/Wake', 'WAT' => 'Africa/Lagos', 'WAST' => 'Africa/Windhoek', 'WDT' => 'Australia/Perth', 'WEDT' => 'Europe/Lisbon', 'WEST' => 'Europe/Lisbon', 'WET' => 'Europe/Lisbon', 'WFT' => 'Pacific/Wallis', 'WGT' => 'America/Godthab', 'WGST' => 'America/Godthab', 'WIB' => 'Asia/Jakarta', 'WIT' => 'Asia/Jayapura', 'WITA' => 'Asia/Makassar', 'WST' => 'Australia/Perth', 'WT' => 'Africa/Monrovia', 'YAKT' => 'Asia/Yakutsk', 'YAKST' => 'Asia/Yakutsk', 'YAP' => 'Pacific/Truk', 'YEKT' => 'Asia/Yekaterinburg', 'YEKST' => 'Asia/Yekaterinburg', ]; } // --------------------------------------------------------------------------- // Convert a meeting time (meeting-local tz) to the user's timezone. // Returns [userDayName, userTime H:i:s, userDayNum, localDayName, dayShifted Y/N] // --------------------------------------------------------------------------- function convertToUserTime( string $meetingDay, string $meetingTime, string $meetingTzCode, DateTimeZone $userTz ): array { static $ianaMap = null; if ($ianaMap === null) { $ianaMap = getMeetingIanaMap(); } $dayNames = [ 1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 7 => 'Sunday', ]; $ianaName = $ianaMap[$meetingTzCode] ?? 'UTC'; $meetingTz = new DateTimeZone($ianaName); $dt = new DateTime($meetingDay . ' ' . $meetingTime, $meetingTz); $origDayNum = (int) $dt->format('N'); $dt->setTimezone($userTz); $userDayNum = (int) $dt->format('N'); return [ 0 => $dayNames[$userDayNum], 1 => $dt->format('H:i:s'), 2 => $userDayNum, 3 => $dayNames[$origDayNum], 4 => ($userDayNum !== $origDayNum) ? 'Y' : 'N', ]; } // --------------------------------------------------------------------------- // Given a user-local weekday name and time (H:i:s), return the next DateTime // on or after $now when that meeting occurs. If the slot already passed this // week, returns the occurrence next week. // --------------------------------------------------------------------------- function nextOccurrence(string $dayName, string $timeStr, DateTime $now): DateTime { $dayNums = ['Monday'=>1,'Tuesday'=>2,'Wednesday'=>3,'Thursday'=>4, 'Friday'=>5,'Saturday'=>6,'Sunday'=>7]; $targetNum = $dayNums[$dayName] ?? 1; $todayNum = (int) $now->format('N'); $diff = ($targetNum - $todayNum + 7) % 7; [$h, $i, $s] = array_pad(explode(':', $timeStr), 3, '00'); $dt = clone $now; if ($diff > 0) { $dt->modify("+{$diff} days"); } $dt->setTime((int)$h, (int)$i, (int)$s); // If this slot has already passed today, jump to next week if ($dt < $now) { $dt->modify('+7 days'); } return $dt; } // --------------------------------------------------------------------------- // First-visit: browser hasn't told us the IANA timezone yet. // Output a lightweight redirect page before any WordPress theme HTML fires. // --------------------------------------------------------------------------- $userTzName = clean_request($_GET, 'mytimezone', 'basic', 100); if ($userTzName === '') { $baseUrl = 'https://' . $_SERVER['HTTP_HOST'] . strtok($_SERVER['REQUEST_URI'], '?') . '?mytimezone='; ?> Detecting timezone…

Detecting your timezone — if this page does not redirect within 5 seconds, click here.

modify('+24 hours'); // Normal page load from here on. get_header(); ?> where('status', 'Active'); $rawData = $db->get('groups_live g', null, $cols); // --------------------------------------------------------------------------- // For each meeting row, determine venue fields, convert times, find next // occurrence, and keep those that fall within the 24-hour window. // Multi-day meetings generate one entry per qualifying day. // --------------------------------------------------------------------------- $results = []; foreach ($rawData as $row) { $startTime = null; $endTime = null; $tzCode = null; $daysStr = ''; $venueLabel = ''; $originates = ''; switch ($row['primary_venue']) { case 'Video': $startTime = $row['vid_start_time'] ?? null; $endTime = $row['vid_end_time'] ?? null; $tzCode = $row['vid_time_zone'] ?? null; $daysStr = $row['vid_meeting_day'] ?? ''; $venueLabel = 'Video'; $originates = trim(($row['vid_host_location'] ?? '') . ' ' . ($row['vid_host_country'] ?? '')); break; case 'Phone': $startTime = $row['phone_start_time'] ?? null; $endTime = $row['phone_end_time'] ?? null; $tzCode = $row['phone_time_zone'] ?? null; $daysStr = $row['phone_meeting_day'] ?? ''; $venueLabel = 'Phone'; $originates = trim(($row['phone_host_location'] ?? '') . ' ' . ($row['phone_host_country'] ?? '')); break; case 'Email': if (($row['email_specifictime'] ?? '') === 'no') continue 2; $startTime = $row['email_start_time'] ?? null; $endTime = $row['email_end_time'] ?? null; $tzCode = $row['email_time_zone'] ?? null; $daysStr = $row['email_meeting_day'] ?? ''; $venueLabel = 'Email/Chat'; break; case 'F2F': $startTime = $row['f2f_start_time'] ?? null; $endTime = $row['f2f_end_time'] ?? null; $tzCode = $row['master_time_zone'] ?? null; // F2F uses master tz $daysStr = $row['f2f_meeting_day'] ?? ''; $venueLabel = 'Face-to-face'; $originates = trim(($row['f2f_city'] ?? '') . ' ' . ($row['f2f_state'] ?? '')); break; default: continue 2; } if (!$startTime || !$endTime || !$tzCode || $daysStr === '') continue; $days = array_filter(array_map('trim', explode(',', $daysStr))); if (empty($days)) continue; foreach ($days as $meetingDay) { $convStart = convertToUserTime($meetingDay, $startTime, $tzCode, $userTz); $convEnd = convertToUserTime($meetingDay, $endTime, $tzCode, $userTz); $userDayName = $convStart[0]; $userTimeStr = $convStart[1]; $localDay = $convStart[3]; // meeting-local day name $dayShifted = $convStart[4]; $nextOcc = nextOccurrence($userDayName, $userTimeStr, $nowUser); // Skip if outside the 24-hour window if ($nextOcc > $cutoffUser) continue; $results[] = [ 'next_occ' => $nextOcc, 'user_day' => $userDayName, 'user_start' => $userTimeStr, 'user_end' => $convEnd[1], 'local_day' => $localDay, 'local_start' => $startTime, 'local_end' => $endTime, 'tz_code' => $tzCode, 'day_shifted' => $dayShifted, 'venue_label' => $venueLabel, 'originates' => $originates, 'row' => $row, ]; } } // Sort by next occurrence ascending (soonest first) usort($results, fn($a, $b) => $a['next_occ'] <=> $b['next_occ']); // Pre-load timezone descriptions for all tz codes we actually use $allTzCodes = array_unique(array_filter(array_column($results, 'tz_code'))); $tzDescMap = []; if (!empty($allTzCodes)) { $db->where('tz_code', $allTzCodes, 'IN'); foreach ($db->get('timezones_wshift') as $tzRow) { $tzDescMap[$tzRow['tz_code']] = $tzRow['tz_description']; } } ?>
Meetings are encouraged to update their listing Regularly. Update your listing here (opens in a new window).

Meetings Starting in the Next 24 Hours

Your timezone:
Window: format('l, F j g:i a'); ?> → format('l, F j g:i a'); ?>    ↻ Refresh
No meetings are scheduled to start in the next 24 hours in your timezone. Check back soon, or browse all virtual meetings.

meeting(s) found.

Slide results side-to-side to see all columns.

getTimestamp() - $nowUser->getTimestamp()) / 60); if ($minutesAway < 60) { $startsIn = $minutesAway . ' min'; } else { $h = (int)($minutesAway / 60); $m = $minutesAway % 60; $startsIn = $h . 'h' . ($m > 0 ? ' ' . $m . 'm' : ''); } $typesArray = explode(',', $row['meeting_venue']); $isHybrid = ($row['venue_hybrid_dual'] === 'Hybrid'); $isDual = ($row['venue_hybrid_dual'] === 'Dual'); $parms = '?mid=' . $row['master_id'] . '&mytz=Y' . '&mytimezone=' . urlencode($userTzName) . '&usemytime=1' . '&sid=' . session_id() . '&searchType=Virtual' . '&mv=' . urlencode($row['primary_venue']); // Resolve originates country name $originates = $result['originates']; if ($row['primary_venue'] === 'Video' && $row['vid_host_country'] !== '') { $db->where('iso3', $row['vid_host_country']); foreach ($db->get('country') as $cr) { $originates = trim(($row['vid_host_location'] ?? '') . ', ' . $cr['name']); } } elseif ($row['primary_venue'] === 'Phone' && $row['phone_host_country'] !== '') { $db->where('iso3', $row['phone_host_country']); foreach ($db->get('country') as $cr) { $originates = trim(($row['phone_host_location'] ?? '') . ', ' . $cr['name']); } } elseif ($row['primary_venue'] === 'F2F' && $row['f2f_country'] !== '') { $db->where('iso3', $row['f2f_country']); foreach ($db->get('country') as $cr) { $parts = array_filter([$row['f2f_city'], $row['f2f_state'], $cr['name']]); $originates = implode(', ', $parts); } } ?>
Starts Meeting (Group #) Venue Local time & Originates
format('g:i a'); ?>

in
( locally)
( #) Dual venue'; endif; ?> Hybrid meeting'; endif; ?>


Events for April 17, 2026 - April 17, 2026

2026-04-17T00:00:00-04:00

Events

Views Navigation

Event Views Navigation

Today
  • Promise Six Day

    D.A.'s WSC Fellowship Communications Committee invites you to Save the Date PROMISE SIX DAY Saturday, April 27, 2024 The 5th Annual Event to Honor Promise Six “Isolation will give way to fellowship; faith will replace fear.” A fun day to celebrate our Fellowship together. Promise Six Day is an annual event approved by the World

  • Spiritually Sustainable Earning Fellowship-wide Call

    Fellowship-Wide Call JUNE 1ST, 2024 10-11:30 AM PACIFIC 1-2:30 PM EASTERN 6-7:30 PM BST Presented by: THE WSC SPIRITUALLY SUSTAINABLE EARNING CAUCUS Spiritually Sustainable Earning is earning that meets our emotional, mental, physical, and spiritual needs. As we work the Steps and apply the Tools in everything we do, our earning efforts come into alignment

  • Fellowship-Wide Call: BDA – Transform the 12 Concepts into Healthy Business Strategies

    +1.605.472.5540 ACCESS CODE: 617093

    How to transform the 12 Concepts into Healthy Business strategies The WSC BDA Committee will host a Fellowship Wide Call on “How to lead your business to be of best service to the World through the use of the 12 Concepts”. Sunday – June 9th 1:00 – 2:30 p.m. EST USA AND CANADA CALL IN

  • Orientation for GSRs Attending Conference for First Time

    Please note the updated time of 1pm EDT 2024 D.A. World Service Conference Pre-Conference Orientation Call Saturday, June 15, 2024 Time: Saturday, June 15th 10:00-11:30 am Pacific / 11:00 am-12:30 pm Mountain 12:00-1:30 pm Central / 1:00-2:30 pm Eastern 5-6:30 pm BST / 19h00-20h30 CEST Sunday, June 16th 02h00-03h30 JST / 03h00-04h30 am AEST The

  • Celebrating the Wealth of D.A. Global Outreach: The D.A. Marathon – “Around the World in 24 Hours”

    A Debtors Anonymous Fellowship-Wide Call                                       Presented by:   THE WSC INTERNATIONAL COMMITTEE   Celebrating the Wealth of D.A. Global Outreach The D.A. Marathon – “Around the World in 24 Hours” SUNDAY, JULY 21, 2024   10:00 AM - 11:30 AM Pacific   1:00 PM - 2:30 PM Eastern 6:00 PM - 7:30 PM BST    This

  • Celebrating the Wealth of our Shared DA Resources

    FELLOWSHIP-WIDE CALL Presented by: THE WSC RESOURCE DEVELOPMENT COMMITTEE SATURDAY, NOVEMBER 23rd 2024 10-11:30 AM PACIFIC 1-2:30 PM EASTERN 6-7:30 PM GMT Join us to hear three DA members speak on how DA resources provide prosperity & abundance in their lives. The qualifications will be followed by Q & A and open sharing. USA &

  • Media Training

    D.A.'s GSB Public Information Committee presents the following: How Should Members of DA interact with the Media? Come and find out in this informative ZOOM presentation! This presentation utilizes the Traditions and criteria to provide guidelines for media interviews, requests, and written materials. Saturday, December 7, 2024 1pm - 2:30pm PST 4pm - 5:30pm EST

  • BDA Stories – Fellowship-Wide Call

    +1.605.472.5540 ACCESS CODE: 617093

    Business Debtors Anonymous Stories - Fellowship-Wide Call - Part 1 of 4 3 speakers share their experience, strength, and hope as they realize their vision as solvent business owners. Come listen to their different journeys in BDA recovery. Saturday February 22nd, 2025 10-11:30 AM PACIFIC, 1-2:30 PM EASTERN, 6-7:30 PM GMT USA & CANADA CALL

The Calendar of Events shows information about events related to world service in Debtors Anonymous, such as Fellowship-wide Calls and the annual World Service Conference. For event flyers, please visit:
https://debtorsanonymous.org/announcements

Information on regional events is available through the links to Regional Intergroup websites which can be found here: Find a Regional DA Intergroup
The General Service Board (GSB) and the General Service Office (GSO) of Debtors Anonymous provide this link to facilitate information about local D.A. activities. Our link to this or any other site, other than the D.A. website, debtorsanonymous.org, does not constitute or indicate any review, endorsement, or approval by the D.A. GSB, D.A. GSO, nor any entity within the D.A. community.

Recovery CTA text

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec auctor eros, sed suscipit eros. Nulla porttitor nisi ac hendrerit finibus. Duis dapibus lacus sit amet porttitor porta. Nulla facilisi.

Newsletter

Sign-up to get the latest news and update information. Don't worry, we won't send spam!

[contact-form-7 id="3145" title="Sliding Bar Form"]
Go to Top