Today's Tasks
📋
Configure Notion in Settings,
then click Refresh
Or add task manually
—
Pick a task
Time Reports
Time by Category
Planning Accuracy (avg min over/under)
Daily Hours Focused
Insights
Session Log
Notion Connection
Workspaces
Each workspace can point to a different Notion database. Leave DB ID blank to use the default above.
Field Mapping
Proxy Setup (Cloudflare Worker — free)
Notion's API doesn't allow browser apps to call it directly (a security rule called CORS). A free Cloudflare Worker acts as a relay — you set it up once in ~2 minutes.
- Go to workers.cloudflare.com → sign up free → click Create Worker
- Delete the default code, paste the script below
- Click Deploy → copy the worker URL (e.g.
https://my-worker.workers.dev) - Paste that URL into the Proxy URL field on the left
Worker script:
export default {
async fetch(request) {
if (request.method === 'OPTIONS') {
return new Response(null, { headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Methods': 'GET,POST,PATCH,PUT,DELETE,OPTIONS'
}});
}
const url = new URL(request.url);
const notionUrl = 'https://api.notion.com' + url.pathname + url.search;
const res = await fetch(notionUrl, {
method: request.method,
headers: request.headers,
body: ['GET','HEAD'].includes(request.method) ? undefined : request.body,
});
const out = new Response(res.body, res);
out.headers.set('Access-Control-Allow-Origin', '*');
out.headers.set('Access-Control-Allow-Headers', '*');
return out;
}
}
Notion Database Setup
- In your Notion database, add these fields (if not already present):
Estimated (Number, unit: minutes) • Actual (Number) • Category (Select: Meeting, Research, Preparation, Admin, Development, Review) • Status (Status: default — or Select with Todo/In Progress/Done) - Go to notion.so/my-integrations → New integration → copy the token → paste it on the left
- In your database: Share → Invite your integration
Danger Zone