Available since Basecamp 5: per-account calendars are accessible via
/calendars/:id.json, where :id is the calendar bucket's id (a Calendar is a
bucketable of its own — distinct from a project). The
calendar exposes display metadata (name, color) and a link to its underlying
schedule resource.
Endpoints:
GET /calendars/2.jsonreturns the calendar with the bucket id2.
{
"id": 2085958497,
"type": "Calendar",
"name": "Honcho Design Calendar",
"color": "blue",
"created_at": "2026-05-28T17:22:22.133Z",
"updated_at": "2026-07-20T04:05:52.374Z",
"url": "https://3.basecampapi.com/195539477/calendars/2085958497.json",
"app_url": "https://3.basecamp.com/195539477/calendars/2085958497",
"schedule_url": "https://3.basecampapi.com/195539477/schedules/1069478892.json"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" https://3.basecampapi.com/$ACCOUNT_ID/calendars/2.jsonPUT /calendars/2.jsonupdates the calendar with the bucket id2.
| Param | Type | Description |
|---|---|---|
color |
String | One of white, red, orange, yellow, green, blue, aqua, purple, gray, pink, brown. |
Submitting an unknown color returns 422 Unprocessable Entity with a JSON
errors payload.
{
"calendar": {
"color": "blue"
}
}Returns 200 OK with the updated calendar's JSON shape.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"calendar":{"color":"blue"}}' -X PUT \
https://3.basecampapi.com/$ACCOUNT_ID/calendars/2.json