Automation Recipes
Five copyable starting points for the Call Webhook action — each one a goal, what you need before you start, the exact steps, and a ready-to-adapt configuration. See Smart-Home Automation for how Call Webhook works in general, and Webhooks for the separate, incoming side (letting an outside system trigger a PrimeCal rule).
PrimeCal's outgoing webhook action always sends Content-Type: application/json with a JSON-encoded body — there's no way to switch it to form-encoding. Every recipe below either calls a JSON-native API directly, or routes through a middleman service for a target that doesn't speak JSON.
1. Home Assistant: Turn On A Device
Goal: have PrimeCal call a Home Assistant REST command or webhook when an event or task starts.
Before you start: your Home Assistant instance must be reachable over HTTPS from the internet (a local-only address like homeassistant.local is rejected — see Smart-Home Automation for why, and how to expose it with Home Assistant Cloud or your own reverse proxy). You'll need a long-lived access token from Home Assistant.
Steps:
- Create or open an automation rule with a trigger that fits your use case (
event.starts_in,task.scheduled_start, orwebhook.incomingfor a trigger from Home Assistant itself). - Add a Call Webhook action.
- Fill in the configuration below, with your own instance URL, token, and entity id.
- Save — a webhook action is a sensitive action, so the rule needs approval before it runs for real (see Automation Rules for the approval step).
{
"url": "https://<your-instance>.ui.nabu.casa/api/webhook/<webhook-id>",
"method": "POST",
"authType": "bearer",
"authToken": "YOUR_HOME_ASSISTANT_LONG_LIVED_TOKEN",
"customPayload": { "entity_id": "switch.washing_machine" }
}
Limits: one action fires one request — chain several Call Webhook actions in the same rule to control more than one entity.
The other direction: if you'd rather have Home Assistant call PrimeCal (so PrimeCal's webhook.incoming trigger fires, or you just want Home Assistant to react to something PrimeCal sends it), download the PrimeCal Webhook Action blueprint and import it into Home Assistant — see Smart-Home Automation for the import steps. It gives you a webhook endpoint on the Home Assistant side and lets you pick any action to run, with PrimeCal's payload available as a template variable.
2. Slack: Post A Message
Goal: have PrimeCal post a Slack message when an event is created, a task's status changes, or any other trigger fires.
Before you start: an Incoming Webhook URL for the Slack channel you want to post to (Slack workspace settings → Apps → Incoming Webhooks → Add to Slack). This is a single URL with a channel already baked in — no bot token, no OAuth.
Steps:
- Create or open a rule with the trigger you want (e.g.
event.created). - Add a Call Webhook action.
- Paste your Incoming Webhook URL as
url, leaveauthTypeasnone(the URL itself is the secret), and set acustomPayloadwith atextfield. Smart values work inside the text.
{
"url": "https://hooks.slack.com/services/T000/B000/XXXXXXXXXXXXXXXXXXXXXXXX",
"method": "POST",
"authType": "none",
"customPayload": { "text": "New event: {{event.title}} at {{event.startTime}}" }
}
Limits: an Incoming Webhook URL posts only to the channel it was created for — create a separate webhook (and a separate action, or a separate rule) for each channel you want to reach.
3. SMS Reminder Via Vonage
Goal: send a text message reminder a configurable time before an event starts.
Before you start: a Vonage account with the Messages API enabled, an application ID and private key exchanged for a short-lived JWT (Vonage's Messages API reference covers generating one), and an approved sender id or number for your country.
Twilio's REST API and Vonage's classic SMS API (rest.nexmo.com/sms/json) both expect application/x-www-form-urlencoded, which Call Webhook cannot send. Vonage's newer Messages API (api.nexmo.com/v1/messages) accepts a JSON body with Bearer auth, so it's the one that works directly from this action with no middleman in between.
{
"url": "https://api.nexmo.com/v1/messages",
"method": "POST",
"authType": "bearer",
"authToken": "YOUR_SHORT_LIVED_JWT",
"customPayload": {
"message_type": "text",
"text": "Reminder: {{event.title}} starts at {{event.startTime}}",
"to": "YOUR_RECIPIENT_NUMBER",
"from": "YOUR_SENDER_ID",
"channel": "sms"
}
}
Limits: a Vonage Messages API JWT is short-lived (typically under an hour) — a rule you expect to keep working needs a process on your side that refreshes the JWT and updates the rule's authToken, since PrimeCal doesn't manage this for you.
4. Invoicing Via A Middleman Service
Goal: start an invoicing workflow in a Hungarian invoicing service after a booking or event you care about.
PrimeCal does not issue invoices and has no direct connection to any invoicing provider. This recipe routes PrimeCal's webhook through a general-purpose automation service (Make, Zapier, or n8n), which then calls the invoicing provider's own API. Set up and maintain that middle step on the provider's own platform — PrimeCal's part ends at sending the webhook.
Before you start: an account with Make, Zapier, or n8n, with a scenario/zap/workflow already built there that accepts an incoming webhook and does whatever your invoicing provider needs. That middleman gives you its own webhook URL to trigger it.
Steps:
- Create or open a rule with the trigger you want (e.g.
event.createdon a calendar you use for billable work, ornotification.dispatchedfiltered tonotification.typeequalsreservation.createdif you want to react to a new booking). - Add a Call Webhook action with the middleman's webhook URL.
- Build the payload with whatever fields your middleman scenario expects — smart values can fill in the booking or event details.
{
"url": "https://hook.<make-or-zapier-or-n8n>.example/your-scenario-id",
"method": "POST",
"authType": "none",
"customPayload": {
"event_title": "{{event.title}}",
"event_date": "{{event.date}}",
"trigger": "{{trigger.type}}"
}
}
Limits: whether reservation.created fires strictly after payment, or can fire before it, is not guaranteed by PrimeCal today — add a condition on whatever payment-status field your reservation data actually carries, and test the full chain with a real booking before relying on it.
5. Wallboard Or Kiosk: Pair A Device And Pick A Screen
Goal: put a tablet, Raspberry Pi, or smart TV browser into always-on kiosk mode, showing a Screen built from one of PrimeCal's system templates.
Steps:
- Pair the device — see Pairing a Device for the full 8-character-code flow.
- Open Screens from the main navigation, go to the Templates tab, and click Apply to a Screen on one of the three system templates available today — Family Wallboard, Team Standup Board, or Focus Today — or build your own layout from gadgets instead.
- Assign that Screen to the paired device.
The device then polls PrimeCal for its assigned Screen's content and renders it read-only, with no user session of its own — see Pairing a Device and Templates And Sharing for how templates, ownership, and sharing work.
See Also
- Smart-Home Automation — how the Call Webhook action works, and its safety rules
- Webhooks — the separate, incoming side: letting an outside system trigger a rule
- Smart Values — the full
{{...}}syntax used in the recipes above - Pairing a Device — the kiosk pairing flow in full