Skip to content
Als Markdown

Calendar

TIP

Did you know the calendar can pull in deadlines from your other tools? Learn how to combine them in the Projects & Tasks Guide.

Mottainai's calendar lets you schedule events, set reminders, and invite others — all in one place. What makes it special is the all-in-one view: it pulls in expiry dates from your storage, due dates from your boards, and expense dates from SharedPay, so you never have to jump between features to see what's coming up.

Getting started: Create a calendar from your dashboard. Use the aggregate view (reachable from the navigation) to see all your calendars in one place.

Views

Switch between six different views using the buttons at the top of the calendar:

  • Month — a full-month grid showing all your events as colored chips. At a glance, you can see how busy each day is.
  • Week — a 7-day view with hour-by-hour time slots. All-day events appear in a banner at the top. The current day is highlighted.
  • 3-day — the same layout as week view, but showing only 3 days at a time. Useful on smaller screens or when you want more detail.
  • Day — a single day with full time resolution. Click any time slot to create an event right there.
  • Agenda — a scrollable list of upcoming events sorted by date and time, with title, time, and location. No grid — just the events.
  • Member — shows every calendar member's schedule side by side, so you can find times that work for everyone.

Creating events

Click any day cell or time slot to open the event creation form. You can fill in:

  • Title (required)
  • Description — notes, links, anything you want to remember
  • Location — a room, address, or meeting link
  • Color — override the calendar's color for this specific event
  • All-day — toggle to mark an event as spanning a whole day without a specific time

The calendar's default event duration applies automatically to new events — you can change this in calendar settings.

Recurring events

Set an event to repeat so you don't have to create it manually every time. Options include daily, weekly, monthly, yearly, or a fully custom pattern (for example: every Monday and Wednesday, or the first Monday of each month).

When you edit a recurring event, Mottainai asks what you want to change:

  • Just this one — modifies only the occurrence you clicked, leaving the rest of the series untouched
  • This and all following — changes this occurrence and every one after it
  • All occurrences — changes the entire series from start to finish

The same three-way choice appears when you delete a recurring event.

Participants and reminders

Participants — invite other calendar members to a specific event. Each invitee can respond: accept, decline, or mark as tentative. You can also set an event's visibility so it only shows up for the invited participants, not everyone on the calendar.

Reminders — add a push notification reminder for an event (for example, 15 minutes before it starts). You can add multiple reminders at different intervals. Each calendar has a default reminder that applies automatically to new events.

All-in-one view (Aggregate)

The aggregate view — accessible from the main calendar icon in the navigation — combines everything into a single timeline. This is one of Mottainai's unique features:

  • All your calendars — events from every calendar you're a member of appear together, color-coded by calendar
  • Storage expiry dates — items about to expire in your storage (e.g. "Milk expires") show up as all-day events, so you know to use them up
  • Board due dates — cards with due dates on your boards appear in the calendar view
  • SharedPay expense dates — scheduled expenses from your shared expense groups appear here too

Use the sidebar toggles to turn each source on or off. You can also show or hide individual calendars without leaving this view.

Past events to-do

When you create an event, you can enable the keep past option. Once the event ends, it moves to a small to-do list instead of just disappearing. Enable the Keep past option in the event creation form when creating or editing an event. This works well for recurring tasks — weekly reviews, recurring chores, anything you want to confirm you've actually done.

For each past event, you can:

  • Mark as done — logs the completion to your activity feed
  • Dismiss — quietly removes it from the list without logging anything

Calendars can be configured so that any member's action counts for the whole group, or so each member tracks their own completions independently.

Multiple calendars

Create as many calendars as you need — one for work, one for family, one for personal appointments. Each calendar has its own color and its own set of members.

Sharing

Share a calendar with others using an invite link, or add contacts from your Mottainai contacts directly. You can also link a contact group to share the calendar with an entire group at once.

Members have one of four roles: owner, admin, member, or guest. The owner cannot be removed.


For developers

The following sections are for programmatic access via CLI, AI assistants (MCP), or direct API. See MCP setup and CLI docs for how to connect.

CLI

bash
# Calendars
mo calendar list
mo calendar create --name "Work" --color "#3b82f6" --week-start-day 1
mo calendar get CALENDAR_ID
mo calendar update CALENDAR_ID --name "Personal" --default-timezone "Europe/Berlin"
mo calendar delete CALENDAR_ID --yes

# Events
mo calendar event list CALENDAR_ID --start 2026-03-01T00:00:00Z --end 2026-03-31T23:59:59Z
mo calendar event create CALENDAR_ID --title "Team sync" --start 2026-03-10T09:00:00Z --end 2026-03-10T10:00:00Z
mo calendar event create CALENDAR_ID --title "Standup" --start 2026-03-10T09:00:00Z --end 2026-03-10T09:15:00Z --rrule "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"
mo calendar event create CALENDAR_ID --title "Review" --start 2026-03-10T10:00:00Z --end 2026-03-10T11:00:00Z --keep-past --link-container BOARD_ID
mo calendar event update EVENT_ID --title "New title" --scope single --occurrence-date 2026-03-17
mo calendar event delete EVENT_ID --scope all --yes

# Past events
mo calendar past list
mo calendar past done EVENT_ID --occurrence-date 2026-03-10
mo calendar past dismiss EVENT_ID

# Members and groups
mo calendar member list CALENDAR_ID
mo calendar member add CALENDAR_ID --email user@example.com --role member
mo calendar member update-role CALENDAR_ID USER_ID --role admin
mo calendar member remove CALENDAR_ID USER_ID --yes
mo calendar group list CALENDAR_ID
mo calendar group link CALENDAR_ID --group-id GROUP_ID

# Invite link
mo calendar invite-token CALENDAR_ID

MCP tools

Available when using AI assistants with Mottainai MCP:

  • list_calendars — list all calendars you are a member of
  • get_calendar — get calendar details and settings
  • create_calendar — create a new calendar
  • update_calendar — update name, color, timezone, or other settings
  • delete_calendar — delete a calendar and all its events
  • list_calendar_events — list events in a time range
  • create_calendar_event — create an event with all fields including recurrence
  • update_calendar_event — update an event (supports scope for recurring events)
  • delete_calendar_event — delete an event (supports scope for recurring events)
  • list_past_events — list past events awaiting action
  • complete_past_event — mark a past event as done or dismiss it

Recurrence

Recurrence is defined with an RFC 5545 RRULE string. Examples:

FREQ=DAILY;UNTIL=20261231
FREQ=WEEKLY;BYDAY=MO,WE,FR
FREQ=MONTHLY;BYDAY=1MO

Two additional fields refine the pattern:

  • exdates — RFC3339 timestamps for occurrences to skip
  • rdates — RFC3339 timestamps for extra one-off occurrences outside the RRULE

Edit/delete scopes: all, single (requires occurrenceDate), following (requires occurrenceDate).

API endpoints

MethodPathDescription
GET/api/calendarsList calendars
POST/api/calendarsCreate calendar
GET/api/containers/{id}Get calendar
PUT/api/containers/{id}Update calendar
DELETE/api/containers/{id}Delete calendar
GET/api/calendars/{id}/itemsList events in time range
POST/api/calendars/{id}/itemsCreate event
PUT/api/items/{eventId}Update event (?scope=&occurrenceDate=)
DELETE/api/items/{eventId}Delete event (?scope=&occurrenceDate=)
GET/api/calendar/eventsAggregate view events
GET/api/calendar/past-eventsPast events awaiting action
POST/api/calendar/past-events/{eventId}/actionMark done or dismiss
GET/api/calendar/prefsGet user preferences
PUT/api/calendar/prefsUpdate user preferences
GET/api/containers/{id}/membersList members
POST/api/containers/{id}/membersAdd member
PUT/api/containers/{id}/members/{userId}Change member role
DELETE/api/containers/{id}/members/{userId}Remove member

Query limits for the aggregate view: max 366 days per request, max 3000 total events, max 500 per recurring series.

See the full API reference at /api/docs.