Pimlical Android Help

Regular Repeats

Events can have a regular repeat specification, so they repeat on some kind of regular schedule. Repeated events are stored in the database with a start date and a rule specification, so they do not take up much more room than a non-repeat event.  In the edit dialog, click on the Repeat button to display the Repeat Dialog where you can set these options. All regular repeat specifications share some common features:

Every

The Every  field defaults to 1 - meaning the item repeats every interval (every day on a daily repeat, every week on a weekly repeat, etc.). If you set that to 2 it will repeat every other interval, '3' - repeats every third interval, etc. There is no actual limit to how large the Every field can be, however if you sync with other calendar applications, there may well be some limit (such as 99 days).

Ends On

This field has the repeat end date. By default, there is no end date for repeats and the event will repeat indefinitely. If you want the event to end earlier, tap on the button and the standard Date Picker appears at which point you can pick the end date for the event. Pimlical will not display any repeat occurrences after this date. You can also enter the number of occurrences for the repeat with a long-press on the Repeat End Date button. In the dialog that appears, just enter the number of times the event repeats. Pimlical will then automatically calculate the repeat end date based upon the number of occurrences that you enter (if you use this feature, be sure to set the Every field first so it takes that into consideration when calculating the repeat end date.

Irregular

If you have an event that does not repeat on a regular schedule, Pimlical does have a feature to handle that - see the section on Irregular Repeats. By clicking on this button, you can enter irregular repeat instances that are loosely grouped with the original repeat. For Example, in the US, election day is on the first Tuesday that follows the first Monday in November, every four years - there is no way to handle that with a regular repeat specification, so use an irregular repeat to quickly enter the next N years of events.

Only show Next Occurrence

If you check this box, Pimlical only displays the next occurrence of a repeat event. If unchecked (normal case), all repeat instances are displayed in the calendar. Use this feature when you don't want to clutter up the calendar with a lot of repeats (for example, you might have a daily reminder to take a pill, etc.).

Reschedule from Checkoff Date

This checkbox only appears if the event is marked as a floating event or task as regular events do not have this feature. If checked, when you mark an instance of repeat floating event, or repeat task as complete, the task is rescheduled based upon the checkoff date and not based upon when the next occurrence would normally occur. For example, you have a weekly repeat on Monday as a floating event. You do not complete the task until Tuesday and check it off on Tuesday. The repeat floating event is now rescheduled to repeat on Tuesdays and will be rescheduled to repeat weekly starting with the next Tuesday. You might have a repeat floating event that runs every 3 months to remind you have a haircut. If you are a month late getting your haircut, you want to wait another three months and not be reminded in two months - so you would check this box.

Repeat Types

The drop-down list at the top of the dialog selects the type of repeat:

Daily Repeat

This handles events that repeat on a daily basis. The Every  field defaults to 1 - meaning the item repeats every day. To repeat on certain days of the week (such as just Monday-Friday) use a weekly repeat - see below.

Weekly Repeat

This handles events that repeat on a weekly basis and on possibly more than one day a week. When this option is selected, a button appears to the right of the Every field with the day of the week that the item will repeat on. Tap that button to display a list of the days of the week and check which days the item should appear on. For example, if you want an event that just repeats on weekends, you would set a weekly repeat on Sat/Sun). To repeat on typical Western workdays, just check boxes for Mon/Tue/Wed/Thu/Fri.

Monthly by Day (of week)

This handles events that repeat on a specific day and week of the month. For example, you may have a meeting that is on the second Tuesday of the month. In this case, the drop-down list actually displays the repeat as something like Monthly: 1st Sat. The repeat will be based upon the start date of the event, so make sure you set the start date before entering the repeat dialog.

Monthly by Date

This handles events that repeat on a specific day of the month - for example, the tenth day of the month. Again the drop-down list displays the actual repeat - for example: Monthly: Day 3. You can also set advanced type of repeat  which repeats on the first day of the week after the specified day of the month (see below).

Yearly by Day (of week)

This handles events that repeat on a specific day, week and month of the year. For example, you may have an annual retreat that is on the second Tuesday of June. In this case, the drop-down list actually displays the repeat as something like Yearly: Jun, 2nd Tue. The repeat will be based upon the start date of the event, so make sure you set the start date before entering the repeat dialog.

Yearly by Date

This handles events that repeat on a specific day and month of the year - for example, the tenth day of  November. Again the drop-down list displays the actual repeat - for example: Yearly: Nov, Day 3. You can also set advanced type of repeat  which repeats on the first day of the week after the specified day of the month (see below).

Special Issues with Monthly/Yearly by Day repeats

Months can have 4 or 5 occurrences of a day of the week and sometimes it's important to distinguish between an event that appears on the fourth week of the month versus the last week of the month. If set for the last week of the month, the event will then appear in the fourth week if that day only appears in the fourth week of the month, or in the fifth week of the month if that day appears in the fifth week.

When you select a repeat by Day and the date you have chosen is such that the day is in the fourth week of the month, you will first only see the option to use the fourth week of the month. However, if you then tap on the OK button and tap on the Repeat button again, Pimlical now adds the additional options to use the last week of the month as well as the fourth week of the month, so you can change it if you wish.

For setting up repeats only on the fifth week of the month, see section Advanced Monthly by Date or Yearly by Date Repeats below.

Special Issues with Monthly by Date repeats

If you set an item to repeat on the 31st day of the  month, what happens in months that have fewer days? The answer is that the event will appear on the last day of that month instead. So if you schedule an event for February 29, it will in fact appear on February 28 in non-leap years, so if you only want the event to repeat on February 29, be sure to start it in a leap year and set it to repeat every 4 years (which will work as expected for the entire Pimlical Calendar with the exception of February 1900 which was not a leap year as that is the only year in the calendar divisible by 4 that is not a leap year - every 100 years there is no leap year and every 400 years there is a leap year).

If the month the event starts in only has 30 days or less and you want it to always repeat on the last day of the month, you will need to start the event on the latest,  prior month that does have 31 days. You can then delete the one or two occurrences of the repeat event that occur before the actual starting date you want.

Special Issues with Making Exceptions to Repeat Series in an Android/Google Calendar

If you edit a repeat series in Pimlical, any changes you make only apply to the repeat series itself and not to any exception events that have been created. However, if the event is in an Android calendar, then after the event is synched to Google Calendar, those changes ARE applied to all the exception events as well and will be reflected in Pimlical calendar on the next refresh of the calendar. The same operation on a repeat series in the local calendar will only affect the series itself and never affect exceptions to the repeat series.

It should also be clear that there are some operations that are likely to cause inconsistencies when syncing with Google Calendar. For example, if you create a repeat series in an Android calendar and make various exceptions and deletions and then move the repeat series and/or some exceptions into a local calendar (or vice-versa), it's not likely that all the exceptions, deletions, attributes will be preserved as might be expected.

Birthdays and Anniversaries

You can set up yearly repeats with an Action Tag to mark the event as a birthday or anniversary - the event will then show you how old the person is or what the anniversary year is. The tag also allows you to set the starting year, so that an event like Independence day can be entered even though the start date is outside of the normal range of Pimlical's Calendar (1900-2099). See the section on Action Tags.

Advanced Repeat Specification(Subscription Feature)

Pimlical supports an advanced type of repeat specifcation, where the final calculated date of the repeat can then be adjusted forwards or backwards. In the case of Daily Repeat (with a frequency greater 7), a Monthly Repeat by Date (14th of the month), or Yearly Repeat by Date (14th of August), you can specify days of the week on which the event must be placed as well as a direction, forwards or backwards. For example, if you needed a repeat on August 15th, BUT wanted the date advanced if the 15th fell on the weekend, you would specify a forwards offset to Monday/Tuesday/Wednesday/Thursday/Friday by checking the boxes for those days in the Advanced Repeat Specification Section. Why check all boxes? Because if the 15th falls on a Tuesday, for example, you want to leave it on the 15th, so the Advance Repeat simply advances the date forwards or backwards until the day of the week for that date matches a checked date. The check to see which day the event falls on only applies to the first day of a spanned event - so if an event spans two days and repeats on the 15th, but not on weekends, with a backwards advance, and the 15th happens to be a Saturday, the event would  appear on Friday and Saturday (not Thursday and Friday). You could avoid having EITHER day appear on a weekend day in this case by omitting Friday in the list of days of the week (so if it fell on Saturday or Sunday, the event would be moved back to the prior Thursday and Friday).

In the case of the Monthly Repeat by Day (2nd Monday), or Yearly Repeat by Day (4th Thursday in November) repeat types, you can provide an offset in days forwards or backwards. For example, US Presidential Election Day is the first Tuesday after the First Monday in November, every four years. So you would set up a yearly repeat on the first Monday of November, every four years, with a forwards offset of 1 day (to get to Tuesday, from Monday). This solves the issue of a Tuesday falling on the first of the month (in which case Election Day would be November 8th, not November 1st). Black Friday would be a Yearly Repeat by Day on the fourth Thursday in November, offset forwards by one day (similarly, CyberMonday would be set up the same way but with a forwards offset of 4 days to get from Thursday to Monday).

For daily repeats, it only really makes sense to support the By Date type advanced Repeat if the interval between occurrences is more than the number of days in the week. As with a Repeat by Date type repeat, Pimlical moves the event forwards or backwards until a selected day of the week is arrived at. For example, you might want to schedule an event every 45 days or so, but not on weekend days.

Backwards offsets are permitted on Advanced Repeat Specifications, although some care may be needed in that it creates an unusual case where the first repeat instance could occur before the start date of the event (although that should not cause any issue with Pimlical itself). And setting up "silly' repeats such as a monthly repeat that goes backwards by 10,000 days is not likely to work as expected and might even cause an application error (since that end condition would never occur normally and might well not have been explitly tested for!).

The Advanced Repeat Specification also obeys the special Action Tag: AdvancedRepeatOnlyInSameMonth. if this tag is present, and the adjustment to the date would put the event in a different month from the normal instance date of the repeat, the occurrence will then be skipped.

Another unusual case that this type of repeat handles is the case where you want an item to only repeat on the fifth week of the month and to skip months that don't have a fifth week. To handle that case, note that the repeat can not possibly occur earlier than the 29th of the month. Normally, there would be an issue with an item slipping into the next month, but if you set the special Action Tag: AdvancedRepeatOnlyInSameMonththen any occurrences that would slip into the following month are discarded. So, if you set up a repeat on the 29th of the month and then select a day of the week, the item will only repeat in those months that have a fifth week - months that do not have a fifth week show no occurrence of the item (contrast this with a normal repeat on the last week of the month that would display it on the fourth week in those months that had no fifth week).

Finally, note that this type of advanced repeat is not supported by the vast majority of calendar applications (in fact, no known calendar app even supports reverse offsets at this time). Other calendar apps would typically just ignore the offset. Google Calendar does allow a Repeat By Date to have a forwards offset and displays it correctly, but it does not permit the user to edit the offset or the repeat itself. A tag, however, is written into the note field, so even if the event is modified in Google calendar, when synced back to Pimlical, Pimlical can fully restore the Advanced Repeat Specification so nothing gets lost.

Limited Advanced Repeat Specification(Non-Subscription)

Although the full Advanced Repeat Specification feature requires a subscription, the former, limited Advanced Repeat Specification is still supported. It's a bit more complicated to use, but can still accomplish the management of repeats like Black Friday. You can set the repeat to occur on the first specified day of the week after the designated repeat occurrence. If you set a yearly repeat on November 23rd and then select the Friday checkbox, the event will always repeat on the first Friday that follows Thanksgiving.  Note that simply choosing the 4th Friday in November won't work if the first day in November is a Friday (as was the case in 2024) because it would repeat on November 22nd instead of the day after Thanksgiving  (which would be the 29th).

With a bit more care and study, you can also use this to select a repeat day to follow the By-Day repeat rules as well (where an item repeats say on the 3rd Tuesday of the month). The trick here is that you have to determine the earliest day of the month on which that item could occur and then pick the day after that. Fortunately, that's a fixed value and you can use the table below to determine which day of the month to use to accomplish that. First determine how many days after the event it is occurring based upon the number of days in the week. For example, in the Black Friday case that would be 1 day after (Thanskgiving is on Thursday and Black Friday is on Friday), for Cyber Monday, that would be four days after (Monday is four days after Thursday). That determines which row to use in the table below. Then use the week of the repeat to pick the column:

Week of Repeat:   First  Second ThirdFourth
One day later in week291623
Two days later in week3101724
Three day laters in week4111825
Four days later in week5121926
Five days later in week6132027
Six days later in week7142128
Seven days later in week8152229

Example: Black Friday is the Friday after Thanksgiving (Thanksgiving occurs on the fourth Thursday in November) in the USA.  Since Thanksgiving occurs on the fourth Thursday in November and we want the following Friday, we pick the first row (One Day Later in Week) and the last column which provides the value of 23.

Since the earliest that Thanksgiving occurs is the 22nd of November, you can set the repeat to repeat on the first Friday on or after the 23rd of November. Cyber Monday would be the first Monday on or after the 26th of November (Four Days Later in Week). Note that many calendar applications do not support this advanced type of repeat (for example, Google calendar will display such a repeat if imported by iCalendar or synced, but it won't allow the user to edit it).This feature is now also supported in Pimlical's iCalendar import/export. If you pick two or more days of the week to repeat on, Pimlical will pick the earliest, selected day of the week that occurs after the desginated day of the month (it does not repeat on each of the selected days).

Another unusual case that this type of repeat handles is the case where you want an item to only repeat on the fifth week of the month and to skip months that don't have a fifth week.  See the description in the section above for subscribers, as this will work with the limited Advanced Repeat Specification too.