Does Giovanni only appear in events in Pokemon Go?
Giovanni is always available to encounter as long as you have a Super Rocket Radar equipped. If you do have one, he will be available on some Pokéstops between 6am and 10pm local time, and will be guaranteed to appear in any Rocket Balloon.
A Super Rocket Radar is typically acquired through a Special Research Line. While these researches do tend to be released alongside the launch of a specific event, they do not need to be completed in any specific time period (although you may be limiting your ability to get future ones if you intentionally leave it incomplete for extended periods), and when you get the Super Rocket Radar you will still be able to encounter Giovanni even if the event in which that research line was introduced has long since finished.
if I get 6 mysterious components 3 times, and take down all 3 rocket leaders, would i get a black radar that attracts Giovanni?
You would not.
If Giovanni is event/research only, how many times have he appeared? [...] does that mean that no one had defeat him 50 times to get the Ultra Hero medal?
There have been 19 Super Rocket Radars available through ordinary means up to this point, although Niantic Support has been known to manually award an extra Super Rocket Radar to users who have had a glitch affect their ability to catch the shadow legendary encounter reward, meaning that some players have actually defeated Giovanni more than 19 times. But this is going to account for a very small number of additional radars; no players have reached 50 Ultra Hero as of April 2023 and it is very unlikely that anyone will for quite some time.