Action Reference
All action types available when building automation rules in PrimeCal.
Action Types
| Enum Value | Wire String | Status | Description |
|---|---|---|---|
SET_EVENT_COLOR | set_event_color | Implemented | Sets the event's color to a specific value |
ADD_EVENT_TAG | add_event_tag | Defined | Adds a tag/label to the event |
SEND_NOTIFICATION | send_notification | Defined | Sends a notification to the user |
UPDATE_EVENT_TITLE | update_event_title | Defined | Overwrites the event's title |
UPDATE_EVENT_DESCRIPTION | update_event_description | Defined | Overwrites the event's description |
CANCEL_EVENT | cancel_event | Defined | Cancels/deletes the event |
MOVE_TO_CALENDAR | move_to_calendar | Defined | Moves the event to a different calendar |
CREATE_TASK | create_task | Defined | Creates a task from the event |
WEBHOOK | webhook | Implemented | Sends a configurable HTTP request (method + optional auth) to a URL — also used for smart-home REST integrations |
INSTANTIATE_ROUTINE | instantiate_routine | Implemented | Starts a routine template right now, the same as "Start now". Not yet in the action picker UI — create via the Automation API |
SET_RESCHEDULABLE | set_reschedulable | Implemented | Marks the matched event as allowed (or not allowed) to be moved by smart reschedule. Changes eligibility only — nothing moves until a person confirms a plan |
Status legend:
- Implemented: This action is active and can be used in your automation rules today.
- Defined: This action type is planned for a future release. If you add it to a rule now, it will fail silently and be logged in the audit trail.
Action Config by Type
set_event_color
{
"color": "blue"
}
color must be a valid PrimeCal color identifier. Accepted values (hex or named):
| Name | Hex |
|---|---|
red | #ef4444 |
orange | #f59e0b |
yellow | #eab308 |
lime | #84cc16 |
green | #10b981 |
emerald | #22c55e |
teal | #14b8a6 |
cyan | #06b6d4 |
sky | #0ea5e9 |
blue | #3b82f6 |
indigo | #6366f1 |
violet | #7c3aed |
purple | #8b5cf6 |
pink | #ec4899 |
rose | #f43f5e |
slate | #64748b |
set_reschedulable
{
"reschedulable": true
}
reschedulable is required and must be a real JSON boolean. It is validated strictly and never coerced: "yes", "false", "true", 1, 0, null or a missing key all make the action fail, and nothing is written. (A string like "false" reading as true would silently make events movable, so there is deliberately no lenient mode.) Smart values are not interpolated into this field for the same reason.
The action updates only the one event the rule matched, and only its reschedulable flag. It fails if the trigger carried no event (for example webhook.incoming). It makes an event eligible for smart reschedule — the confirmation dialog still decides every actual move, and a reschedule that does happen can fire event.rescheduled rules (see the Trigger Reference).
This action is not in the sensitive-action list (webhook, cancel_event, move_to_calendar), so a rule using it does not need approval before it runs.
Example — every new event whose title contains "Admin" becomes movable:
{
"triggerType": "event.created",
"conditionLogic": "AND",
"conditions": [
{ "field": "event.title", "operator": "contains", "value": "Admin" }
],
"actions": [
{ "actionType": "set_reschedulable", "actionConfig": { "reschedulable": true } }
]
}
webhook (outbound)
{
"url": "https://example.com/hook",
"method": "POST",
"headers": { "Authorization": "Bearer token" },
"body": { "eventId": "{{event.id}}" }
}
Note: Do not confuse with the webhook.incoming trigger (inbound). This action sends an outbound HTTP request.