Calendar Integration
TaskNotes provides calendar integration through OAuth-connected calendar services, two Bases-powered calendar views, and read-only ICS calendar subscriptions.
OAuth Calendar Integration
TaskNotes supports bidirectional synchronization with Google Calendar and Microsoft Outlook using OAuth authentication. This integration allows you to view external calendar events alongside your tasks and sync changes back to the calendar provider.
Supported Providers
- Google Calendar - OAuth 2.0 authentication with access to all calendars in your Google account
- Microsoft Outlook - OAuth 2.0 authentication with access to calendars in your Microsoft 365 or Outlook.com account
Setup Requirements
OAuth calendar integration requires creating an OAuth application with your calendar provider. This process takes approximately 15 minutes per provider. You will need to:
- Create an OAuth application in Google Cloud Console or Microsoft Azure Portal
- Configure redirect URIs and scopes
- Obtain client ID and client secret
- Enter credentials in TaskNotes settings (
Settings -> TaskNotes -> Integrations, OAuth calendar section)
Synchronization Behavior
- Events are fetched automatically every 15 minutes
- Events are also fetched when local changes occur (task creation, updates, rescheduling)
- Dragging calendar events to new dates/times updates the event in the calendar provider
- Per-calendar visibility toggles allow selective display of calendars
- Access tokens are automatically refreshed when expired
Token Management
TaskNotes stores OAuth access tokens and refresh tokens locally. Tokens are refreshed automatically before expiration. You can revoke access at any time through the integrations settings.
Calendar Views
TaskNotes provides Calendar and Mini Calendar views that display tasks alongside OAuth calendar events and ICS subscriptions. Both views support drag-and-drop scheduling.
For detailed view documentation, see Calendar Views.
Time Entry Editor
TaskNotes includes a time entry editor for tracking time spent on tasks. Time entries are created and managed through the Calendar View.
Creating Time Entries
To create a time entry on the Calendar View:
- Click and drag on a time slot in the calendar to select a time range
- When the selection menu appears, choose Create time entry (timeblock appears only if the feature is enabled)
- Choose a task in the task selector modal
- A time entry is created for that task with the selected start/end range
Time entries are always associated with a specific task and stored in that task's frontmatter. Multiple time entries can exist for one task.
Managing Time Entries
The time entry editor modal provides functions to:
- View all time entries for a task
- Edit the start time, end time, and duration of time entries
- Delete time entries
- See the total time tracked across all entries for a task
Access the time entry editor by clicking an existing time entry in the calendar.
ICS Calendar Subscriptions
TaskNotes can subscribe to external calendar feeds using the iCalendar (ICS) format. This provides read-only access to events from calendar services. ICS subscriptions differ from OAuth calendar integration in that they are read-only—dragging ICS events to new dates does not update the source calendar.
Add and manage ICS subscriptions from Settings -> TaskNotes -> Integrations (Calendar Subscriptions section).
For details on creating notes and tasks from calendar events, see ICS Integration.
Time Blocking
The Calendar View supports time blocking for scheduling dedicated work periods. To create a time block:
- Click and drag on a time slot in the calendar to select a time range
- A context menu will appear with available options
- Select "Create timeblock" from the menu (this option only appears if timeblocking is enabled in settings)
Time blocks are stored in the frontmatter of daily notes and can be linked to specific tasks. This differs from time entries, which track actual time spent and are stored in task frontmatter rather than daily notes.
Enable time blocking under Settings -> TaskNotes -> Features (Timeblocking section).