Skip to main content
FillTheTimesheet
FillTheTimesheet

OAuth Scope Justification

Detailed documentation of every permission we request and why — Last updated: March 25, 2026

Overview

FillTheTimesheet requests only the minimum OAuth scopes necessary to provide its core functionality: converting calendar events and task data into formatted timesheet exports. When users opt into AI features (Smart Categorization, AI Summary), calendar event metadata may be sent to Google's Gemini API for processing.

By default, calendar data is processed in the user's browser and is not sent to our servers. Our server-side component handles OAuth code exchange (keeping client_secret secure), AI feature requests (forwarding event metadata to Google Gemini for real-time processing), and automated email reports (storing encrypted tokens to fetch events on the user's behalf). See our Privacy Policy for full details.

FillTheTimesheet's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

Data Handling Principles

  • We request read-only scopes wherever possible. We never modify, create, or delete user data on any provider.
  • By default, all user data is processed client-side in the browser. Optional features (AI categorization, automated email reports) involve limited server-side processing — see our Privacy Policy for details.
  • OAuth tokens are encrypted at rest in the browser using AES-256-GCM with a session-scoped key.
  • We do not use any user data for advertising, analytics, or any purpose other than timesheet generation.
  • We do not transfer user data to third parties except as required by the OAuth flow itself, for AI processing via Google Gemini (opt-in), and for email delivery via Mailtrap (opt-in).
  • Users can revoke access at any time from our app or from the provider's permissions page.
  • When you opt into AI features, event titles and metadata are sent to Google Gemini for categorization. This is real-time processing — no data is stored by the AI provider.

Google

calendar.readonly

Purpose

Read-only access to the user's Google Calendar events to generate timesheet exports.

Why This Scope Is Needed

FillTheTimesheet pulls calendar events to auto-populate timesheet spreadsheets. Without this scope, the core functionality of the app — converting calendar events into timesheet rows — would not work. We request read-only access because we never need to create, modify, or delete events.

Data Accessed

  • Event titles (summary)
  • Start and end date/time
  • Event descriptions
  • Organizer name and email
  • Attendee names and emails
  • Event location
  • All-day event status
  • Event recurrence information

Does NOT Access

  • Calendar settings or preferences
  • Other users' calendars (only the authenticated user's calendars)
  • We never create, modify, or delete any events

Data Retention

Calendar data is processed in the user's browser by default. Data exists in browser memory only during the active session. If you enable automated email reports, encrypted tokens are stored server-side to fetch events on your behalf. If you use AI features, event metadata is sent to Google Gemini for real-time processing (not stored).

Microsoft

Calendars.Read

Purpose

Read-only access to Microsoft 365 / Outlook calendar events for timesheet generation.

Why This Scope Is Needed

Same as Google Calendar — we pull calendar events to generate timesheet rows. Read-only access is sufficient; we never create or modify events.

Data Accessed

  • Event titles, start/end times, descriptions
  • Organizer and attendee information
  • Event location and recurrence

Does NOT Access

  • Calendar settings, other users' calendars, or shared mailboxes
  • We never create, modify, or delete events

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Microsoft

User.Read

Purpose

Retrieve the user's email and display name to show which Microsoft account is connected.

Why This Scope Is Needed

Displays the connected Microsoft account in the UI for user confirmation.

Data Accessed

  • Email address
  • Display name

Does NOT Access

  • Directory data, organizational info, or other users' profiles
  • Mail, files, or any other Microsoft 365 data

Data Retention

Stored locally in the browser. Cleared on disconnect.

Zoom

meeting:read, user:read

Purpose

Read-only access to past and upcoming Zoom meetings to include meeting time in timesheets.

Why This Scope Is Needed

Zoom meetings are a significant part of many workers' schedules. We pull meeting data to include meeting time in timesheet exports alongside calendar events.

Data Accessed

  • Meeting titles, start/end times, duration
  • Meeting type and status
  • User email address

Does NOT Access

  • Meeting recordings, chat messages, or transcripts
  • We never create, modify, or delete meetings
  • Other participants' personal information

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Atlassian (Jira)

read:jira-work, read:jira-user, offline_access

Purpose

Read-only access to Jira issues and worklogs to include task time in timesheets.

Why This Scope Is Needed

Many users track work in Jira. We pull issues with worklogs to auto-populate timesheet rows with task names and time spent. offline_access allows token refresh without requiring the user to re-authenticate every hour.

Data Accessed

  • Issue titles, descriptions, and status
  • Worklog entries (time spent)
  • User display name and email

Does NOT Access

  • Jira admin settings, permissions, or project configurations
  • We never create, modify, or delete issues or worklogs
  • Attachments or comments content

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

ClickUp

tasks:read

Purpose

Read-only access to ClickUp tasks and time entries for timesheet generation.

Why This Scope Is Needed

ClickUp users can include their tracked tasks and time entries in exported timesheets.

Data Accessed

  • Task names, descriptions, and status
  • Time tracking entries
  • Workspace and space names

Does NOT Access

  • We never create, modify, or delete tasks or time entries
  • Workspace settings, members, or billing information

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Asana

tasks:read, projects:read, time_tracking_entries:read

Purpose

Read-only access to Asana tasks, projects, and time tracking for timesheet generation.

Why This Scope Is Needed

Asana users can include their tasks and tracked time in exported timesheets.

Data Accessed

  • Task names and descriptions
  • Project names
  • Time tracking entries
  • Workspace information

Does NOT Access

  • We never create, modify, or delete tasks, projects, or time entries
  • Workspace admin settings, billing, or member management

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Monday.com

boards:read

Purpose

Read-only access to Monday.com boards and items for timesheet generation.

Why This Scope Is Needed

Monday.com users can include their board items and time data in exported timesheets.

Data Accessed

  • Board and item names
  • Column values (status, dates, time tracking)
  • User information

Does NOT Access

  • We never create, modify, or delete boards or items
  • Account settings, billing, or admin configurations

Data Retention

Processed client-side by default. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Toggl Track

API Token

Purpose

Access to Toggl Track time entries for timesheet generation.

Why This Scope Is Needed

Toggl Track is a popular time tracking tool. We pull time entries to include tracked work in exported timesheets.

Data Accessed

  • Time entry descriptions and durations
  • Project and workspace names
  • Start/end timestamps

Does NOT Access

  • We never create, modify, or delete time entries
  • Billing, invoicing, or team management data
  • Other team members' time entries

Data Retention

Processed client-side by default. The API token is stored encrypted in the user's browser. If you enable automated email reports, encrypted tokens are stored server-side to fetch data on your behalf.

Data Deletion

Users can delete all locally stored data (tokens, cached events, settings) at any time using the “Delete All My Data” button on our Privacy Policy page. Users can also revoke OAuth access from their provider's account settings (e.g., Google Account permissions, Microsoft account apps).

Questions about our OAuth scopes or data practices? Contact us at privacy@fillthetimesheet.com