Skip to main content
Was this helpful?

Custom Integrations

PrimeCal provides several integration points for connecting to your own tools, business systems, or custom workflows:

  • REST API: read and write calendar data programmatically.
  • Personal API keys: authenticate securely without sharing your password.
  • Automation webhooks (outgoing): send event data to external systems when calendar events change.
  • Automation webhooks (incoming): trigger PrimeCal automation rules from external systems.

Personal API keys​

To call the PrimeCal API, you need an API key. Keys are tied to your account and carry the same permissions as your user.

Generate an API key:

  1. Go to Settings → API Keys.
  2. Click Generate New Key.
  3. Give it a descriptive name (e.g., "My Homelab Script" or "CRM Integration").
  4. Copy and save the key — it's shown only once.
note

The api_access feature is required to generate API keys. This feature is available on plans that include it. Check Settings → Subscription to see your plan's features.

Making API requests​

Use your API key in the Authorization header of every request:

curl \
-H "Authorization: Bearer YOUR_API_KEY" \
https://app.primecal.eu/api/events

This returns a JSON list of your events. The full API reference is in the Developer Guide, but common endpoints include:

EndpointMethodWhat it does
/api/eventsGETList events
/api/eventsPOSTCreate an event
/api/events/:idPATCHUpdate an event
/api/events/:idDELETEDelete an event
/api/calendarsGETList your calendars

Automation webhooks — outgoing​

You can trigger an HTTP POST to any external URL when a PrimeCal event changes. This is how the Slack and Teams integrations work.

Set this up in Automation → New Rule → add an action of type Send Webhook.

Use cases:

  • Notify a CRM when a client meeting is created.
  • Update a project management tool when a deadline event changes.
  • Post to a custom logging endpoint whenever events are modified.

Smart values let you include event data in the payload:

{
"event_title": "{{event.title}}",
"start": "{{event.start_date}} {{event.start_time}}",
"calendar": "{{calendar.name}}"
}

See Automation Webhooks for the full list of available smart values.

Automation webhooks — incoming​

External systems can trigger PrimeCal automation rules by POSTing to a unique webhook URL. Each automation rule has its own secure token-based endpoint:

POST https://app.primecal.eu/api/automation/webhooks/{token}/receive
Content-Type: application/json

{
"event": "order.completed",
"data": {
"customer_name": "Jane Smith",
"appointment_date": "2026-07-15"
}
}

The token is unique per rule and is shown in the rule's detail view. You can regenerate it if needed.

Use cases:

  • An e-commerce system sends a webhook when an order is placed → PrimeCal creates a "Prepare order" event.
  • A form submission tool sends customer data → PrimeCal automation checks the data and colors the event accordingly.
  • A support ticket system triggers a rule → PrimeCal creates a follow-up reminder event.

Example: syncing with a custom business system​

A small business uses a custom booking database. When a new client appointment is confirmed in the database, a script posts to PrimeCal's incoming webhook, which triggers an automation rule to create a "Client Appointment" event on the "Business" calendar.

import requests

webhook_url = "https://app.primecal.eu/api/automation/webhooks/YOUR_TOKEN/receive"
payload = {
"event": "appointment.confirmed",
"data": {
"client_name": "Jane Smith",
"service": "Consultation",
"datetime": "2026-07-15T10:00:00"
}
}
requests.post(webhook_url, json=payload)

Plan requirements​

  • API keys: requires the api_access feature.
  • Automation webhooks (outgoing and incoming): requires the automation feature.
  • Both features are available on appropriate paid plans.