# Calendar
Source: https://docs.aden.space/docs/help/work-together/calendar

A subscribable iCal feed for team/track/album/camp events, Google/Outlook/iCloud calendar linking, and a time-entry log for tracking hours spent on tracks, versions, milestones, and todos.
{/* Generated by `bun docs:publish` from docs/features/calendar.md: edit the spec, not this file. */}

## What it is [#what-it-is]

Aden's calendar has two sides:

**Calendar feeds** let you subscribe to your team's schedule. Sessions, releases,
milestones, and goals: in any calendar app (Apple Calendar, Google Calendar,
Outlook, etc.). The feed updates automatically as things change in Aden.

**Time tracking** lets you log the hours you (and your collaborators) spend on
a track, a specific version, a milestone, or a to-do item. You can also set
time estimates on milestones and todos so you can see how actual time compares
to what you planned.

## Using it [#using-it]

### Subscribing to a calendar feed [#subscribing-to-a-calendar-feed]

1. Go to your team's **Calendar** page (or open a track or album and pick the
   Calendar tab).
2. Click **Subscribe** and choose your calendar app. Aden generates the right
   link for iCal, Google Calendar, or Outlook.
3. Your calendar app fetches the feed and keeps it up to date. Any new sessions,
   releases, or milestones appear automatically.

You can also subscribe to a **personal** feed that covers all your teams at
once, or to a **writers camp** feed (available from the org sessions calendar).

On the mobile app the same sheet opens from the sync button on the Calendar
screen, the **Sync** chip on the home calendar widget, **Team > Settings >
Calendar** (that team only) and **Profile > Account > Calendar sync** (all
teams). On iPhone, **Add to Apple Calendar** opens the system subscribe prompt.
Android has no handler for webcal links, so that row is hidden there and
Google Calendar, Outlook and the copyable iCal link remain.

### Mobile calendar views [#mobile-calendar-views]

The in-app calendar on iOS and Android has Schedule, Month, Week, 3 days,
2 days and 1 day. The bottom-left menu opens those views plus Settings and
Manage calendars. On iPhone it morphs out of the button (a native popover);
on Android it is a bottom sheet. Timeline views show colored blocks with a left
accent by kind (session, show, release), plus a now line with a time pill
across the day. Today is a filled red circle. Month cells show miniature
event blocks with a left accent and title, and "N more" when packed. Tap
the month title on a timeline view to float a month card over the day
(swipe months, tap outside to close). Search and create sit in a pill at
the bottom right. Schedule has sticky day headers, a type color bar,
time plus duration, and collaborator avatars when they exist.

> Calendar sync requires the **Ultra** plan.

### Connecting Google Calendar or Outlook [#connecting-google-calendar-or-outlook]

On the **Availability** account page, click **Connect Google Calendar** or
**Connect Outlook** and approve read-only access. Every calendar on that account
is linked immediately; the primary one starts feeding your availability, the
others are linked but left out until you switch them on.

* **Check for new calendars** re-reads the account and links anything added since.
* **Disconnect** removes the account and every calendar it brought with it.
* Aden only ever reads. Nothing is written back to your calendar.

### Connecting iCloud Calendar [#connecting-icloud-calendar]

Apple has no one-click sign-in for calendars, so **Connect iCloud** asks for your
Apple ID email and an **app-specific password**. Create one at
[account.apple.com](https://account.apple.com/account/manage) under Sign-In and
Security → App-Specific Passwords. Your normal Apple ID password won't work, and
Aden refuses it before sending it anywhere.

Every iCloud calendar on the account is linked and counts as busy until you
switch it off. Reminder lists are skipped. Repeating events show every
occurrence. If Apple starts rejecting the password (you revoked it, or changed
your Apple ID password), the account shows the error and a **Reconnect** button.

Calendars you *subscribe* to in Apple Calendar (holidays, a club's fixtures, a
booking tool) don't come through iCloud. Add each one by its link, below.

### Importing an external calendar by iCal link [#importing-an-external-calendar-by-ical-link]

For subscribed calendars or anything without a connection, use **Add an iCal or
webcal link**: paste the calendar's link and give it a name. `webcal://&#x60; links
work as they are. The &#x2A;*"Where do I find this?"** dialog shows where to find the
link for Google, Outlook/Microsoft 365, and Apple Calendar subscriptions (on a
Mac: right-click the calendar → Get Info → URL; on an iPhone: Settings → Apps →
Calendar → Calendar Accounts → Subscribed Calendars → Server).

Imported events appear alongside your Aden events. The **Calendars** button in
the calendar toolbar lists every calendar you linked with a switch each, so you
can pick which ones you're looking at without leaving the page. It is the same
switch the availability settings call "On calendar", so the two always agree
and the choice survives a reload. Linking and removing calendars stays in
Account → Availability. External calendars can be scoped to a team (shared with
all members) or to your personal view only.

Invites on a linked Google or Outlook calendar can be answered from the hover
card with **Going**, **Maybe** or **No**. The organizer gets the usual reply
email. Click the organizer to email them, ask them to reschedule, or add them to
your contacts. Click the guest list to email one guest or everyone on the invite.

Apart from your answer, imported events are read-only. Aden holds a copy of them, not the event
itself, so clicking one opens a details dialog (when, where, description, which
calendar it came from) instead of the edit form, and dragging it does nothing.
The dialog's **Open in Google Calendar** / **Open in Outlook** button lands on
the event in the calendar that owns it, which is the one place an edit sticks.
Feeds without a per-event link fall back to the provider's web calendar.

Events you import are never published back out: Aden's own ics feed carries
only Aden's data. Subscribing to your Aden feed from the calendar those events
came from would otherwise show every appointment twice, and worse on each round
trip.

### Importing your bookings from an agency tool [#importing-your-bookings-from-an-agency-tool]

Booking tools (Muzeek, Gigwell, Prism, Artistu and the rest) do not offer an
API, but they all publish your roster as a private calendar link. Paste that
link into Aden and the shows become real events.

1. Open your team's **Events** page and pick **Booking calendars** from the
   **Add** menu.
2. Paste the calendar link, give it a name, and click **Link**. The shows are
   imported straight away.
3. After that nothing reads the calendar on its own. Press **Read now** in the
   same dialog whenever you want to pick up new dates and changes.

Each linked calendar has its own settings:

* **Publish on your profile**: never, only once confirmed (the default), or
  always. Only the name, date and place are ever published; a fee or a private
  note is not.
* **New shows join**: an optional tour every imported show is added to.
* **Import fees and notes**: off by default, so the deal stays in your booking
  tool.
* **Create events from this calendar**: switch it off to keep the calendar
  linked as a read-only overlay instead.

What the import understands from a title: agency tools put the deal stage in
the event name rather than a field, so "HOLD 1 - Fuse, Brussels" imports as a
pending booking at Fuse in Brussels, and an unmarked title imports as
confirmed. The words it reads are hold (any rank), pencilled, option, tbc,
tba, pending, offer, enquiry, cancelled, confirmed, conf and booked. Travel,
flights, hotels, days off and holidays are recognised and skipped.

Imported shows carry an **Imported** label on the board and on mobile. The
calendar owns their name, date, venue, city and times, so an edit to those is
overwritten on the next read; everything else you add (cover art, setlist,
tasks, contracts, fee, set time) is yours and is never touched. A show that
disappears from the calendar is marked cancelled, never deleted. Unlinking the
calendar leaves every show it imported in place and stops the updates.

### Logging time on a track [#logging-time-on-a-track]

1. Open a track (or a version, milestone, or todo) and find the **Time tracking**
   panel.
2. Click **Log time**, enter the duration in minutes (or a start/end time), and
   add an optional description.
3. The entry appears in the log. You can edit or delete it later.

You can log time on behalf of another collaborator by picking them from the
collaborator list, or enter a custom name/email for off-platform contributors.
Sessions also have a bulk time-log dialog at the end of a session that lets you
split hours across multiple tracks at once.

### Planning a task into a time slot [#planning-a-task-into-a-time-slot]

Tasks aren't just deadlines. You can plan one into a specific time block so
it shows up on your calendar like a meeting:

1. Open a task's detail sheet and click **Plan time**.
2. Pick a date plus a start and end time, then save. The task appears as a
   block of that length on the calendar's week and day views.
3. To move it, drag the block to another time slot on the calendar. The new
   time is saved automatically. **Remove** in the same popover unplans it.

The planned time is separate from the task's deadline: the deadline says when
it's due, the planned block says when you'll work on it. Tasks without a
planned block still appear at their deadline time. If a task has a time
estimate and no end time, the block defaults to the estimate's length.