Pretoria, South AfricaTraining venue Kigali, RwandaTraining venue Nairobi, KenyaTraining venue Accra, GhanaTraining venue Kampala, UgandaTraining venue Dubai, United Arab EmiratesTraining venue

Training Events by Venue

Choose a training event and apply directly. Browse upcoming face-to-face training opportunities and apply directly for your preferred course.

Kigali, Rwanda

October 2026

Pretoria, South Africa

October 2026

Nairobi, Kenya

October 2026

Dubai, United Arab Emirates

October 2026

Zanzibar, Tanzania

October 2026

Kampala, Uganda

October 2026

Accra, Ghana

October 2026

Port Louis, Mauritius

October 2026

Livingstone, Zambia

October 2026

Vic Falls, Zimbabwe

October 2026

Debug

sql: SELECT COUNT(*) FROM `userlevels` WHERE `userlevelid` = -2, executionMS: 0.00053310394287109

sql: SELECT `userlevelid`, `userlevelname` FROM `userlevels`, executionMS: 0.00030398368835449

sql: SELECT COUNT(*) FROM `userlevelpermissions` WHERE `userlevelid` = -2, executionMS: 0.00055098533630371

sql: SELECT `tablename`, `userlevelid`, `permission` FROM `userlevelpermissions` WHERE `userlevelid` IN (-2), executionMS: 0.0020380020141602

sql: SELECT a.Course_Title AS CourseID, COALESCE(c.Course_Title, CONCAT('Course #', a.Course_Title)) AS CourseName, c.Course_Code, c.Short_Description, a.Training_Dates, a.Month AS MonthID, COALESCE(m.Month, '') AS MonthName, a.Year, a.Venue AS VenueID, COALESCE(v.Venue, CONCAT('Venue #', a.Venue)) AS VenueName, a.Duration AS DurationID, CASE WHEN a.Duration = 1 THEN '1 Week' WHEN a.Duration = 2 THEN '2 Weeks' WHEN a.Duration IS NULL OR a.Duration = 0 THEN 'Duration Pending' ELSE CONCAT(a.Duration, ' Week(s)') END AS DurationName, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates, SUM(CASE WHEN a.Status = 1 THEN 1 ELSE 0 END) AS PendingApps, SUM(CASE WHEN a.Status = 2 THEN 1 ELSE 0 END) AS QuotedApps, SUM(CASE WHEN a.Status = 3 THEN 1 ELSE 0 END) AS MaybeApps, SUM(CASE WHEN a.Status = 4 THEN 1 ELSE 0 END) AS AttendingApps, SUM(CASE WHEN a.Status = 5 THEN 1 ELSE 0 END) AS PaidApps, SUM(CASE WHEN a.Status = 4 THEN IFNULL(NULLIF(a.delegates,0),1) ELSE 0 END) AS AttendingDelegates, SUM(CASE WHEN a.Status = 5 THEN IFNULL(NULLIF(a.delegates,0),1) ELSE 0 END) AS PaidDelegates, MIN(a.Application_ID) AS SampleApplicationID, MAX(a.Application_ID) AS LatestApplicationID, MAX(a.Created_Date) AS LatestAppliedDate FROM apply a LEFT JOIN courses c ON c.id = a.Course_Title LEFT JOIN venues v ON v.id = a.Venue LEFT JOIN months m ON m.Month_ID = a.Month WHERE a.TrainingType = 2 AND a.Course_Title IS NOT NULL AND a.Course_Title > 0 AND a.Venue IS NOT NULL AND a.Venue > 0 AND a.Venue <> 7 AND (a.Training_Dates IS NOT NULL AND TRIM(a.Training_Dates) <> '') AND a.Month = 10 AND a.Year = 2026 GROUP BY a.Course_Title, a.Training_Dates, a.Month, a.Year, a.Venue, a.Duration ORDER BY a.Year ASC, a.Month ASC, v.Venue ASC, c.Course_Title ASC, a.Training_Dates ASC, executionMS: 0.14197707176208

sql: SELECT v.id, v.Venue, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates FROM apply a INNER JOIN venues v ON v.id = a.Venue WHERE a.TrainingType = 2 AND v.id <> 7 GROUP BY v.id, v.Venue ORDER BY Applications DESC, Delegates DESC, v.Venue ASC, executionMS: 0.11937594413757

sql: SELECT DISTINCT m.Month_ID, m.Month FROM apply a LEFT JOIN months m ON m.Month_ID = a.Month WHERE a.TrainingType = 2 AND a.Venue <> 7 AND a.Month IS NOT NULL ORDER BY m.Month_ID ASC, executionMS: 0.14146900177002

sql: SELECT DISTINCT a.Year FROM apply a WHERE a.TrainingType = 2 AND a.Venue <> 7 AND a.Year IS NOT NULL ORDER BY a.Year ASC, executionMS: 0.12298011779785

sql: SELECT v.id, v.Venue AS VenueName, COUNT(a.Application_ID) AS Applications, SUM(IFNULL(NULLIF(a.delegates,0),1)) AS Delegates FROM apply a INNER JOIN venues v ON v.id = a.Venue WHERE a.TrainingType = 2 AND a.Venue <> 7 GROUP BY v.id, v.Venue ORDER BY Applications DESC, Delegates DESC, v.Venue ASC LIMIT 6, executionMS: 0.13020300865173