Sam Benson

ICS Is 25 Years Old. Here’s Why I Built Synara to Replace It for Developers

by

If you’ve ever tried to send calendar invites or event updates from your app, you’ve probably discovered the same thing I did: ICS is really old, inconsistent, and every provider interprets it differently.

Google, Microsoft, and Apple all parse ICS with their own quirks.

That means:

  • Updates get ignored or duplicated

  • Recurring rules behave differently

  • RSVPs are unreliable across clients

  • Debugging is basically trial and error

  • And even small changes can break user trust

After dealing with this long enough, I realised the real issue isn’t how we send events. It’s the format underneath everything.

So I built ACE, a modern JSON event envelope for JSCalendar, designed to remove ICS ambiguity entirely. And Synara is the service layer on top of it: a clean, predictable event and invite API that keeps Google and Outlook in sync without hacks.

Synara handles:

  • Event creation

  • Invites

  • Updates

  • ICS fallback for legacy clients

  • Webhooks for attendee changes

Your app makes one API call, and Synara keeps calendars in sync reliably.

I decided to share this on PH because I'm genuinely interested in how other developers have handled calendar invites and event updates:

  • Have you run into ICS inconsistencies?

  • Did you end up writing your own parsing or syncing logic?

  • What was the worst bug or behaviour you hit?

  • If you could redesign this layer today, what would you want?

I built Synara out of personal frustration, but I want to know what problems you've encountered or still encounter. If you’ve got experience with ICS, scheduling tools, or calendar APIs, I’d love to hear your thoughts and/or feedback.

40 views

Add a comment

Replies

Best
Sam Benson

Looking forward to hearing from you all and getting some feedback!