Tasks
Tasks are called activities in the API. A task belongs to one calendar and is assigned to one or more people.
The task object
{
"id": "0195f0a1-7c2e-7b3a-9d41-6f0a2c8e4810",
"calendar_id": "0195f0a1-7c2e-7b3a-9d41-6f0a2c8e1b07",
"title": "Install sign",
"description": "Gate code 4411. Call Dana on arrival.",
"starts_at": "2026-10-16T14:00:00+00:00",
"ends_at": "2026-10-16T15:30:00+00:00",
"is_all_day_event": false,
"type": "field",
"color": "0284c7",
"staff": [{ "id": "0195f0a1-7c2e-7b3a-9d41-6f0a2c8e1b12", "name": "Dana Driver" }],
"address": { "text": "1 Main St, Fayetteville, AR", "latitude": 36.06, "longitude": -94.16 },
"outcome": "scheduled",
"status": "scheduled",
"completion_note": null,
"follow_up_required": false,
"follow_up_note": null,
"follow_up_of_id": null,
"series_id": null,
"completed_at": null,
"reviewed_at": null
}
type is one of in_store, field, sacred or personal. Field tasks need an address. outcome is scheduled, completed, partial, missed or cancelled. status is where the task is in review: scheduled, not_done, done, flagged or reviewed.
List tasks
GET /api/v1/activities
Needs activities:read. Returns tasks on calendars you can reach, oldest first.
| Parameter | Description |
|---|---|
calendar_id |
Only this calendar. |
date |
Only tasks starting this day (YYYY-MM-DD), read in the calendar's timezone. |
person_id |
Only tasks this person is assigned to. |
per_page |
Page size, 1 to 200. Default 50. |
Other people's personal time is left out unless you may see it.
Get a task
GET /api/v1/activities/{id}
Needs activities:read.
Create a task
POST /api/v1/activities
Needs activities:create, and permission to create tasks on the calendar.
| Field | Description |
|---|---|
calendar_id |
Required. |
title |
Required, up to 255 characters. |
description |
Details and instructions for whoever does it. Up to 1000 characters. |
starts_at |
Required. ISO 8601 with an offset. |
duration_minutes |
Required unless is_all_day_event is true. 1 to 1440. |
is_all_day_event |
Optional. |
type |
Required. in_store, field, sacred or personal. |
color |
Optional six-digit hex such as 0284c7. |
staff_ids |
Required. People on the calendar to assign. |
address |
Required for field tasks: line_1, city, region, and optionally line_2 and postal_code. |
A task cannot land on someone's sacred time, and the calendar must be open that day. Returns 201 with the task.
curl -X POST https://your-company.dapapp.com/api/v1/activities \
-H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json" \
-d calendar_id=0195f0a1-7c2e-7b3a-9d41-6f0a2c8e1b07 -d "title=Install sign" -d type=field \
-d "starts_at=2026-10-16T09:00:00-05:00" -d duration_minutes=90 \
-d "staff_ids[]=0195f0a1-7c2e-7b3a-9d41-6f0a2c8e1b12" -d "address[line_1]=1 Main St" \
-d "address[city]=Fayetteville" -d "address[region]=AR"
Change a task
PATCH /api/v1/activities/{id}
Needs activities:update. Send only the fields you want to change; the rest stay as they are. Same fields as creating, except calendar_id, which cannot change.
Delete a task
DELETE /api/v1/activities/{id}
Needs activities:delete, and permission to delete the task. Returns 204.