Toggl - All tasks since Monday

3 weeks ago


Kept it simple. Find your API key on your profile settings. Text is white to hide my tasks from the screenshot.


$key = env('TOGGL_KEY');
$workspace = env('TOGGL_WORKSPACE');
$curl = curl_init();

if (!$curl) {
	die("Couldn't initialize a cURL handle");

// Set the file URL to fetch through cURL
$monday = date('c', strtotime('last monday'));
$now = date('c', strtotime("now"));
$query = http_build_query(['start_date' => $monday, 'end_date' => $now]);
curl_setopt($curl, CURLOPT_URL, "{$query}");

// Set a password
curl_setopt($curl, CURLOPT_USERPWD, $key . ":api_token");

// Set a different user agent string (Googlebot)
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+');

// Follow redirects, if any
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

// Fail the cURL request if response code = 400 (like 404 errors)
curl_setopt($curl, CURLOPT_FAILONERROR, true);

// Return the actual result of the curl result instead of success code
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// Wait for 10 seconds to connect, set 0 to wait indefinitely
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);

// Execute the cURL request for a maximum of 50 seconds
curl_setopt($curl, CURLOPT_TIMEOUT, 50);

// Do not check the SSL certificates
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

// Fetch the URL and save the content
$response = curl_exec($curl);

// Check if any error has occurred
if (curl_errno($curl)) {
	echo 'cURL error: ' . curl_error($curl);
} else {
	$entries = [];
	foreach(json_decode($response) as $entry) {
		if ($entry->wid == $workspace && !in_array($entry->description, $entries))
			array_push($entries, $entry->description);

// close cURL resource to free up system resources

return view('__tinker__::tinker', [
    'entries' => $entries,


      <div style="padding:2rem">
        **Weekly Task log**
  		<ul style="color:white;list-style:none;margin:0;padding:0">
        @foreach($entries as $entry)
			<li>> {{ $entry }}</li>