Database is fine, +00 is UTC and that's how it should be stored. The problem is where you format it. On your laptop the server runs in Amsterdam time. On Vercel the server runs in UTC. So a server component doing date.toLocaleTimeString() prints UTC.
If the business has one timezone (a salon in Amsterdam), be explicit:
new Intl.DateTimeFormat("nl-NL", {
timeZone: "Europe/Amsterdam",
hour: "2-digit",
minute: "2-digit",
}).format(new Date(slot.starts_at));Same output on every server and every browser.