Seems to be the same issue as in this thread - https://developer.apple.com/forums/thread/669265.
You just needs to clarify what is $0 in your code.
								//...
										ForEach((0...6), id: \.self) {
												index in //<- Declare the argument of closure explicitly
												//↓ And use `index` instead of `$0` below
												Button(buttonTitles[index] ?? "") {
														eventPresented = true
														selectedEventIndex = index //<-
												}
												.foregroundColor(titleColors[index])
												.overlay(Text(eventNumbers[index] ?? "").font(.footnote).foregroundColor(.blue).offset(x: -16, y: -16))
												.buttonStyle(BorderlessButtonStyle())
												.frame(width: 48, height: 48, alignment: .center)
												.background(RoundedRectangle(cornerRadius: 2)
																				.fill(fillColors[index])
																				.shadow(color: shadowColors[index], radius: 2, x: 0, y: 0)
												)
												.sheet(isPresented: $eventPresented) {
														EventView(eventVisible: self.$eventPresented, valueFromParent: self.$selectedEventIndex)
												}
										}
								//...
Closure Expressions - https://docs.swift.org/swift-book/LanguageGuide/Closures.html#ID95
> Closure Expression Syntax
Closure expression syntax has the following general form:
{ (parameters) -> return type in
		statements
}
Seems you are too accustomed to use Shorthand Argument Names.