TapCal v1.7


It's been a big one. TapCal 1.7 is the most community-driven update we've shipped yet, and we're genuinely excited to walk you through what's new. From smarter widgets to faster loading, every feature in this release started as a request from someone using the app every day. Thank you for that.
Here's what's new.
The home screen widget lineup gets a major addition: a medium-sized Month & List widget that combines two views into one.
The left side shows a compact monthly calendar. The right side shows a today-first agenda with your events and reminders - and if there's space, tomorrow and the days ahead too. Overflow indicators let you know when more items exist than fit on screen.
The monthly calendar also doubles as an activity heat map. Busier days get stronger highlighting based on a weighted mix of your all-day events, timed events, reminders, and multi-day events - so the days that matter most actually stand out.
A few other touches worth knowing about:
You can customise this widget independently from TapCal's existing widgets under Settings → Widget Settings → Month & List Widget, where you'll find a live preview as you make changes.
How many times have you created the same event with the same calendar, time, location, and alerts? That ends now.
Event Templates let you save any event configuration and reapply it with a tap. Templates can store:
You can create templates manually from Settings → Calendar Settings → Event Templates, or save any existing event as a template via Save as Template in its context menu.
When you start typing a new event title that resembles a saved template, TapCal surfaces a suggestion. Apply it and the composer fills in automatically - while keeping the event on the day you originally tapped.
Free users can save up to 5 templates. TapCal Pro users can save up to 20.
Some ideas to get you started: Football training with your usual pitch location and alert; Weekly team meeting with its video link and duration; School pickup with your reminder already set.
Events now have Move… and Duplicate… options in their context menu - and neither one forces you through the full event editor.
Both actions open a lightweight sheet with just a date picker, a time picker (for timed events), a summary of the event, and a confirm button. If you want to make further changes, Edit Details is right there too.
Duplicate creates a new copy of the event, preserving the title, calendar, duration, location, availability, time zone, alerts, URL and notes.
Move shifts the existing event to the new date and time, keeping its original duration intact.
One important thing to know: recurrence is removed when you move or duplicate an event. The sheet tells you this before you confirm, so you won't accidentally move or copy an entire repeating series.
Move is only available for events you can edit. Read-only or subscription events can't be moved, though you can still duplicate them.
Pending invitations used to mean leaving the app to respond. Not anymore.
Open a pending invitation in TapCal's event editor and you'll see a new Respond button in the bottom toolbar. Tapping it brings up Apple's native response interface, where you can Accept, Maybe, or Decline - all handled through EventKit and your connected calendar account.
After you respond, TapCal refreshes the event, your calendar view, the pending invitations list, and the invitation count. The Respond button only appears when you have an outstanding response - it won't show up for events you organised or invitations you've already answered.
Even before you respond, pending invitations now look visually distinct. TapCal applies a striped pattern to them across the month calendar, the day timeline, event cards, and supported widgets - so you can always tell at a glance which events still need your attention.
The Calendar Sets control now includes a pending invitation indicator, and its menu has a dedicated Invitations item showing how many responses are outstanding. Tap it to open the new Invitations page, which lists everything sorted by date, supports pull-to-refresh, and opens any invitation directly in the event editor.
TapCal checks across all your EventKit calendars for this count, and consolidates recurring invitations so they don't artificially inflate the number.
TapCal Pro users can now browse a curated catalog of subscription calendars and add them in one tap.
Find it under Settings → Calendars & Lists → Add → Interesting Calendars.
The catalog covers sports fixtures, holidays, moon phases, and other useful public calendars. You can browse by featured picks, category, or popularity - or search by name once you've typed at least three characters. Calendars you've already added are clearly marked.
When you add a calendar, TapCal validates the link, creates the subscription, downloads events, and reloads your widgets automatically.
Free users can browse the catalog, but adding a calendar requires TapCal Pro. You can still add your own ICS subscription URLs at any time, separately from this feature.
TapCal's existing lock screen widgets focus on upcoming timed events - which meant all-day events like birthdays, holidays, or conferences didn't appear in them. That's fixed.
1.7 adds two new lock screen widgets that combine all-day and timed events:
Date and Events shows today's date and up to two events (all-day and timed), with a count of additional items if there are more.
All Events Today shows up to four events. All-day events are listed first and labelled "All Day." Timed events show their start time. Additional items are counted when there are more than four.
The existing upcoming widgets are unchanged - they remain focused on what's coming next by time. Now you can choose between a time-ordered view and a complete picture of everything happening today.
Reminder rows in supported widgets are now interactive.
Tap a reminder to mark it complete - no need to open TapCal. Tap a completed reminder to unmark it if it's still visible. The change saves immediately to EventKit, and TapCal requests a widget refresh so the updated state shows up.
This works in the List widget, the Detailed List widget, and the new Month & List widget.
Events from subscription calendars now open in a redesigned read-only detail page. It's cleaner and shows considerably more: title, notes (expandable if long, with tappable links), date and time range, time zone with GMT offset, source event link, and the subscription calendar it belongs to.
Locations get a proper treatment too. When a location is included, TapCal resolves it and shows a formatted name, address, map preview, and marker - with tap-to-open support for Apple Maps. Long-pressing gives you options for Google Maps, sharing, or copying.
Birthdays and contact links are handled specially. When a subscription event is tied to a contact, TapCal can display their Apple contact card - including a photo or initials if you've granted Contacts permission.
If you have a lot of events, you may have noticed a brief blank-calendar state when opening TapCal. We've done significant work to reduce this.
TapCal now stores the most recently displayed month as a launch cache. When you open the app, it can immediately show that month while refreshing your latest data in the background. The cache stays valid for up to seven days and is automatically cleared when your settings change in ways that would make it stale - things like changing visible calendars, reminder lists, or display preferences.
TapCal also keeps nearby months loaded in memory as you page through, preloading up to two months on either side of wherever you are. Event and reminder queries use a short in-memory cache that's invalidated whenever something actually changes.
The result: less time staring at a blank screen, smoother month-to-month paging.
All-day events don't have a natural start time, which has always made alert timing a bit awkward. Now you can set exactly when TapCal anchors notifications for them.
Find it under Settings → Calendar Settings → All-day alert time. The default is 9:00 AM.
With that setting, "At time of event" fires at 9:00 AM on the day. "1 hour before" fires at 8:00 AM. "1 day before" fires at 9:00 AM the previous day. Change the setting and TapCal reconciles your upcoming notifications automatically.
This applies to all-day events only. Timed events continue to use their actual start time.
That's TapCal 1.7. As always, if something here came from a request you made - thank you. Keep the ideas coming, and we'll keep building.
— Jon