Meetings & calendar
A calendar at /mail/calendar in month, week and day views, holding both your meetings and the mail you have queued to go out later.
Details
- An invitation that arrives as a text/calendar part is read at delivery and becomes an event, with Yes / Maybe / No on the message itself. Answering mails a METHOD:REPLY back to the organiser naming only you. A reply listing every attendee is read by Outlook as the organiser restating everybody’s status, and one decline would reset the meeting.
- Meetings you create send a real METHOD:REQUEST invitation, so Gmail, Outlook and Apple Mail draw their own accept/decline card. Editing one raises its SEQUENCE and re-invites; cancelling sends a METHOD:CANCEL rather than silently deleting it from your side only.
- Repeats daily, every weekday, weekly, fortnightly, monthly by date or by weekday (the second Tuesday, the last Friday), or yearly, and any rule another calendar sends is kept and expanded as it was written, with its exceptions and extra dates. Recurring series are expanded in the zone the event was written in, so a 09:00 standup stays at 09:00 across a daylight-saving change.
- Scheduled mail is drawn on the same grid, because a message queued for Tuesday morning is a thing that happens on Tuesday morning. Open one to edit its recipients, subject or body, move it to another time, or stop it going out.
- Times are held as instants and rendered in your own zone; all-day events are stored as dates so they do not slide to the previous day west of Greenwich.
- Other calendars come in by link. Paste the iCalendar address of a Google or Outlook calendar, a team rota or public holidays under Calendars, Other calendars, and its events show in their own colour, read-only, read again about every 30 minutes. A calendar can be hidden without unsubscribing.
- Your calendar goes out by link as well. Calendars, Share makes a secret address that Google Calendar, Outlook and Apple Calendar subscribe to, showing every detail or busy times only, and resetting it cuts off everyone who has the old address.
- Calendar apps can sign in to it. Apple Calendar, Thunderbird and DAVx5 on Android connect over CalDAV with the address and an app password, and what you create, move or answer there shows in Nextmail too.
- A guest can propose a new time instead of only answering yes or no, from Nextmail, Google Calendar or Outlook. The organiser sees the proposal on the event and either moves the meeting to it or keeps the original time, and the guest is told either way.
Subscribe to another calendar
A subscription shows another calendar beside your own, such as a Google or Outlook calendar, a team rota, a fixture list or public holidays. All it needs is the calendar’s iCalendar link, an address that usually starts with https:// or webcal:// and ends in .ics.
- On the Calendar page, choose Calendars at the top, then Other calendars.
- Paste the link and choose Subscribe. Nextmail reads the calendar straight away and says how many events it found.
- From its row, pick a colour, rename it, hide it from the grid, read it again now or unsubscribe.
- Google Calendar: open the settings of the calendar and copy Secret address in iCal format, or Public address in iCal format for a public calendar.
- Outlook on the web: under Settings, Calendar, Shared calendars, publish the calendar and copy its ICS link.
- iCloud: share the calendar as a public calendar and copy its link.
- Subscribed events are read-only here. Change them where the calendar is published, and the change arrives with the next read, about every 30 minutes, or at once when you choose Read it again now.
- A subscription belongs to the person who added it, and nobody else in the workspace sees it. Each person can subscribe to 20 calendars of up to 10 MB and 3,000 events each.
- When a calendar cannot be read, its row says why and Nextmail keeps trying, less often each time. After ten failures in a row it stops until you read it again by hand.
Use the calendar in a calendar app
Apple Calendar, Thunderbird, DAVx5 on Android and other apps that speak CalDAV sign in to the calendar and keep it in step both ways: what you create, move or answer in the app shows in Nextmail, and the other way round.
| Setting | Value |
|---|---|
| Server | https://api.openemail.uk/dav/ |
| Username | The whole address, such as [email protected] |
| Password | An app password for that address, made on its Mail apps tab under Settings → Addresses |
- Apple Calendar on iPhone or iPad: Settings, Calendar, Calendar Accounts, Add Account, Other, Add CalDAV Account. On a Mac: Calendar, Add Account, Other CalDAV Account. The profile on the Mail apps tab adds Mail and Calendar together.
- Android: install DAVx5, choose Login with URL and user name, enter the server, the address and the app password, and pick the calendar. It then shows in Google Calendar and every other calendar app on the phone.
- Thunderbird: in the Calendar tab, choose New Calendar, then On the Network, enter the address as the username and the server as the location, and sign in with the app password.
- A calendar app signed in as an address sees the events that address organises or is invited to, and the events you created yourself. Your subscriptions show beside them as read-only calendars.
- Inviting people from the calendar app sends real invitations from that address, and answering an invitation there tells the organiser, as the buttons in Nextmail do. Changing events needs permission to change the calendar, and sending invitations needs permission to send from the address.
- Google Calendar and Outlook.com cannot sign in to another calendar server, so give them a calendar link instead.
- Revoking the app password signs the calendar app out within about five minutes.
New times proposed by guests
A guest can answer an invitation with another time instead of only yes or no. Nextmail, Google Calendar and Outlook all send and read these proposals.
- As a guest, choose Propose a new time on the invitation or the event, pick the start and end, and choose Send proposal. The organiser gets it by email with your answer, and the meeting keeps its time until they move it.
- As the organiser, you see proposals on the event and on the invitation card under New times proposed. Use this time moves the meeting and sends everyone the update. Keep the original tells that guest the time stays.
- A proposal made in another calendar app arrives the same way, and one sent from Nextmail reaches an organiser on Google Calendar or Outlook as a normal proposal there.
How invitations travel
Every invitation, answer, update and cancellation is an email that carries a small iCalendar part, so meetings work with people on any calendar.
| When | What is sent |
|---|---|
| You invite people | An invitation, METHOD:REQUEST, with the event and its time zone. Gmail, Outlook and Apple Mail draw their own card for it. |
| You change the meeting | The invitation again with a higher SEQUENCE. Guests you removed get a cancellation. |
| You cancel it | A cancellation, METHOD:CANCEL, to everyone invited |
| You answer an invitation | A reply, METHOD:REPLY, to the organiser, naming only you |
| You propose a new time | A proposal, METHOD:COUNTER, to the organiser |
| The organiser keeps the time | A refusal of the proposal, METHOD:DECLINECOUNTER, to that guest |
- Only the organiser can change or cancel a meeting. An update or a cancellation that claims to come from anyone else is ignored, and an answer counts only for the guest who sent it.
- Repeating meetings keep their exceptions. One meeting moved or cancelled in a series stays that way, whether the change came from Nextmail or from another calendar.
- Times keep their zone. The time zone definitions inside invitations and the Windows zone names Outlook uses are read, so a meeting set for 09:00 in New York stays at 09:00 in New York, through every daylight saving change.
From code, the terminal and agents
Calendar links, subscriptions and proposals are in the REST API under /calendar/feeds, /calendar/subscriptions and /calendar/events/{id}/decline-proposal, in the SDKs and the CLI under calendar, and in the MCP tools.
- Reading needs
calendar:readand every change needscalendar:write. Declining a proposal emails the guest, so it needsemails:sendas well. - Calendar links and subscriptions belong to the person who made them. An API key acts for the workspace owner, and a key limited to some addresses or domains cannot manage either, because both cover the whole calendar.
POST /calendar/events/{id}/respondtakesproposedStartandproposedEndto propose a time with an answer, and every attendee carries the time they proposed.- The mail app settings of an address carry
caldav, the server a calendar app signs in to.
Bring a calendar across
- Upload an .ics file under Import in the Calendars dialog, and its events become events of your own that you can edit. A file may be 10 MB and hold 25,000 events, and several calendars in one file are merged, with their names kept in the report.
- Nobody on an imported event is emailed, when it comes in or when you change it later. Editing, cancelling or answering such an event stays quiet unless you switch Notify guests on for that change.
- An event whose UID is already in the workspace is skipped and counted, never overwritten, so uploading the same file twice adds nothing. Remove imported events undoes one import and leaves everything else alone.
- A live mailbox import brings calendars in the same way: over the same app password for iCloud, Fastmail and Yahoo, over the Microsoft sign-in for Outlook, and from the .ics files inside a Google Takeout archive for Gmail.
Whose events you see
The Calendar page shows your own events: the ones you made and the ones an address of yours organises or is invited to. A member sees this for the addresses they were given.
- The workspace owner sees the same by default. An address counts as the owner’s unless it was given to a teammate or has an address password, so a teammate’s meetings and personal events stay out of the owner’s calendar.
- To see the whole team, the owner turns on Show team events in the three dots menu of the Calendar page, or the same switch on the Calendar screen of the phone app. It is remembered on every device, and it adds every teammate’s event apart from the ones marked private.
- Calendar links and calendar apps never show more than your own events, whatever the switch says.
- Over the API the event list takes
includeTeam, and only the owner and the owner’s keys see more with it. A member’s app and a key limited to some addresses always get their own events.
Search and birthdays
Search events, at the top of the Calendar page, finds events by the words in their title, their place or their organiser, from six months back to six months ahead. Every word has to match, and choosing a result opens the event.
- Show birthdays in the three dots menu of the Calendar page adds the birthdays of the people in your address book as all-day entries, with the age they turn when the card holds the year. Choosing one opens the contact, and the switch is remembered on every device.
- Somebody born on 29 February shows on 28 February in the years without one.
- Over the API the event list takes
q, andGET /contacts/birthdaysreturns the birthdays between two dates.
Reminders
Reminder in the event editor sets when an event reminds you, from 5 minutes to a day before it starts. Each reminder goes out once, for every date of a repeating event too: a notification on the phones you are signed in on, and an email when no phone is signed in or the reminder asks for one.
- People in the workspace who are invited get the reminders too, once they accept or answer maybe. Nobody is reminded of an event they declined or hid.
- Booked meetings remind as well: by default the guest is emailed a day before and you are reminded ten minutes before. Remind the guest and Remind you, on the Setup tab of a booking page, take up to three times each.
Repeating dates, long events and video calls
- Changing, moving, cancelling or removing one date of a repeating event asks which dates you mean: this event, this and following events, or all events. When you organise it, a change or a cancellation sends the guests the matching update.
- An event that lasts several days shows on every day it covers, in the month, week and day views and on the phone.
- An event can hold a video call link. Join opens the call from the event, the agenda and the invitation card.
- Click an empty time to make an event there, drag across the hours to set how long it lasts, and drag an event you organise to move it. On the phone, press and hold an empty time or a day of the month.
Find a time and hide invitations
- Find a time in the event editor suggests the first times in the next two weeks when everyone you invite from the workspace is free, on weekdays between 09:00 and 17:00 in your time zone. It reads only when they are busy, never what their events are, and names the guests whose calendars it cannot see.
- Hide from my calendar takes an invitation off your own calendar and leaves it for everyone else, and Show on my calendar puts it back. Remove shows only on the events you made or organise, and on every event for the workspace owner.
- Over the API the event calls take
scopeandoccurrenceStartfor one date of a series, events carrymeetingUrl,GET /calendar/free-busyreads busy times andPOST /calendar/events/{id}/hidehides an event.