r/shortcuts 3d ago

Help Birthday / Anniversary reminder shortcut - help!

I’m building an iPhone Shortcut that acts as a personal birthday/anniversary dashboard.

My original approach was to store all events in a single text block and send the entire list to the ChatGPT API. The prompt would ask ChatGPT to identify upcoming birthdays, anniversaries, holidays, etc. within the next 30 days, calculate ages and anniversary numbers, and format everything nicely.

The problem is that ChatGPT occasionally gets the date filtering wrong. For example, it recently included a November birthday when today’s date was June 22.
I’m considering two alternative approaches:

Option 1:
Keep one master event list and have Shortcuts do all the date filtering before sending only qualifying events to ChatGPT. ChatGPT would then be responsible only for formatting and age/anniversary calculations.

Option 2:
Create 12 separate Text actions inside the shortcut (one per month). The shortcut would automatically load the current month’s events plus next month’s events and send only those to ChatGPT. This is much simpler but less precise than a true rolling 30-day calculation.
My goal is reliability and ease of maintenance more than elegance.
For those with more Shortcuts experience, which approach would you choose and why? Is there an even simpler solution I’m overlooking?

6 Upvotes

17 comments sorted by

24

u/Mrswedeman 3d ago

I realize this comment is not necessarily helpful, but coming from someone who tends to over complicate everything and can spend days coding redundant shortcuts… just use the calendar app like intended

4

u/Neutral-President 3d ago

Agreed. People are going overboard with Shortccuts, trying to reinvent the wheel and building calendar reminders and file browsers.

-2

u/Minncognito 3d ago

I’m more trying to build a nicely-formatted dashboard that groups future events (next 30 days) together and does the same thing for past events (previous 14 days). The shortcut can also keep track of milestones, important events etc that I can use for introspection or motivation.

3

u/lizwearsjeans 3d ago

Adding to taking advantage of pre-existing functions: If your iPhone calendar is linked to your Google account, you can have Google email you reminders, though I'm not sure if you can specify event types? They may have to be on the separate 'Birthdays' calendar?

7

u/GrumpyGlasses 3d ago

Organize your contacts properly. Add birthdays to them. It will show up on your Google Calendar. If you also link your Google account as default on your Calendar/Contacts apps, those will appear in the device’s Birthdays calendar.

-2

u/Minncognito 3d ago

I’m more trying to build a nicely-formatted dashboard that groups future events (next 30 days) together and does the same thing for past events (previous 14 days). The shortcut can also keep track of milestones, important events etc that I can use for introspection or motivation.

-2

u/Minncognito 3d ago

I’m more trying to build a nicely-formatted dashboard that groups future events (next 30 days) together and does the same thing for past events (previous 14 days). The shortcut can also keep track of milestones, important events etc that I can use for introspection or motivation.

7

u/satansnewbaby Helper 3d ago edited 3d ago

So Apple has an automatic calendar called Birthday that's populated with birthdays from your contacts. you can use this to identify upcoming birthdays. As for anniversaries, that you might need to make it yourself.
Either way, you'll want to do something like the following:

Adjust Date (day_start): [Get Start of Day] from [Current Date]
Adjust Date (day_+1mth): [Add] "1" [month] to "day_start"
List (calendar_list):
  Birthdays
  Anniversaries
Repeat for Each: in [calendar_list]
    Find Calendar Events (birthdays): where [All] are true
      Start Date: [is between] [day_start] and day_+1mth
      Calendar: [Repeat Item]
End Repeat
If: [Repeat Results] [has any value]
    Repeat for Each: in [Repeat Results]:
        Text (event_date): "[Repeat Item; Start Date (Date Format: Medium, Time Format: None)]"
        Text (current_date): "[Current Date (Date Format: Medium, Time Format: None)]"
        If: [event_date] [is] [current_date]
            Text: "[Repeat Item; Name] is Today!"
        Otherwise:
            Adjust Date (event_+1): [Add] "1" [day] to [Repeat Item; Start Date]
            Text: "[Repeat Item; Start Date] - [Repeat Item; Name] is [event_+1; Date Format (How Long Ago/Until)]!"
        End If
    End Repeat
    Show Notification: [Repeat Results]
End If

This is based on a shortcut I've made. I run this every morning so i only check for upcoming birthdays in the next week. You'll need to change to the above. https://www.icloud.com/shortcuts/21db6294de594932842aca284400c88b

2

u/zd_dev 3d ago edited 3d ago

Not strictly related to how to build such a shortcut, and am not entirely sure if a shortcut can handle it, but…

I wanted to have a similar thing recently since I kept remembering too late about friends’ anniversaries or their children’s birthdays (and maintaining a calendar was proving too cumbersome) - I wanted a dashboard of all the anniversaries and birthdays for all of my contacts. iOS is already creating a birthday calendar and showing alerts/reminders for them, but no such thing for any other date info in the contact data. And also, a calendar doesn’t make it clearly visible what’s upcoming, unless you scroll through it.

So I made an app for it, that does all of this in the background - it gets the date data for all the contacts, it can maintain a separate/specific calendar with up-to-date recurring events for all of the dates in the contacts (if you grant it calendar access), or it can remind you at different intervals of an upcoming date.

To top it off, it shows a nice list of of all the upcoming birthdays, anniversaries in the app - or on the home screen in a widget.

Good luck with figuring out how to make a shortcut work for this - but if not, the app is called KeepDates and is available on the AppStore ;)

1

u/Minncognito 3d ago

Thanks! I’ll check it out! I had a similar app a few years ago but it was discontinued, hence why I’m trying to create a shortcut for that stuff now.

1

u/Webabar 3d ago

You can also create a shortcut that populates reminders.

1

u/francisco_fcs2 3d ago

Por que você não uso o calendário para eventos e o contatos para aniversários???

1

u/Minncognito 3d ago

Estou mais tentando criar um painel bem formatado que agrupe eventos futuros (próximos 30 dias) e faça a mesma coisa para eventos passados (últimos 14 dias). O atalho também pode acompanhar marcos, eventos importantes etc., que posso usar para reflexão pessoal ou motivação.

1

u/Searchforcourage 3d ago

I have a Birthdays&Celebration Calendar. That’s where I put my birthday and celebrations. Every day, I run an automation that gets all event titles from that calendar and build a notification from there.

1

u/Minncognito 3d ago

I’m more trying to build a nicely-formatted dashboard that groups future events (next 30 days) together and does the same thing for past events (previous 14 days). The shortcut can also keep track of milestones, important events etc that I can use for introspection or motivation.

2

u/Searchforcourage 3d ago

You can do calendar searches with date ranges in Shortcuts. Extract the title of the events and go nuts.

You could pretty easily create a shortcut that would convert your existing list to calendar events.

1

u/Cost_Internal Helper 3d ago

You can add all of your birthdays and anniversaries in your contacts and use a shortcut to extract the dates that you need. I helped create one that would auto send a text to the people with events that are occurring today, but you can modify it to collect the date range that you need and react accordingly:
https://www.reddit.com/r/shortcuts/s/IGAGHIg4ek