Basecamp API

Legacy Calendar Entries API Calls

The API described in this document is obsolete. It is documented here only for the support of legacy applications that might be using it. New applications are encouraged to use the newer, REST-based API. Older applications, too, are encouraged to switch to the newer API.

List

GET /projects/#{project_id}/milestones/list.xml

This lets you query the list of milestones for a project. You can either return all milestones, or only those that are late, completed, or upcoming.

Request

<request>
  <!-- optional, defaults to all -->
  <find>#{all|late|completed|upcoming}</find>
</request>

Response

<milestones>
  <milestone>
    ...
  </milestone>
  <milestone>
    ...
  </milestone>
  ...
</milestones>

Complete

PUT /milestones/complete/#{id}

Marks the specified milestone as complete.

Response

<milestone>
  ...
</milestone>

Uncomplete

PUT /milestones/uncomplete/#{id}

Marks the specified milestone as uncomplete.

Response

<milestone>
  ...
</milestone>

Create

POST /projects/#{project_id}/milestones.xml

Creates a single milestone. To create multiple milestones in a single call, see the “create (batch)” function. To make a company responsible for the milestone, prefix the company id with a “c”.

Request

<request>
  <milestone>
    <title>#{title}</title>
    <deadline type="date">#{deadline}</deadline>
    <responsible-party>#{id}</responsible-party>
    <notify>#{true|false}</notify>
  </milestone>
</request>

Response

<milestones>
  <milestone>
    ...
  </milestone>
</milestones>

Create (batch)

POST /projects/#{project_id}/milestones.xml

With this function you can create multiple milestones in a single request. See the “create” function for a description of the individual fields in the milestone.

Request

<request>
  <milestone>
    <title>#{title}</title>
    <deadline>#{deadline}</deadline>
    <responsible-party>#{id}</responsible-party>
    <notify>#{true|false}</notify>
  </milestone>
  <milestone>
    <title>#{title}</title>
    <deadline>#{deadline}</deadline>
    <responsible-party>#{id}</responsible-party>
    <notify>#{true|false}</notify>
  </milestone>
  ...
</request>

Response

<milestones>
  <milestone>
    ...
  </milestone>
  <milestone>
    ...
  </milestone>
  ...
</milestones>

Update

POST /milestones/update/#{id}

Modifies a single milestone. You can use this to shift the deadline of a single milestone, and optionally shift the deadlines of subsequent milestones as well.

Request

<request>
  <milestone>
    <title>#{title}</title>
    <deadline>#{deadline}</deadline>
    <responsible-party>#{responsible_party}</responsible-party>
    <notify>#{true|false}</notify>
  </milestone>
  <move-upcoming-milestones>#{true|false}</move-upcoming-milestones>
  <move-upcoming-milestones-off-weekends>#{true|false}</move-upcoming-milestones-off-weekends>
</request>

Response

<milestone>
  ...
</milestone>

Delete

POST /milestones/delete/#{id}

Deletes the given milestone from the project.

Response

<milestone>
  ...
</milestone>