Ответы:
Хотя Календарь Google не позволяет вам создавать или изменять произвольные правила повторения, спецификация iCalendar, которую он использует и понимает, достаточно надежна в этом отношении.
Создайте файл ICS с пользовательским правилом повторения (RRULE). Например, для мероприятия на весь день в первую, третью и пятую пятницу каждого месяца, начиная с 2 марта 2012 года:
BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:20120302
DTEND;VALUE=DATE:20120302
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1FR,3FR,5FR
DESCRIPTION:
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Event on the first, third, and fifth Fridays.
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
Чтобы импортировать файл ICS (обновлено в июне 2018 года): щелкните значок шестеренки и выберите «Настройки», затем выберите «Импорт и экспорт» в меню. ( Вот прямая ссылка по состоянию на июнь 2018 года .) В разделе «Импорт» выберите файл ICS и загрузите его в нужный календарь.
В этом примере Календарь Google правильно анализирует RRULE и даже описывает повторение как «Ежемесячно в пятницу недель 1, 3, 5 месяца»:
Конечно, вы не сможете настроить пользовательское правило повторения из Календаря Google, если только вы не хотите полностью заменить правило повторения одним из стандартных параметров. В противном случае вам придется удалить событие, настроить файл ICS и повторно импортировать его. Вы по-прежнему сможете вносить другие изменения в событие в Календаре Google, такие как переименование, перемещение в другой календарь и т. Д.
Если это поможет, вы можете узнать больше о гибкости, предлагаемой пользовательскими правилами повторения в спецификации iCalendar .
Processed one event. Successfully imported 0 events.
я также пытался добавить 'VERSION: 2.0' и 'PRODID: [my-фамилия]'. Каждое изменение дало один и тот же результат.
Единственный практический способ добиться этого - создать три отдельных события: одно, которое повторяется в 1-ю пятницу, одно в 3-ю пятницу и в 5-ю пятницу (хотя не каждый месяц будет иметь 5-ю пятницу).
Обновление : мне приходит в голову другой метод: вам нужно будет создать 12 отдельных повторяющихся встреч, по одному на каждый месяц, который начинается в первую пятницу месяца, повторяется каждые две недели и заканчивается в последний день месяца. Затем вы получите за этот месяц первую, третью и, если она существует, пятую пятницу.
Некоторые из методов, упомянутых здесь, больше не работают, хотя принятый ответ работает нормально.
Вот другой способ - создать событие, которое повторяется в каждый x-й день недели для каждого повторения, которое вам нужно.
Вот процесс: создайте событие в правильный день недели, затем перейдите к повторению -> ежемесячно -> повторение в каждый x-й день недели. Вы можете продублировать событие, чтобы ускорить создание других событий.
Для повторения каждый пятый день недели вам нужно использовать приложение, использующее API-интерфейс календаря Google, которое позволяет повторять каждое пятое воскресенье. Я использую хорошо сделанный Business Calendar 2 для этой цели, но есть и другие, которые тоже работают.
См. Прилагаемую фотографию, чтобы убедиться, что Google API поддерживает такое поведение.
Никакой другой метод не работал для меня, кроме импорта файлов ICS. Мне нужно было указать, что происходило по расписанию врача в определенные дни недели на 5-й неделе любого месяца. Если у вас есть необходимость в 5-й неделе, пожалуйста, не стесняйтесь использовать этот измененный файл ICS в качестве примера:
BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190430
DTEND;VALUE=DATE:20190430
RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=5TU
DESCRIPTION: 5th week test entry
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test-Event fifth Tuesdays
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
Попробуйте Quick Add и введите что-то вроде 8:30-10:30 Swimming every 5th sunday of every month
.
Если вы выберете 5-ю пятницу и вручную введете «Мое событие в каждую 5-ю пятницу каждого месяца» в поле описания, он добавит их соответствующим образом. Конечно, вы бы заменили свой заголовок на «Мое мероприятие».
Вот одно из решений:
Создайте «примерный» месяц, создав одно событие в первую пятницу, одно в третью пятницу и одно в пятую пятницу.
Для каждого события установите флажок «повторение». В повторяющемся окне отметьте месяц и день месяца.
Ваше мероприятие будет отображаться на все эти даты столько, сколько вы пожелаете.
Нажмите на первый день серии в Календаре Google и введите «Мое событие, пятое воскресенье каждого месяца, 12: 30-3: 00» в поле «Что:»:
Вот сообщение в блоге с более подробной информацией: http://www.amilkhanzada.com/2013/06/google-calendar-repeating-events-on.html
Когда я сталкиваюсь с ответами «вы не можете этого сделать» относительно веб-приложения, я пытаюсь выяснить, есть ли у него опубликованный API, и использовать его. К счастью для вас, у Календаря Google есть хорошо документированный API . Так что если вы можете сформулировать свои потребности на любом языке программирования, вы можете сделать это. Удачи!
Если вы выберете третью пятницу месяца для первого вхождения, а затем выберите ежемесячно, он выяснит, что вы делаете, и будет выглядеть так же, как ваш скриншот.