Calendar
Everyone's calendars, events and reminders, when people are free, and optional two-way Google Calendar sync.
Commands
- PostMake a new calendar
calendar.calendar.createAdds a calendar, last in the list. - PostDelete a calendar and its events
calendar.calendar.removeDeletes the calendar and every event on it, and withdraws those events' reminders. - PostMake sure the household has its calendars
calendar.calendar.set_upCreates the default Family calendar if there is no default, and a calendar named after each person who signs in and has none yet. - PostRename, recolor or change a calendar
calendar.calendar.updateSets only the fields given. - PostAdd an extra date to a repeating event
calendar.event.add_dateAdds one extra occurrence beyond the rule ('swim is every Saturday, plus Wednesday Dec 23'), with the event's usual length. - PostAdd an image or file to an event
calendar.event.attachAttaches an uploaded file after the event's other attachments; the first image is its cover. - PostOne occurrence of a repeating event doesn't happen
calendar.event.cancel_occurrenceCancels a single occurrence, named by occurrence_start, without touching the rest. - PostAdd an event to the calendar
calendar.event.createAdds one event, or a repeating one when recurrence is given. - PostTake an image or file off an event
calendar.event.detachRemoves the attachment; the file itself stays in the household's files. - PostStop a repeating event after a date
calendar.event.end_recurrenceEnds the repeat after last_date (inclusive, in the event's zone): 'swim is done after March' is last_date 2027-03-28. - PostMove an event to another calendar
calendar.event.movePuts the event on another calendar. - PostDelete an event
calendar.event.removeDeletes the event, with all its occurrences, changes, attachments and reminders. - PostTake away an extra date of a repeating event
calendar.event.remove_dateRemoves an extra occurrence added with calendar.event.add_date, and any change made to it. - PostUndo changes to one occurrence
calendar.event.reset_occurrencePuts one occurrence back as the rule says: removes its cancellation and any changed title, place or time. - PostSay who an event involves
calendar.event.set_peopleReplaces the family members the event involves; people who stay keep their place. - PostSet an event's reminders
calendar.event.set_remindersReplaces the event's reminders (at most 5); the ones that stay are kept. minutes_before 0 reminds at the start. - PostChange an event, or every occurrence of a repeating one
calendar.event.updateSets only the fields given; null clears description, location and recurrence (recurrence null makes it a single event). - PostChange one occurrence of a repeating event
calendar.event.update_occurrenceChanges the title, notes, place or time of a single occurrence, named by occurrence_start (its original start from calendar.occurrence.list). - PostLink a calendar to a Google calendar
calendar.google.linkKeeps one of the household's calendars in step with one calendar on a connected Google account. - PostStop syncing a calendar with Google
calendar.google.unlinkRemoves the link between a calendar and its Google calendar. - PostCreate or update the event an app's record owns
calendar.source_event.putFor other apps and HTTP callers: keeps one event for (source_app, source_record_id). - PostRemove the event an app's record owns
calendar.source_event.removeDeletes the event for (source_app, source_record_id) and its reminders.
Queries
- GetThe household's calendars
calendar.calendar.listEvery calendar in the order shown, with its color, owner, whether it's the default, visible or busy-only, how many events it has (a repeating event counts once), and, if it's linked to a Google calendar, the link in words. - GetOne event in full
calendar.event.getThe event with everything about it: times in the household's zone, how it repeats in words and as a rule, its changed and cancelled occurrences, extra dates, people, reminders, attachments, calendar and the app that owns it. - GetWhen people are free together
calendar.free_time.findSpans of at least min_minutes between from and to (to excluded, at most 62 days) when none of the listed people is busy, in order. - GetWhat's happening in a date range
calendar.occurrence.listEvery occurrence between from and to (to is excluded, at most 400 days), with repeating events expanded and cancelled occurrences left out, in order.