2026 Session Calendar

Browse upcoming live tax CPE sessions by month, including webinars and seminars. Select any event to access the registration page.

Live Webinar Seminar / Special Event
Important: Event dates and times shown on this page are adjusted to your local time zone based on your device settings. After you register successfully, your confirmation email from the registration platform will include the exact event time and details for your registration.

More Resources

Note: Paid attendees can request a replay link for any previously recorded webinar by asking JoJo or emailing [email protected].

Back to Top
(function(){ const qs=(s,el=document)=>el.querySelector(s); const qsa=(s,el=document)=>Array.from(el.querySelectorAll(s)); const wrap=qs('#bb-resources'); if(!wrap) return; const pageYear=wrap.getAttribute('data-pageyear')||''; const monthSel=qs('#bb-month',wrap); const sessionSel=qs('#bb-session',wrap); const searchIn=qs('#bb-search',wrap); const countEl=qs('#bb-count',wrap); const intro=qs('.bb-intro',wrap); if(intro && !qs('#bb-jumpnav',wrap)){ const nav=document.createElement('div'); nav.className='bb-jumpnav'; nav.id='bb-jumpnav'; intro.insertAdjacentElement('afterend', nav); } const jumpNav=qs('#bb-jumpnav',wrap); function mapLegacyHash(raw){ if(!raw) return ''; const s=raw.toLowerCase(); const m=s.match(/^([a-z]{3})-(\d{1,2})-(\d{4})(?:-([a-z]+))?$/); const monMap={jan:'January',feb:'February',mar:'March',apr:'April',may:'May',jun:'June',jul:'July',aug:'August',sep:'September',oct:'October',nov:'November',dec:'December'}; if(m && monMap[m[1]]){ const monName=monMap[m[1]]; const dd=String(m[2]).padStart(2,'0'); let tail=''; if(m[4]){ const t=m[4]; if(t==='am'||t==='pm') tail='-'+t.toUpperCase(); else if(t==='seminar') tail='-Seminar'; } return `${m[3]}-${monName}-${dd}${tail}`; } return raw; } function placeFilesAfterControls(){ const files=document.getElementById(`${pageYear}-Files`); const controls=document.getElementById('bb-controls'); if(!files||!controls) return; const wrapEl=controls.parentNode; if(controls.nextElementSibling!==files) wrapEl.insertBefore(files, controls.nextElementSibling); } function buildJumpNav(){ if(!jumpNav) return; jumpNav.innerHTML=''; qsa('.bb-group',wrap).forEach(group=>{ const month=group.dataset.month||''; const a=document.createElement('a'); a.href='#'+group.id; a.textContent=month; a.addEventListener('click',e=>{ e.preventDefault(); openGroup(group,true); const monthName=group.dataset.month||''; if(monthSel) monthSel.value=monthName; applyFilters(); refreshSessionList(monthName); group.scrollIntoView({behavior:'smooth',block:'start'}); history.replaceState(null,'',location.pathname+(location.search||'')+'#'+group.id); }); jumpNav.appendChild(a); }); } function attachDomains(scope){ const root=scope||document; const listItems=root.querySelectorAll('.bb-links li, #bb-files-2026 li'); listItems.forEach(li=>{ if(!li || !li.textContent.trim()) return; const childList=li.querySelector(':scope > ul, :scope > ol'); const topLinks=Array.from(li.querySelectorAll('a[href]')).filter(a=>a.closest('li')===li); const linkForHost=topLinks[topLinks.length-1]; if(!linkForHost) return; let host=''; try{host=new URL(linkForHost.href).hostname.replace(/^www\./,'');}catch(e){} let badge=li.querySelector(':scope > .bb-domain, .bb-domain'); if(!badge){badge=document.createElement('span');badge.className='bb-domain';} badge.textContent=host ? '('+host+')' : ''; if(childList){ childList.insertAdjacentText('beforebegin',' '); childList.insertAdjacentElement('beforebegin',badge); } else { li.insertAdjacentText('beforeend',' '); li.insertAdjacentElement('beforeend',badge); } }); } function setGroupOpen(group,open){ if(!group || group.classList.contains('is-fixed-open')) return; group.classList.toggle('is-open',!!open); group.setAttribute('aria-expanded', open ? 'true':'false'); } function openGroup(group,closeOthers){ if(closeOthers){ qsa('.bb-group.is-open',wrap).forEach(g=>{ if(g!==group && !g.classList.contains('is-fixed-open')) setGroupOpen(g,false); }); } setGroupOpen(group,true); } function initAccordions(){ qsa('.bb-group',wrap).forEach((group,idx)=>{ const header=qs('.bb-group-h',group); if(!header) return; const existingBody=qs('.bb-group-body',group); if(!existingBody){ const body=document.createElement('div'); body.className='bb-group-body'; Array.from(group.children).forEach((child,i)=>{ if(i>0) body.appendChild(child); }); group.appendChild(body); } const isFiles=group.id===`${pageYear}-Files`; header.setAttribute('tabindex','0'); header.setAttribute('role','button'); header.setAttribute('aria-controls', group.id+'-body'); const body=qs('.bb-group-body',group); body.id=group.id+'-body'; if(isFiles){ group.classList.add('is-fixed-open'); group.setAttribute('aria-expanded','true'); header.style.cursor='default'; } else { setGroupOpen(group, idx===1); header.addEventListener('click',evt=>{ if(evt.target.closest('.bb-anchor')) return; setGroupOpen(group,!group.classList.contains('is-open')); }); header.addEventListener('keydown',evt=>{ if(evt.key==='Enter'||evt.key===' '){ evt.preventDefault(); setGroupOpen(group,!group.classList.contains('is-open')); } }); } }); } function refreshSessionList(monthName){ if(!sessionSel) return; const m=(monthName||monthSel?.value||'').trim(); sessionSel.innerHTML=''; if(!m || m.toLowerCase()==='files'){ sessionSel.disabled=true; return; } const group=document.getElementById(`${pageYear}-${m}`); if(!group){ sessionSel.disabled=true; return; } const items=Array.from(group.querySelectorAll('.bb-session')); if(!items.length){ sessionSel.disabled=true; return; } items.forEach(li=>{ const dateEl=li.querySelector('.bb-session-date'); const titleEl=li.querySelector('.bb-session-title'); const opt=document.createElement('option'); opt.value=li.id; opt.textContent=dateEl&&titleEl ? `${dateEl.textContent.trim()} — ${titleEl.textContent.trim()}` : li.id; sessionSel.appendChild(opt); }); sessionSel.disabled=false; } function gotoSession(id,pushHash=true){ if(!id) return; const el=document.getElementById(id); if(!el) return; const group=el.closest('.bb-group'); if(group) openGroup(group,true); const parts=id.split('-'); const mm=parts[1]; if(monthSel && mm && monthSel.value!==mm){ monthSel.value=mm; applyFilters(); refreshSessionList(mm); } if(sessionSel && !sessionSel.disabled) sessionSel.value=id; setTimeout(()=>{ el.scrollIntoView({behavior:'smooth', block:'start'}); if(pushHash) location.hash='#'+id; },0); } function applyFilters(push=true){ const m=(monthSel?.value||'').toLowerCase().trim(); const groups=qsa('.bb-group',wrap).filter(g=>g.dataset.year===String(pageYear)); const filesId=`${pageYear}-Files`; groups.forEach(g=>{ const isFiles=g.id===filesId; const gm=(g.dataset.month||'').toLowerCase().trim(); let show=false; if(m==='files') show=isFiles; else if(m==='') show=true; else show=isFiles || gm===m; g.classList.toggle('bb-hidden',!show); if(show && m && !isFiles && gm===m) openGroup(g,true); }); placeFilesAfterControls(); const sessionCount=getVisibleSessionCount(); if(countEl){ countEl.textContent = m==='files' ? 'Files shown' : `${sessionCount} session${sessionCount===1?'':'s'} shown`; } if(push){ const params=new URLSearchParams(location.search); m ? params.set('month', monthSel.value) : params.delete('month'); history.replaceState(null,'',location.pathname+(params.toString()?'?'+params.toString():'')+location.hash); } } function getVisibleSessionCount(){ let total=0; qsa('.bb-group',wrap).forEach(g=>{ if(g.classList.contains('bb-hidden') || g.id===`${pageYear}-Files`) return; total += g.querySelectorAll('.bb-session').length; }); return total; } function clearHighlights(root){ qsa('mark.bb-hl',root).forEach(mark=>{ const parent=mark.parentNode; parent.replaceChild(document.createTextNode(mark.textContent),mark); parent.normalize(); }); } function highlightAll(root,query){ clearHighlights(root); if(!query) return 0; const specialChars=new Set(['\\','^','$','.','|','?','*','+','(',')','[',']','{','}']); const escaped=Array.from(query).map(ch=>specialChars.has(ch)?'\\'+ch:ch).join(''); const rx=new RegExp(escaped,'gi'); let count=0; const skipTags=new Set(['SCRIPT','STYLE','NOSCRIPT','TEXTAREA','INPUT','SELECT','OPTION']); const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT,{acceptNode(node){ if(!node.nodeValue || !node.nodeValue.trim()) return NodeFilter.FILTER_REJECT; const p=node.parentElement; if(!p || skipTags.has(p.tagName)) return NodeFilter.FILTER_REJECT; if(p.closest('#bb-controls') || p.closest('.bb-jumpnav') || p.closest('.bb-resources')) return NodeFilter.FILTER_REJECT; return NodeFilter.FILTER_ACCEPT; }}); const nodes=[]; while(walker.nextNode()) nodes.push(walker.currentNode); nodes.forEach(textNode=>{ const text=textNode.nodeValue; if(!rx.test(text)) return; const frag=document.createDocumentFragment(); let last=0; text.replace(rx,(m,off)=>{ if(off>last) frag.appendChild(document.createTextNode(text.slice(last,off))); const mark=document.createElement('mark'); mark.className='bb-hl'; mark.textContent=m; frag.appendChild(mark); count++; last=off+m.length; return m; }); if(last{ const group=mark.closest('.bb-group'); if(group) openGroup(group,false); }); return count; } function initFromURL(){ const url=new URL(location.href); const raw=url.hash.replace('#','').toLowerCase(); const mapped=mapLegacyHash(raw) || url.hash.replace('#',''); const pMonth=url.searchParams.get('month'); if(monthSel) monthSel.value=pMonth || ''; placeFilesAfterControls(); applyFilters(false); if(monthSel) refreshSessionList(monthSel.value); if(mapped){ const el=document.getElementById(mapped); if(el){ const group=el.closest('.bb-group'); if(group){ const mm=group.dataset.month||''; if(monthSel && mm) monthSel.value=mm; applyFilters(false); refreshSessionList(mm); openGroup(group,true); } setTimeout(()=>el.scrollIntoView({behavior:'smooth',block:'start'}),0); } } } function wireControls(){ monthSel && monthSel.addEventListener('change',()=>{ applyFilters(); refreshSessionList(monthSel.value); if(sessionSel) sessionSel.value=''; }); sessionSel && sessionSel.addEventListener('change',()=>{ const id=sessionSel.value; if(id) gotoSession(id); }); let pending=null; searchIn && searchIn.addEventListener('input',()=>{ if(pending) cancelAnimationFrame(pending); pending=requestAnimationFrame(()=>{ const q=searchIn.value.trim(); const matches=highlightAll(wrap,q); if(countEl){ const m=(monthSel?.value||'').toLowerCase().trim(); const sessionCount=getVisibleSessionCount(); const base=m==='files' ? 'Files shown' : `${sessionCount} session${sessionCount===1?'':'s'} shown`; countEl.textContent = base + (q ? ` • ${matches} match${matches===1?'':'es'}` : ''); } const first=qs('mark.bb-hl',wrap); if(first) first.scrollIntoView({behavior:'smooth',block:'center'}); }); }); qsa('.bb-anchor',wrap).forEach(a=>{ a.addEventListener('click',evt=>{ evt.preventDefault(); const id=a.getAttribute('href').replace('#',''); const group=document.getElementById(id); if(!group) return; const mm=group.dataset.month||''; if(monthSel && mm) monthSel.value=mm; applyFilters(); refreshSessionList(mm); openGroup(group,true); group.scrollIntoView({behavior:'smooth',block:'start'}); history.replaceState(null,'',location.pathname+(location.search||'')+'#'+id); }); }); } attachDomains(wrap); initAccordions(); buildJumpNav(); initFromURL(); wireControls(); const backToTop=document.getElementById('backToTop'); window.addEventListener('scroll',()=>{ if(backToTop) backToTop.style.display = document.documentElement.scrollTop > 300 ? 'block' : 'none'; }, {passive:true}); })();