AddCal
AddCal is a calendar and event management platform. Advanced Form Integration creates events on your AddCal calendars directly from WordPress form submissions, so bookings, appointments, and registrations are added to your calendar automatically without manual entry.
What you’ll need
- An active AddCal account.
- An AddCal API Token (see below).
- The Advanced Form Integration plugin installed and activated.
Get your AddCal API token
AddCal authenticates API requests with a bearer token.
- Sign in to your AddCal dashboard.
- Open the user menu and go to API Token.
- Generate a new token and copy it.
- In WordPress, go to AFI → Settings → AddCal.
- Click Add New Account, paste the token, and give the account a name.
- Click Save.
See the AddCal API docs for field descriptions and examples.
Create the integration
- Go to AFI → Add New.
- Give the integration a name, for example
Booking form to AddCal. - Under Trigger, pick the form plugin and the specific form you want to listen on.
- Under Action → Platform, select AddCal.
- In Task, choose Create Event.
- Pick the saved account in the AddCal Account dropdown.
- Optional: check Include HTML Snippets to append
?with_html=trueto the API call, which returns HTML button templates in the response. - Map your form fields onto the AddCal fields listed below.
- Optional: open Conditional Logic to limit which submissions are sent.
- Click Save Integration.
Tasks supported
Create Event
Creates a new event on your AddCal calendar via POST /api/events. The event appears in your dashboard immediately. Start and end times inherit the calendar timezone unless you supply a timezone field.
Required fields
| Field | Field key | Notes |
|---|---|---|
| Title | title |
Event title |
| Start | date_start |
ISO 8601 datetime |
| End | date_end |
ISO 8601 datetime |
Optional fields
| Field | Field key | Notes |
|---|---|---|
| Description | description |
|
| Location | location |
|
| All Day | is_all_day |
Boolean (true/false) |
| Timezone | timezone |
Overrides the calendar timezone for this event |
| Busy Type | busy_type |
|
| Calendar UID | calendar_uid |
Target a specific calendar by its UID |
| Calendar Name | calendar_name |
If no UID is given, AddCal auto-creates or reuses a calendar with this name |
| Team UID | team_uid |
|
| Recurrence Rule | recurrence_rule |
RRULE-style recurrence definition |
| Has RSVP | has_rsvp |
Boolean |
| RSVP Limit | rsvp_limit |
Integer |
| Reminder Before | reminder_before |
Minutes before the event (non-negative integer) |
| Short Link | short_link |
|
| Image URL | image_url |
|
| Location URL | location_url |
|
| Internal Name | internal_name |
|
| Is Draft | is_draft |
Boolean; creates the event as a draft |
Calendar selection
You can target a calendar in two ways. Provide a Calendar UID to assign the event to an existing calendar by its unique identifier. Alternatively, provide a Calendar Name and AddCal will auto-create or reuse a calendar with that name. If neither is supplied, the event is created on your default calendar.
Conditional logic example
Only create events for confirmed bookings. Add a condition: Booking Status is confirmed. Pending or cancelled submissions are skipped, keeping your calendar clean.
Troubleshooting
Nothing arrives in AddCal
Open AFI → Log and find the most recent entry for this integration. AFI stores the request it sent and the raw response it got back, so the AddCal error message is right there. If there is no log entry at all, the trigger never fired: re-check the form selection and submit a real test entry from the front end rather than the form builder preview.
“API token is missing”
Verify that you saved the API token in AFI → Settings → AddCal and that the correct account is selected in the integration. If the token was regenerated in AddCal, update it in the settings.
Missing required field error
AFI validates that title, date_start, and date_end are mapped and non-empty before sending. If any of these are blank in the form submission, the request is not sent and the error is logged.