> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Events

> Register for live Thread sessions — Super Magic admin setup, hands-on workshops, AMAs, and service team training. Pick a session and grab a spot.

export const CalendlyLoader = () => {
  useEffect(() => {
    const CSS = "https://assets.calendly.com/assets/external/widget.css";
    const JS = "https://assets.calendly.com/assets/external/widget.js";
    if (!document.querySelector('link[href="' + CSS + '"]')) {
      const l = document.createElement("link");
      l.rel = "stylesheet";
      l.href = CSS;
      document.head.appendChild(l);
    }
    if (!document.querySelector('script[src="' + JS + '"]')) {
      const s = document.createElement("script");
      s.src = JS;
      s.async = true;
      document.head.appendChild(s);
    }
    const ready = () => window.Calendly && typeof window.Calendly.initInlineWidget === "function";
    let overlayEl = null;
    let skelTimeout = null;
    let onMessage = null;
    const cleanupLoadWatch = () => {
      if (skelTimeout) {
        clearTimeout(skelTimeout);
        skelTimeout = null;
      }
      if (onMessage) {
        window.removeEventListener("message", onMessage);
        onMessage = null;
      }
    };
    const onKey = e => {
      if (e.key === "Escape") closeModal();
    };
    const closeModal = () => {
      if (!overlayEl) return;
      cleanupLoadWatch();
      overlayEl.remove();
      overlayEl = null;
      document.removeEventListener("keydown", onKey);
    };
    const buildSkeleton = () => {
      const skel = document.createElement("div");
      skel.className = "thread-cal-skeleton";
      skel.innerHTML = '<div class="thread-cal-spinner"></div>';
      return skel;
    };
    const openModal = url => {
      closeModal();
      const overlay = document.createElement("div");
      overlay.className = "thread-cal-overlay";
      const modal = document.createElement("div");
      modal.className = "thread-cal-modal";
      const close = document.createElement("button");
      close.className = "thread-cal-close";
      close.setAttribute("aria-label", "Close");
      close.innerHTML = "&times;";
      const host = document.createElement("div");
      host.className = "thread-cal-embed";
      const skel = buildSkeleton();
      modal.appendChild(close);
      modal.appendChild(host);
      modal.appendChild(skel);
      overlay.appendChild(modal);
      document.body.appendChild(overlay);
      overlayEl = overlay;
      overlay.addEventListener("click", e => {
        if (e.target === overlay) closeModal();
      });
      close.addEventListener("click", closeModal);
      document.addEventListener("keydown", onKey);
      const removeSkeleton = () => {
        cleanupLoadWatch();
        if (!skel.parentNode) return;
        skel.classList.add("is-hidden");
        setTimeout(() => {
          if (skel.parentNode) skel.remove();
        }, 350);
      };
      onMessage = e => {
        if (typeof e.origin !== "string" || e.origin.indexOf("calendly.com") === -1) {
          return;
        }
        let d = e.data;
        if (typeof d === "string") {
          try {
            d = JSON.parse(d);
          } catch (err) {
            return;
          }
        }
        if (d && d.event === "calendly.event_type_viewed") removeSkeleton();
      };
      window.addEventListener("message", onMessage);
      skelTimeout = setTimeout(removeSkeleton, 6000);
      window.Calendly.initInlineWidget({
        url,
        parentElement: host
      });
      const watchIframe = tries => {
        const frame = host.querySelector("iframe");
        if (frame) {
          frame.addEventListener("load", () => setTimeout(removeSkeleton, 1600));
        } else if (tries < 40) {
          setTimeout(() => watchIframe(tries + 1), 100);
        }
      };
      watchIframe(0);
    };
    const onClick = e => {
      const a = e.target.closest && e.target.closest('a[href*="calendly.com"]');
      if (!a) return;
      let url = a.getAttribute("href");
      if (!url) return;
      e.preventDefault();
      e.stopImmediatePropagation();
      if (url.indexOf("hide_gdpr_banner=") === -1) {
        url += (url.indexOf("?") === -1 ? "?" : "&") + "hide_gdpr_banner=1";
      }
      if (ready()) {
        openModal(url);
        return;
      }
      let tries = 0;
      const iv = setInterval(() => {
        if (ready()) {
          clearInterval(iv);
          openModal(url);
        } else if (++tries > 30) {
          clearInterval(iv);
          window.open(url, "_blank");
        }
      }, 100);
    };
    document.addEventListener("click", onClick, true);
    return () => {
      document.removeEventListener("click", onClick, true);
      closeModal();
    };
  }, []);
  return null;
};

<CalendlyLoader />

Learn Thread live, with a Thread expert. Register for any session below — booking opens in Calendly, and you'll get a calendar invite with the join link.

## Upcoming sessions

<CardGroup cols={2}>
  <Card title="Super Magic Admin Session" icon="sliders" href="https://calendly.com/events-getthread/super-magic-admin-session?background_color=faf9f6&text_color=0a0a0b&primary_color=008e78">
    Set up Super Magic for your workspace — access, safety, and tuning — walked through with a Thread expert.
  </Card>

  <Card title="Super Magic Live Workshop" icon="chalkboard-user" href="https://calendly.com/events-getthread/super-magic-live-workshop?background_color=faf9f6&text_color=0a0a0b&primary_color=008e78">
    A hands-on session building real Super Magic skills and workflows for your desk.
  </Card>

  <Card title="Super Magic AMA" icon="comments" href="https://calendly.com/events-getthread/super-magic-ama?background_color=faf9f6&text_color=0a0a0b&primary_color=008e78">
    Bring your questions — a live, open Q\&A on getting the most out of Super Magic.
  </Card>

  <Card title="Service Team Training" icon="graduation-cap" href="https://calendly.com/events-getthread/service-team-training?background_color=faf9f6&text_color=0a0a0b&primary_color=008e78">
    Train your service team on working tickets in Inbox, end to end.
  </Card>

  <Card title="Voice AI Adoption AMA" icon="phone" href="https://calendly.com/events-getthread/voice-ai-adoption-ama?background_color=faf9f6&text_color=0a0a0b&primary_color=008e78">
    Bring your questions — a live, open Q\&A on rolling out and getting the most from Voice AI.
  </Card>
</CardGroup>

## More ways to connect

Can't make a session, or want to keep the conversation going between them?

<CardGroup cols={2}>
  <Card title="AI Service Unleashed webinar" icon="calendar-check" href="https://www.getthread.com/aisu-weekly-registration">
    The weekly online forum for forward-thinking service-desk leaders using AI and automation.
  </Card>

  <Card title="Thread Crew community" icon="people-group" href="https://thread-crew.circle.so">
    Ask questions and swap ideas with other Thread partners.
  </Card>
</CardGroup>


## Related topics

- [Planner and Outlook Calendar Integration](/inbox/planner-outlook-calendar-integration.md)
- [Backup Failure Triage](/skill-library/devices-and-infrastructure/backup-failure-triage.md)
- [Device Offline Runbook](/skill-library/devices-and-infrastructure/device-offline-runbook.md)
