Purple Ocean - inspiring change and creating value

The ISACA Risk Event will take place for the 5th time on Wednesday, November 6, 2024; our first lustrum. We will therefore provide an even more substantive and interesting program than in previous years.

The conference takes place in collaboration with IIA, NOREA and PvIB.

We proudly thank our sponsors for making Risk Event 2024 possible.

Risk Event 2024

Purple Ocean - inspiring change and creating value

The central theme this year is Purple Ocean – inspiring change and creating value.

This day we will highlight four tracks

  • Governance
  • Risk
  • Regulatory
  • Resilience

Each track contains various seminars from top speakers, where the participant can choose the program that best fits their wishes and interests. You will find all names of speakers on the program page. 

Workshop: This year we also add a separate workshop stream to the program. There are only limited places available for the workshops.

During the day (breaks, lunch and dinner) there is plenty of time to talk with speakers and participants.

The ISACA Risk Event mainly focuses on (IT) Risk Managers and Risk Consultants, Security/Privacy and Cyber specialists, IT Auditors, CIOs, (Senior) Management, Thought leaders in organizations, Business information managers, Application managers, Project and service managers and consultants in the IT industry.

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 2024

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.

Regulatory

Podium I

Resilience

Podium II

Governance

Podium III

Risk

Podium voor de Kunst

Workshop

Foyer III
Dwayne Valkenburg
President ISACA NL Chapter
IT Auditor en IT Risk & Compliance Manager
Hans de Vries
European Union Agency for Cybersecurity (ENISA)
Download
10.15 - 10.40
Dimitri van Zantvliet
Dutch Railways (Nederlandse Spoorwegen)
Gemma Jansen
Strategisch BPM/CISO
Download
11.25 - 11.35
Patrick Spelt
Ministerie van Infrastructuur en Waterstaat
Download
11.35 - 12.20
Podium vd Kunst
Elmar Lecher
Port of Rotterdam
Download
12.20 - 13.30
13.30 - 14.15
Podium I
14.15 - 14.25
14.25 - 15.10
Podium vd Kunst
Jair Cardoso de Santanna
Northwave Cyber Security & University of Twente
Download
15.10 - 15.50
16.35 - 16.45
Podium I
Elmar Zwart
getalenteerde jonge muzikant
Firas Abali
Board Member ISACA NL Chapter
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);

Location

This year’s Risk Event took 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 doen ons best om zo min mogelijk cookies en tracking te gebruiken. Door deze site te blijven gebruiken, erken en accepteer je ons gebruik van functionele cookies. Sommige externe diensten vereisen echter je toestemming om cookies te plaatsen.

Alles accepteren Alleen vereiste accepteren