AIvolution: survAIval of the fittest

Organized in collaboration with IIA, NOREA, and PvIB.

QUICKNAV

Jump directly to: About Speakers Programme Location

We proudly thank our sponsors for making RiskEvent 2026 possible.

RiskEvent 2026

AIvolution: survAIval of the fittest

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Sometimes it’s nice to put in text just to get an idea of how text will fill in a space on your website.

Traditionally our industry has used Lorem Ipsum, which is placeholder text written in Latin. Unfortunately, not everyone is familiar with Lorem Ipsum and that can lead to confusion. I can’t tell you how many times clients have asked me why their website is in another language!

There are other placeholder text alternatives like Hipster Ipsum, Zombie Ipsum, Bacon Ipsum, and many more. While often hilarious, these placeholder passages can also lead to much of the same confusion.

If you’re curious, this is Website Ipsum. It was specifically developed for the use on development websites. Other than being less confusing than other Ipsum’s, Website Ipsum is also formatted in patterns more similar to how real copy is formatted on the web today.

Track 1: AI trust revolution

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Track 2: AI and Governance

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Track 3: When AI Goes to the Dark Size / Rogue

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Track 4: AI and the human

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Track 5: TBD

This is just placeholder text. Don’t be alarmed, this is just here to fill up space since your finalized copy isn’t ready yet. Once we have your content finalized, we’ll replace this placeholder text with your real content.

Secure your ticket now.

Speakers

Meet the experts who will take the stage in 2025: thought leaders, innovators, and changemakers in risk, IT audit, and cybersecurity.
Antal Hendrix van Spronsen
Antal Hendrix van Spronsen
Debbie Reinders
Debbie Reinders
Dwayne Valkenburg
Dwayne Valkenburg
President ISACA NL Chapter
<?php
// Haal alle gerelateerde 'people'-IDs op voor alle 'risk-event-2022'-posts
$connected_people_ids = array();

if (class_exists('MB_Relationships_API')) {
    error_log('MB_Relationships_API is available');
    
    // Haal alle 'risk-event-2022'-posts op
    $risk_events = get_posts(array(
        'post_type' => 'risk-event-2022',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'fields' => 'ids'
    ));
    
    if (!empty($risk_events)) {
        error_log('Found ' . count($risk_events) . ' risk-event-2022 posts: ' . implode(', ', $risk_events));
        
        foreach ($risk_events as $event_id) {
            error_log('Processing event ID: ' . $event_id);
            $people_ids = MB_Relationships_API::get_connected(array(
                'id' => 'risk-event-22-people',
                'to' => $event_id // Omgekeerde relatie
            ));
            
            if (!empty($people_ids)) {
                $connected_people_ids = array_merge($connected_people_ids, wp_list_pluck($people_ids, 'ID'));
                error_log('Found people for event ID ' . $event_id . ': ' . implode(', ', wp_list_pluck($people_ids, 'ID')));
            } else {
                error_log('No people found for event ID: ' . $event_id . '. API response: ' . print_r($people_ids, true));
            }
        }
        
        $connected_people_ids = array_unique(array_filter($connected_people_ids));
        error_log('Final unique connected people IDs: ' . implode(', ', $connected_people_ids));
    } else {
        error_log('No risk-event-2022 posts found. Checking post type registration...');
        // Debug post type registratie
        $post_types = get_post_types(array('public' => true), 'names');
        error_log('Registered post types: ' . implode(', ', $post_types));
    }
} else {
    error_log('MB_Relationships_API not available');
}

// Voer de query uit en toon de resultaten met BEM-structuur
if (!empty($connected_people_ids)) {
    $people_query = new WP_Query(array(
        'post_type' => 'people',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'post__in' => $connected_people_ids,
        'orderby' => 'title', // Sorteer op titel (naam)
        'order' => 'ASC'     // A-Z (oplopend)
    ));
    
    if ($people_query->have_posts()) {
        echo '<div class="riskpeoplecard__container">';
        while ($people_query->have_posts()) {
            $people_query->the_post();
            // Haal de afbeelding op (ondersteunt ID of array van MetaBox)
            $pasfoto_id = get_post_meta(get_the_ID(), 'pasfoto', true);
            $pasfoto_url = is_array($pasfoto_id) ? wp_get_attachment_image_url($pasfoto_id['ID'], 'full') : wp_get_attachment_image_url($pasfoto_id, 'full');
            $function_text = get_post_meta(get_the_ID(), 'override_text_on_events', true);
            
            // Debug de veldwaarden
            error_log('Post ID: ' . get_the_ID() . ', Pasfoto: ' . ($pasfoto_url ?: 'Not found') . ', Function: ' . ($function_text ?: 'Not found'));
            
            echo '<div class="riskpeoplecard">';
            echo '<div class="riskpeoplecard__imagewrapper">';
            if ($pasfoto_url) {
                echo '<img class="riskpeoplecard__image" src="' . esc_url($pasfoto_url) . '" alt="' . esc_attr(get_the_title()) . '">';
            } else {
                echo '<div class="riskpeoplecard__image--placeholder">No image</div>';
            }
            echo '</div>';
            echo '<div class="riskpeoplecard__body">';
            echo '<div class="riskpeoplecard__name">' . esc_html(get_the_title()) . '</div>';
            // Toon de functie alleen als deze niet leeg is
            if (!empty($function_text)) {
                echo '<div class="riskpeoplecard__function">' . esc_html($function_text) . '</div>';
            }
            echo '</div>';
            echo '</div>';
        }
        echo '</div>';
        wp_reset_postdata();
    } else {
        echo '<div class="riskpeoplecard__container">No people posts found with the connected IDs</div>';
    }
} else {
    echo '<div class="riskpeoplecard__container">No connected people IDs found</div>';
}
?>

Aftermovie

Experience the atmosphere and insights of Risk Event 2024. Curious what’s next? Join us this year and connect with the leaders in IT risk and security.

Programme Risk Event 2026

Explore four parallel tracks, and a workshop track. Each with its own focus on today's most pressing risks. Choose a Podium to view sessions from that track only. Curious to learn more? Click on a session title to see details about the speaker and topic.

AI trust revolution

Podium I

AI and Governance

Podium II

When AI Goes to the Dark Size / Rogue

Podium III

AI and the human

Podium voor Kunst

TBD

Foyer III
08.00 - 09.15
9.15 - 9.30
Dwayne Valkenburg
President ISACA NL Chapter
IT Auditor en IT Risk & Compliance Manager
9.30 - 10.15
Antal Hendrix van Spronsen
Wordpress consultant, webdeveloper & -designer Blauwe Nacht
10.15 - 10.40
10.40 - 11.25
10.40 - 11.25
10.40 - 11.25
10.40 - 11.25
10.40 - 11.25
11.25 - 11.35
11.35 - 12.20
11.35 - 12.20
11.35 - 12.20
11.35 - 12.20
11.35 - 12.20
12.20 - 13.30
13.30 - 14.15
13.30 - 14.15
13.30 - 14.15
13.30 - 14.15
13.30 - 14.15
14.15 - 14.25
14.25 - 15.10
14.25 - 15.10
14.25 - 15.10
14.25 - 15.10
14.25 - 15.10
Debbie Reinders
Independent Public Relations and Communications Professional
15.10 - 15.50
15.50 - 16.40
16.40 - 17.30
17.30 - 17.45
17.45 - 20.00
<h1 class='my-heading'>Just some HTML</h1><?php echo 'The year is ' . date('Y'); ?>
document.addEventListener("DOMContentLoaded", function () {
  const container = document.querySelector(".risk-loop-container");
  if (!container) return;

  const kaarten = Array.from(container.querySelectorAll(".risk-card"));
  const rijen = {};

  // Sorteer alle kaarten eerst op starttijd
  kaarten.sort((a, b) => {
    const tijdA = a.getAttribute("risk-starttijd") || "";
    const tijdB = b.getAttribute("risk-starttijd") || "";
    return tijdA.localeCompare(tijdB);
  });

  // Verdeel kaarten per tijdslot
  kaarten.forEach((kaart) => {
    const tijd = (kaart.getAttribute("risk-starttijd") || "").trim();

    if (!rijen[tijd]) {
      const rij = document.createElement("div");
      rij.classList.add("risk-row");
      rij.setAttribute("data-starttijd", tijd);
      container.appendChild(rij);
      rijen[tijd] = rij;
    }

    rijen[tijd].appendChild(kaart);
  });

  // Sorteer binnen elke rij op data-podium
  Object.values(rijen).forEach((rij) => {
    const cards = Array.from(rij.querySelectorAll(".risk-card"));

    cards.sort((a, b) => {
      const pA = parseInt(a.getAttribute("data-podium")) || 999;
      const pB = parseInt(b.getAttribute("data-podium")) || 999;
      return pA - pB;
    });

    cards.forEach((kaart) => rij.appendChild(kaart));
  });
});
function sorteerEnGroepeerKaarten() {
  const container = document.querySelector(".risk-loop-container");
  if (!container) return;

  // Verwijder oude rijen (voor het opnieuw opbouwen)
  container.querySelectorAll(".risk-row").forEach((el) => el.remove());

  // Zoek alle kaarten
  const kaarten = Array.from(container.querySelectorAll(".risk-card"));
  const rijen = {};

  // Sorteer kaarten op starttijd
  kaarten.sort((a, b) => {
    const tijdA = a.getAttribute("risk-starttijd") || "";
    const tijdB = b.getAttribute("risk-starttijd") || "";
    return tijdA.localeCompare(tijdB);
  });

  // Groepeer kaarten per tijdslot
  kaarten.forEach((kaart) => {
    const tijd = (kaart.getAttribute("risk-starttijd") || "").trim();

    if (!rijen[tijd]) {
      const rij = document.createElement("div");
      rij.classList.add("risk-row");
      rij.setAttribute("data-starttijd", tijd);

      // 🔧 Dit is waar de grid toegepast moet worden:
      rij.style.display = "grid";
      rij.style.gridTemplateColumns = "repeat(auto-fit, minmax(220px, 1fr))";
      rij.style.gap = "1rem";

      container.appendChild(rij);
      rijen[tijd] = rij;
    }

    rijen[tijd].appendChild(kaart);
  });

  // Sorteer binnen elke rij op podium-nummer
  Object.values(rijen).forEach((rij) => {
    const cards = Array.from(rij.querySelectorAll(".risk-card"));

    cards.sort((a, b) => {
      const pA = parseInt(a.getAttribute("data-podium")) || 999;
      const pB = parseInt(b.getAttribute("data-podium")) || 999;
      return pA - pB;
    });

    cards.forEach((kaart) => rij.appendChild(kaart));
  });
}

// Initieel en bij AJAX reload
document.addEventListener("DOMContentLoaded", sorteerEnGroepeerKaarten);
document.addEventListener("bricks/ajax/nodes_added", sorteerEnGroepeerKaarten);
function sorteerEnGroepeerKaarten() {
  const container = document.querySelector(".risk-loop-container");
  if (!container) return;

  // Verwijder oude gegroepeerde rijen
  container.querySelectorAll(".risk-row").forEach((el) => el.remove());

  // Verzamel en sorteer alle kaarten op starttijd
  const kaarten = Array.from(container.querySelectorAll(".risk-card"));
  const rijen = {};

  kaarten.sort((a, b) => {
    const tijdA = a.getAttribute("risk-starttijd") || "";
    const tijdB = b.getAttribute("risk-starttijd") || "";
    return tijdA.localeCompare(tijdB);
  });

  // Groepeer kaarten per tijdslot
  kaarten.forEach((kaart) => {
    const tijd = (kaart.getAttribute("risk-starttijd") || "").trim();

    if (!rijen[tijd]) {
      const rij = document.createElement("div");
      rij.classList.add("risk-row");
      rij.setAttribute("data-starttijd", tijd);
      rij.style.display = "grid";
      rij.style.gridTemplateColumns = "repeat(auto-fit, minmax(220px, 1fr))";
      rij.style.gap = "1rem";

      container.appendChild(rij);
      rijen[tijd] = rij;
    }

    rijen[tijd].appendChild(kaart);
  });

  // Sorteer binnen elk tijdslot op podium
  Object.values(rijen).forEach((rij) => {
    const cards = Array.from(rij.querySelectorAll(".risk-card"));
    cards.sort((a, b) => {
      const pA = parseInt(a.getAttribute("data-podium")) || 999;
      const pB = parseInt(b.getAttribute("data-podium")) || 999;
      return pA - pB;
    });
    cards.forEach((kaart) => rij.appendChild(kaart));
  });
}

function initKaarten() {
  sorteerEnGroepeerKaarten();

  const container = document.querySelector(".risk-loop-container");

  // Herinitialiseer Bricks Extras Lightbox
  if (typeof doExtrasLightbox === "function" && container) {
    doExtrasLightbox(container, true);
    console.info("✅ Bricks Extras Lightbox opnieuw geïnitialiseerd");
  } else {
    console.warn("⚠️ Bricks Extras Lightbox functie niet beschikbaar of container niet gevonden");
  }
}

// Init bij paginalaad
document.addEventListener("DOMContentLoaded", initKaarten);

// Init na AJAX/facet filtering
document.addEventListener("bricks/ajax/nodes_added", initKaarten);
function sorteerEnGroepeerKaarten() {
  const container = document.querySelector(".risk-loop-container");
  if (!container) return;

  // Verwijder oude gegroepeerde rijen
  container.querySelectorAll(".risk-row").forEach((el) => el.remove());

  // Verzamel alle kaarten
  const kaarten = Array.from(container.querySelectorAll(".risk-card"));
  const rijen = {};

  // Groepeer kaarten per tijdslot
  kaarten.forEach((kaart) => {
    const tijd = (kaart.getAttribute("risk-starttijd") || "").trim();
    if (!tijd) return;

    if (!rijen[tijd]) {
      const rij = document.createElement("div");
      rij.classList.add("risk-row");
      rij.setAttribute("data-starttijd", tijd);
      rij.style.display = "grid";
      rij.style.gridTemplateColumns = "repeat(auto-fit, minmax(220px, 1fr))";
      rij.style.gap = "1rem";

      container.appendChild(rij);
      rijen[tijd] = rij;
    }

    rijen[tijd].appendChild(kaart);
  });
}

function herinitialiseerLightbox() {
  const container = document.querySelector(".risk-loop-container");

  if (typeof doExtrasLightbox === "function" && container) {
    doExtrasLightbox(container, true);
    console.info("✅ Bricks Extras Lightbox opnieuw geïnitialiseerd");
  } else {
    console.warn("⚠️ Bricks Extras Lightbox functie niet beschikbaar of container niet gevonden");
  }
}

function initKaarten() {
  requestAnimationFrame(() => {
    sorteerEnGroepeerKaarten();
    herinitialiseerLightbox();
  });
}

// Init bij paginalaad
document.addEventListener("DOMContentLoaded", initKaarten);

// Init na AJAX/facet filtering
document.addEventListener("bricks/ajax/nodes_added", initKaarten);

Location

This year’s Risk Event takes place at Spant!, a modern and inspiring venue in the heart of the Netherlands. Located in Bussum, just 25 minutes from Amsterdam and easily accessible by car and public transport.

Spant!
Dr. A. Kuyperlaan 3
1402 SBBussum

We do our best with using as less posible cookies and tracking. By continuing to use this site, you acknowledge and accept our use of functional cookies. However, some external services require your permission to place cookies.

Accept All Accept Required Only