How do I import repetitions on tasks?
- Michael Sahl
- Henrik Bjerregaard
It is possible to import up to four repetitions on tasks, when importing tasks using import filters. Just select the appropriate column from your CSV-file in one of the fields named "Repetition".
The repetion should be specified as described below. You should probably always enclose the repetition in quotes " ", as it may contain commas (,) which will otherwise cause problems for the CSV file.
Format
A repetition needs to be specified as follows.
For tasks of the type repeat - exact times, the format is:
<periodname> <perioddetails> <fromtime> <totime> <userinitials> [<daystodeadline> [<nextdate>]] [<parameters>]
You may specify multiple user initials, to plan for multiple users; initials should be seperated by space.
For tasks of the type repeat - loose times, the format is:
<periodname> <perioddetails> <fromtime> <totime> <daystodeadline> [<nextdate>] [<parameters>]
A name in <> simply means that it is a field, it should be replaced with some value. Something in [ ] means that it is optional. There must be at least one space between each field; spaces are not allowed within a field, with the exception of <userinitials> and <parameters> where space seperates the initials/parameters.
Examples
“Monthly FirstThu 10:00 12:00 HBP MSA” | First Thursday in each month; 10:00 to 12:00; for users HBP and MSA |
“OddMonths 20 20:00 23:00 HBP SC” | Odd months on the 20th at 20:00 to 23:00 for users HBP and SC |
“EvenMonths LastDay 20:00 23:00 HBP SC” | The last day of every even months from 20:00 to 23:00 for users HBP and SC |
“MonthsJanAprJulOct 1 12:00 15:00 AB” | Every January, April, July and October 1st from 12:00 to 15:00 for user AB |
“Annually 3Dec 10:00 11:30 QZ” | Every year on December 3rd from 10:00 to 11:30 for user QZ |
“OddYears 12Dec 06:15 09:00 CC” | December 12th on odd years from 06:15 to 09:00 for user CC |
“Daily 12:00 17:00 KL” | Every day from 12:00 to 17:00 for user KL |
"Weekly Mon 10:00 14:00 KL StartDate=2022-01-01 EndDate=2022-12-31 NeverMonths=MarNov" | Every Monday in 2022, except in March and November |
"4Weeks Fri 08:00 12:00 SC MS Offset=2022-01-23" | Friday in every 4th week, the week that includes 2022-01-23 is one of those match |
"4Months Fri 08:00 12:00 SC MS Offset=2022-01-23" | Friday in every 4th month, the month that includes 2022-01-23 is one of those match |
Repeat - loose times
For task of the type repeat - loose times the follow examples also apply.
“EveryNDays 14 20:00 23:00 -14” | '-14' means: 14 days to deadline |
“EveryNWeeks 6 20:00 23:00 -14 2022-06-01” | next date is included |
“EveryNMonths 2 20:00 23:00 -14” |
Period name
This should be one of the following:
Period name | Description | Period details | Comments |
Daily | Do it every day | - | The field <perioddetails> must not be included |
Monthly | Do it on a specific day every month | <monthday> | |
OddMonths | Do it on a specific day in January, March etc | <monthday> | |
EvenMonths | Do it on a specific day in February, April etc | <monthday> | |
Months<monthlist> | Do it on a specific day in the selected months | <monthday> | |
Annually | Do it on a specific day once a year | <yearday> | |
OddYears | Do it on a specific day in 2023, 2025 etc | <yearday> | |
EvenYears | Do it on a specific day in 2022, 2024 etc | <yearday> | |
Weekly | Do it every week on selected week days | <weekdays> | |
OddWeeks | Do it in week 1,3,5 etc on selected week days | <weekdays> | |
EvenWeeks | Do it in week 2,4,6 etc on selected week days | <weekdays> | |
EveryNDays | Do it with an interval of a fixed number of days | <N> = number of days | Only for repeat - loose times |
EveryNWeeks | Do it with an interval of a fixed number of weeks | <N> = number of weeks | Only for repeat - loose times |
EveryNMonths | Do it with an interval of a fixed number of months | <N> = number of months | Only for repeat - loose times |
StartDate | Do it just once, on a date that depends on the context | - | |
WeekNos | Do it in selected weeks, on selected week days | <weeklist>,<weekdays> | There are two comma-seperated values in the <perioddetails> field |
Week<N><I> | Do it in the I'th week of each N-weeks period, on selected week days | <weekdays> | N=3,4,5,6; I=1,2,...N; f.ex. Week42 or Week31 |
Year<N><I> | Do it on a specified day in the I'th year of each N-year period | <yearday> | N=3,4,5; I=1,2,...N, f.ex. Year33 |
<N>WeeksPeriodic | Do it every N'th week, on selected week days | <weekdays> | F.ex 60WeeksPeriodic; the Offset parameter specifies when the period starts |
<N>Days | Do it every N'th day, on selected week days | <weekdays> | The Offset parameter specifies when the period starts |
<N>Weeks | Do it every N'th week, on selected week days | <weekdays> | The Offset parameter specifies when the period starts |
<N>Months | Do it every N'th month, on selected week days | <weekdays> | The Offset parameter specifies when the period starts |
<N>Years | Do it every N'th year, on selected week days | <weekdays | The Offset parameter specifies when the period starts |
Daily, StartDate
The field <perioddetails> should not be included.
Example:
“Daily 12:00 17:00 HBP SC” | every day from 12:00 to 17:00 |
Monthly, OddMonths, EvenMonths, Months<monthlist>
<perioddetails> then specifies the day of the month, either:
For Months<monthlist> the field <monthlist> is a list of 3-letter month names, eg. JanAprDec.
Examples:
“Monthly 3 10:00 12:00 HBP MS” | the 3rd in every month |
“Monthly LastDay 10:00 12:00 HBP MS” | the last day of every month |
“OddMonths SecondMon 10:00 12:00 HBP MS” | 2nd Monday in odd months |
“MonthsJanFebApr FirstFri 10:00 12:00 HBP MS” | first Friday in January,February and April |
Annually, OddYears, EvenYears, Year31, Year32, Year33, Year41 - Year44, Year51 - Year55
<perioddetails> then specifies the day of the year as NNXXX where NN is a date and XXX is a month.
2022 is included in Year31, Year42 and Year52, 2023 is included in Year32, Year43 and Year53.
Examples:
“Annually 20Jan 10:00 12:00 HBP MS” | 20th of January every year |
“OddYears 5Feb 10:00 12:00 MS HBP” | 5th of Feb. in odd years |
Weekly, OddWeeks, EvenWeeks, Week31, Week32, Week33, Week41 - Week44, Week51 - Week55, Week61 - Week66
<perioddetails> then specifies the weekdays as a list. Week 1 of a year is included in Week31, Week41, Week51 and Week61.
Example:
“Weekly MonFri 10:00 12:00 HBP MS” | Monday and Friday every week |
WeekNos
<perioddetails> specifies a list of week numbers and a list of week days.
Example:
"WeekNos 1,2,3,4,SatSun 10:00 12:00 HBP" | Saturday and Sundays in the first 4 weeks of the year |
<N>WeeksPeriodic
<perioddetails> specifies a list of week days
Example:
"7WeeksPeriodic SatSun 10:00 12:00 HBP SC MS Offset=2022-04-01" | Saturday and Sundays in every 7th week, week 1 is the week containing 2022-04-01 |
<N>Days, <N>Weeks, <N>Months, <N>Years
<perioddetails> specifies a list of week days
Example:
"6Weeks SatSun 10:00 12:00 HBP SC MS Offset=2022-04-01" | Saturdays and Sundays in every 6th week, week 0 is the week containing 2022-04-01, weeks 0,6,12,etc match |
EveryNDays, EveryNWeeks, EveryNMonths
<perioddetails> is a number of days/weeks/months
This only applies to tasks of type repeat - loose times and also specifies how the task is restarted, by specifying the days to deadline and next date.
Examples:
"EveryNDays 11 10:00 12:00 HBP SC MS -10 2022-04-01" | Every 11 days |
Field types
Week days are months are specified as the english three letter abbreviations.
monthday | Specifies a day in a month | See below |
weekdays | List of week days | F.ex. MonTueWedThuFri or FriSatSun or MonSunHol; Hol means holidays |
yearday | Specifies a day and month | F.ex. 24Dec or 1Mar or 17Aug |
weeklist | Comma-seperated list of week numbers | F.ex. 1,2,4,11,42 |
monthlist | List of months | F.ex. JanFebMar or JunJulAugSep |
monthday
<N> | the N. day of the month |
LastDay | the last day of the month |
LastWorkday | the last workday (Mon - Fri) of the month |
FirstWorkday | the first workday of the month |
Last<XXX> | XXX is either Mon or Tue or Wed etc |
Pneultimate<XXX> | XXX is either Mon or Tue or Wed etc |
First<XXX> | XXX is either Mon or Tue or Wed etc |
Second<XXX> | XXX is either Mon or Tue or Wed etc |
Third<XXX> | XXX is either Mon or Tue or Wed etc |
Fourth<XXX> | XXX is either Mon or Tue or Wed etc |
Parameters
Various parameters may be added to the end of the repetition; this is necessary as the repetition format cannot hold all the information the various repetition types require.
Each parameter consists of a name, followed by an equal sign (=), followed by a value. No space is allowed within a parameter.
StartDate | Date | Don't match any date before this date |
EndDate | Date | Don't match any date after this date |
Holidays | Either "allow" or "global" or "skip" or "skip-weekend", default is "allow" | How holidays are handled allow: allow the repetition to match holidays global: use a global setting to determine how to handle holidats skip: skip to next workday skip-weekend: skip to next workday or weekend |
NeverMonths | <monthlist> | A list of month that should never match |
Offset | Date | Required for <N>Days, <N>Weeks, <N>Months, <N>Years and <N>WeeksPeriodic; specifies a date that indicates when the 0th period is; periods 0, N, N+1, N+2 etc match |
Locked | Either 0 (not locked) or 1 (locked) | Affects the plannings that are created from the repetition: indicates if the planning should be locked; |
Warning | Comma seperated list of user initials | Affects the plannings that are created from the repetition: indicates that a warning should sent if the user doesn't check in on the task, and it should also be sent to the list of users |