An R wrapper around the Clockify API.
The documentation for {clockify}
is hosted at https://datawookie.github.io/clockify/.
You’re going to need to have an API key from your Clockify account. If you don’t yet have an account, create one. Then retrieve the API key from the account settings.
The first thing you’ll need to do is set up your API key. I store mine in an environment variable called CLOCKIFY_API_KEY
.
CLOCKIFY_API_KEY <- Sys.getenv("CLOCKIFY_API_KEY")
Now load the {clockify}
package and specify the API key.
library(clockify)
set_api_key(CLOCKIFY_API_KEY)
Let’s turn on some logging so we can see what’s happening behind the scenes.
library(logger)
log_threshold(INFO)
Retrieve a list of available workspaces.
# A tibble: 3 × 3
workspace_id name memberships
<chr> <chr> <list>
1 5ef46294df73063139f60bfc Fathom Data <tibble [22 × 6]>
2 61343c45ab05e02be2c8c1fd Personal <tibble [2 × 4]>
3 630c61ba9c3a3c3112812332 {clockify} sandbox <tibble [5 × 6]>
Select a specific workspace.
workspace("630c61ba9c3a3c3112812332")
Retrieve information on your user profile.
user()
# A tibble: 1 × 3
user_id user_name status
<chr> <chr> <chr>
1 5f227e0cd7176a0e6e754409 Andrew Collier ACTIVE
Get a list of users.
users()
# A tibble: 5 × 3
user_id user_name status
<chr> <chr> <chr>
1 5f227e0cd7176a0e6e754409 Andrew Collier ACTIVE
2 630f17f04a05b20faf7e0afc Bob Smith ACTIVE
3 630f16ab90cfd878937a7997 <NA> NOT_REGISTERED
4 630f1cb9cb18da61cfd58659 Carol Brown PENDING_EMAIL_VERIFICATION
5 630f15d3b59c366b0e3ae2e6 Alice Jones ACTIVE
Retrieve the time entries for the authenticated user.
Retrieve time entries for another user specified by their user ID.
time_entries(user_id = "630f15d3b59c366b0e3ae2e6")
prepare_cran_entry <- time_entry_create(
project_id = "630ce53290cfd8789366fd49",
start = "2021-08-30 08:00:00",
end = "2021-08-30 10:30:00",
description = "Prepare for CRAN submission"
)
Check on the ID for this new time entry.
prepare_cran_entry$time_entry_id
Confirm that it has been inserted.
time_entries(concise = FALSE) %>%
select(time_entry_id, description, time_start, time_end)
time_entry_delete(prepare_cran_entry$time_entry_id)
Confirm that it has been deleted.
time_entries(concise = FALSE) %>%
select(time_entry_id, description, time_start, time_end)