No middle layer. Just wires.
Event Schedule talks straight to the services you already run: your calendar or your own CalDAV server, your own Stripe account, your own endpoint. Twelve ports, each labelled with which way it runs, what makes data move, and which plan it is on.
Integration panel
12 ports
out = data leaves here · in = data arrives here
Direction
A wire has a direction. So does every port here.
Almost every integration question is really a direction question. So this is the first thing the labels tell you.
Data leaves here
Saving an event is the trigger, not a timer: that save is what pushes it to the calendars you have connected and POSTs it to your webhook URL. Nothing waits for a nightly batch.
Data arrives here
Google and Microsoft tell us when something changed; Stripe, Invoice Ninja and Twilio report the same way. Where a service cannot tell us, we ask: CalDAV on a timer, Eventbrite when you press import. The REST API is inbound too, with your code doing the calling.
Two-way
Both of those on one port, with the loop guarded at each end so an edit that arrived from a calendar is not immediately pushed back out to it.
One honest difference: CalDAV has no notification standard, so its inbound leg is polled every fifteen minutes rather than pushed. Worth knowing before you pick a server.
The register
Twelve ports, written down.
Every one of them is on this page in full: the direction it runs, what makes data move along it, and the plan it is on. No marketplace, no logos we merely admire, and the gaps people hit are spelled out further down rather than left for you to find.
| Port | Wire | What moves it | Plan |
|---|---|---|---|
| Google Calendar | both | Saving an event writes it to Google straight away. Google notifies us back through a watch channel, and a sweep every fifteen minutes catches anything the channel missed. | Free |
| Outlook / Microsoft 365 | both | The same shape over Microsoft Graph, with a change subscription inbound and a delta token so a resync does not re-read the whole calendar. Optional Teams meeting link. | Free |
| CalDAV | both or one | Server URL, username, password. Outbound on save; inbound is polled every fifteen minutes, because CalDAV has no notification standard to subscribe to. | Free |
| Stripe | out then in | Checkout runs on Stripe. On the hosted platform the charge is created on your own connected account, and the result returns as a signed webhook. Selling starts free at twenty-five paid tickets a month per schedule; Pro takes the ceiling off. | Free |
| Invoice Ninja | out then in | Either an invoice per sale, or a payment link the buyer completes on your Invoice Ninja install. A webhook marks the sale paid when it clears. | Free |
| Webhooks | out | Twelve event types, POSTed as JSON to your URL with an HMAC-SHA256 signature. Five-second timeout, three tries, and every attempt logged. | Pro |
| REST API | in | Full create, read, update and delete on schedules, sub-schedules, events and sales, plus read endpoints for feedback and fan content. Key in a header. | Pro |
| Eventbrite import | in | Paste an Eventbrite private token, pick from the events it finds, and they arrive with their venues, ticket types and images. You press the button; nothing runs on a timer. | Pro |
| Web push | out | The notifications you already get by email, repeated as browser and mobile push. Per device, opt-in, and only where the site operator has configured it. | Pro |
| Accommodation map | out | Lodging near the venue on your public event pages, dated from the occurrence being viewed. Nothing is requested until the visitor consents. | Free |
| Meta ads | out | Your event becomes a Facebook and Instagram campaign: you choose budget, dates, audience and placements. The ads run on the ad account of whoever operates your Event Schedule site. | Pro |
| in | Message the site's WhatsApp number, or send a photo of a flyer, and the event is created and answered with its link. Runs over the operator's Twilio account. | Ent |
Selfhosted installs resolve to the top tier, so every port above is on from the first boot. On the hosted platform, Pro is $5 a month and Enterprise, which the WhatsApp port needs, is $15.
Calendar ports
Your calendar, or your own server.
Three ports, all free on every plan, all two-way, and all with the direction under your control per schedule.
Google Calendar
FreeConnect with Google, choose which calendar, and pick the direction. Outbound happens on save; inbound arrives on a watch channel, so a change made in Google shows up without waiting.
- Pick the calendar, not just the account
- Sync one event on its own, or take it back out
- Force a full re-push when a calendar has drifted
Outlook and Microsoft 365
FreeThe same shape over Microsoft Graph. A change subscription notifies us inbound, and a delta token means a resync reads what changed rather than the whole calendar again.
- Personal, work and school accounts
- Optional Teams meeting on events with no venue
- The Teams join link lands in the event's link field
CalDAV
FreeNextcloud, Radicale, Baikal, Fastmail or anything else that speaks CalDAV. Give it a server URL and credentials, test the connection, then choose from the calendars it finds.
- Calendars discovered for you after the test
- Push, pull, both ways, or off
- No third party in the path at all
The setting people ask about first
What happens when you delete it there
For a schedule that imports from a calendar, you choose what an outside deletion means. It is one setting with three answers, and it is the difference between a tidy calendar and a missing show.
How calendar sync works is the longer version, and the user guide walks through the actual screens.
Money ports
The money never lands here.
Both payment ports terminate in an account you own, and both are open on the free plan, which sells twenty-five paid tickets a month per schedule before Pro takes the ceiling off. Event Schedule charges zero platform fees on ticket sales on every plan, which is only possible because it is not in the middle of the transaction.
Stripe
FreeCheckout runs on Stripe's own page. On the hosted platform the charge is created on your connected account, so payouts arrive on your Stripe schedule, and the confirmation returns to us as a signed webhook.
Invoice Ninja
FreePoint Event Schedule at your Invoice Ninja install with an API token and URL. Useful when the buyer is an organisation that needs a document rather than a receipt.
Not a wire
Two of the payment options are deliberately not integrations, and it is better that you know which.
Free registration with a capacity limit needs no payment port at all, and works on every plan.
If the money currently lands at Eventbrite
in ProThere is one import port, and it points at Eventbrite. It runs when you press the button, not on a timer, so it is a move rather than a running sync.
Event Schedule compared with Eventbrite goes through the rest of the move.
The terminal block
Two spare terminals, for wires we did not build.
There is no Zapier app. Instead there is one wire out and one wire in, both general purpose, both documented, both on the Pro plan.
Webhooks
ProTwelve event types, POSTed as JSON to a URL you own. Subscribe to all of them or pick the ones you care about.
REST API
ProCreate, read, update and delete schedules, sub-schedules, events and sales from your own code, plus read endpoints for post-event feedback and fan content.
Operator ports
Four ports the site operator holds the key to.
These four need a credential that belongs to whoever runs the Event Schedule site, not to your schedule. If the panel for one of them is not there, that is why.
Web push
ProThe notification emails you already receive, repeated as browser and mobile push through OneSignal. On top of email, not instead of it.
- Per device: enable it on the phone and the laptop separately
- Opt-in, and off until you turn it on
- On iPhone and iPad, the site has to be on the home screen first
Accommodation map
FreeA Stay22 map of lodging near the venue on your public event pages, with the dates taken from the occurrence being viewed. Free on every plan, off by default.
- Nothing is requested until the visitor consents or clicks
- Suppressed for past events, embeds and password-gated pages
- Add your own affiliate ID and the commission is yours
Facebook and Instagram ads
ProBoosting turns an event into a Meta campaign. The ads run on the ad account belonging to whoever operates the site, so there is no Meta login for you to connect and no ad manager to learn.
- Facebook and Instagram feeds, Stories and Reels
- Budget by the day or for the whole run, with your own audience
- The boost is paid for here rather than to Meta
The one port where a message becomes an event. Send text or a photo of a flyer to the site's WhatsApp number and the event is created on your default schedule, with a reply carrying its link.
- Runs over the operator's Twilio account, on the Enterprise plan
- Only a phone number verified on your own account can create anything
- The flyer you sent becomes the event's image
Or hold the keys yourself
Selfhosting? You are the operator
Run your own install and all four of those keys are yours to add, alongside your own Google, Microsoft and Stripe credentials. Every port in the register is on, because a selfhosted install resolves to the top tier. An install that is not eventschedule.com can also share its public events with the eventschedule.com listings, which an admin switches on and each schedule can opt out of.
Unterminated
Ports that are not there.
You came here to find out whether this fits your stack. That answer is worth as much when it is no, so here are the four gaps people hit.
No streaming-platform integrations
An online event carries one link field. Mark the event as online and paste the URL to wherever you are streaming, whether that is Zoom, Meet, YouTube or something else entirely. Nothing is created for you and nothing is read back. The single exception is Outlook: turn on Teams meetings and the join link is written into that same field for events with no venue.
No Zapier or Make app
There is no listing in either directory. The general-purpose route is the terminal block above: a signed webhook out on twelve event types, and the REST API in. Both accept a plain HTTP client, so an automation tool that can POST and receive JSON can be wired up without a connector.
No accounting or CRM sync
Invoice Ninja is the only invoicing wire, and there is nothing that pushes sales into a ledger or contacts into a CRM. What exists instead is a Pro sales export to CSV, including the answers to any custom questions, plus the sale webhooks if you would rather have the data arrive as it happens.
No conflict detection
Two-way sync copies events between calendars. It does not compare them, and nothing on this page will warn you that you have accepted two things at the same hour. If a clash matters, the calendar you already read every morning is still the place you will spot it.
Key features
Free forever. Upgrade when you're ready.
Zero platform fees on ticket sales. You only pay Stripe's processing fee.
See all plansFrequently asked questions
What people ask before they wire anything up.
Which integrations are free?
Two-way calendar sync with Google Calendar, Outlook or Microsoft 365 and any CalDAV server is free on every plan, and so is the nearby-accommodation map. So are the two money ports: selling starts free at twenty-five paid tickets a month per schedule, with zero platform fees on every plan. Pro at $5 a month takes that ceiling off and adds webhooks, the REST API, web push, Eventbrite import and ad boosting. Creating events over WhatsApp is the one Enterprise port, at $15. Selfhosted installs resolve to the top tier, so every port is on from the first boot.
Is the calendar sync really two-way?
Yes, and you choose the direction per schedule: import only, export only, or both. Outbound happens when you save an event. Inbound arrives through a Google watch channel or a Microsoft Graph change subscription, backed up by a sweep every fifteen minutes. CalDAV inbound is polled only, because CalDAV has no notification standard to subscribe to.
Where does the ticket money actually go?
Into your own Stripe account. On the hosted platform the charge is created on your connected account, so payouts land on your Stripe schedule and Event Schedule takes zero platform fees; you pay Stripe its processing fee and nothing else. A selfhosted install uses your own Stripe keys directly, with nothing in between at all.
Can I connect a tool that is not on this page?
That is what the terminal block is for. A webhook POSTs to any URL you own on twelve event types, signed with HMAC-SHA256 so you can verify it came from us, and the REST API lets your own code read and write schedules, events and sales with a key in an X-API-Key header. There is no Zapier or Make app; those two ports are the general-purpose route, and both are on the Pro plan.
Do you integrate with Zoom, YouTube or Twitch?
No, and it is worth being plain about it. An online event carries one link field: mark the event as online and paste the URL to wherever you are streaming. The one place that field gets filled in for you is Outlook, where turning on Teams meetings writes the join link into it for events that have no venue.
What happens if I delete an event in my calendar?
You decide, per schedule. An event deleted in the calendar you import from can be kept in Event Schedule, marked as cancelled so it is hidden but reversible, or deleted outright. Events that have ticket sales or a running ad boost are hidden instead of deleted, so a stray drag in a calendar app cannot take a sold show with it.
Free forever
Pick a port. Wire it up.
Calendar sync, the accommodation map and your first twenty-five ticket sales a month are free forever. Five dollars a month takes the ticket ceiling off and adds webhooks, the API, push and the imports. Nothing is taken from the door on any plan.
No credit card required