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; ?>


Search Meeting Detail

Meetings are encouraged to update their listing Regularly. Update your listing here (opens in a new window).

Hope in Action - Step Study

Closed D.A. meeting #7725
Meeting focus: Steps
Primary language: English

Video venue

Video originates in Melbourne Australia

Friday
06:00 pm to 07:00 pm (local time)

Video platform: ZOOM
Link (click to connect): https://us02web.zoom.us/j/83856644640?pwd=VzVUdUlWenBRR2V0dENLa2d2R1BLQT09
Meeting ID: 838 5664 4640
Password: solvent
Email for information: hopeinactionda@gmail.com

Note that Meeting times vary depending on Daylight savings.
Daylight Saving Time begins the first Sunday in October when clocks are put forward one hour.
Daylight Saving Time ends on the first Sunday in April.

Information last updated February 06 2025

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