Connected Apps & Modules
The NIZU Appointments App is deliberately thin on things of its own. Providers, permissions,
emails, currency and payment credentials all come from the platform, so there is one place to
maintain each of them. This page lists everything it plugs into.
Core NIZU modules
- Team Management — staff members are the appointment
providers. There is no separate provider list to maintain and no per-provider licence: each
service is linked to one or more team members, and their working hours drive availability.
Deactivating a team member takes them out of the booking page.
- Roles & Permissions — access to the App, the dashboard, adding
and editing bookings, provider hours, services, holidays, payments and settings is controlled
by eleven permission keys in the standard NIZU role editor. Nothing is stored in a permission
system of its own.
- Email Templates — the five client and provider emails (booking
requested to the client, booking requested to the provider, status updated, reminder, payment
received) are ordinary NIZU email templates, edited in
Settings → Email Templates → Appointments with the usual merge fields and
per-language versions.
- Settings → Payment Methods — the Stripe credentials used at
checkout are the workspace's existing ones. Appointments has no second place to store a
secret key.
- General settings — the workspace timezone drives every date shown,
and the default currency is used for prices unless you set an Appointments currency
explicitly.
- The platform cron — three background jobs ride on it: sending
appointment reminders, releasing slots whose payment never arrived, and retrying calendar
syncs that failed on the live request. If the cron is not running, none of the three happen
and none of them raise an error.
Payment Apps and gateways
Stripe
Uses the workspace's existing Settings → Payment Methods → Stripe
credentials and the Stripe SDK that already ships with the core app, so the App adds no vendor
code and no duplicate key. Clients pay through Stripe Checkout and return to their booking.
Add the webhook URL printed on the Payments settings tab to your Stripe dashboard so payments
still land when the client never returns to the browser.
Mollie
Uses the API key held by the Mollie Payment Gateway App's payment-method
row, but talks to the Mollie REST API directly — so it works whether or not that App's
own SDK is loadable. Install and configure the Mollie App first, then tick Mollie in the
Appointments payment settings.
A gateway that is ticked but has no credentials is simply not offered to clients. Payment
status is always re-read from the gateway API: the return URL and the webhooks supply only an
identifier, and an amount that does not cover the price is never accepted as paid. Cash and
bank transfers are recorded by hand with Mark as paid.
Telegram Notification App
When the Telegram Notification App is installed and configured, Appointments can send an
instant message to your team's chat on every new booking. Switch it on under
Appointments → Settings → Notifications. Without that App the option is
simply not available; email notifications are unaffected.
Google Calendar & Microsoft (Outlook) Calendar
The Appointments App can sync two ways with each provider's own Google or Microsoft
calendar using the official Google Calendar API and Microsoft Graph API.
What it does
- Writes appointments out — every booking is written to the assigned
provider's connected calendar. Pending requests appear as tentative and become confirmed once
approved. Cancelled, rejected or deleted appointments are removed from the calendar.
- Reads busy times back — when a client picks a time on the public
booking form, the provider's existing external calendar events block any overlapping slots, so
a provider is never double-booked.
How connections work
- An administrator registers an OAuth application in the Google Cloud console and/or the
Microsoft Entra portal, then enters the Client ID and Client Secret in
Appointments → Settings → Calendar Integration and enables calendar sync.
The exact redirect URI to register is shown on that settings page.
- Each staff member then connects their own calendar from the Calendar Sync page.
Connecting authorizes the account that is signed in to the browser and binds it to that staff
member.
- Tokens are stored per staff member and refreshed automatically. A provider can disconnect
at any time, and administrators can view and disconnect any staff connection.
Notes
- The Google Calendar scope is a sensitive scope; for production use with more than a small
number of test users, the Google OAuth app must be verified by Google.
- Microsoft uses the common tenant, so both work/school (Microsoft 365) and personal
(outlook.com, hotmail.com, live.com) accounts can connect. Some organizations may require
tenant admin consent.
- OAuth credentials and redirect URIs are specific to each workspace domain.
- A sync that fails on the live request is retried by the platform cron rather than being
lost.
What Appointments does not connect to (yet)
Worth stating plainly so you can plan around it:
- A booking is not automatically linked to a Client record or a Lead. The
client's name, email, phone and organisation are captured on the booking itself, and the
public booking page needs no account.
- A booking does not automatically raise an Invoice. Payment for a booking
is handled inside the App and listed on its own Payments screen; billing that follows a
meeting is created in the Invoices module as normal.
- There is no automatic Project or Task creation from a booking.
Video-meeting links, SMS and WhatsApp reminders, and deposits with refunds are on the
roadmap rather than in the App today.
Wednesday, 9 September 2026, 6:58 AM
Created by: Ruvenss G. Wilches