schedule

code Python verified Бесплатная загрузка devices Кроссплатформенный

code Предпросмотр кода

Python
#!/usr/bin/env python3
"""
Follow-up Scheduler
Schedule follow-ups based on dates and calculate optimal send times
"""
from datetime import datetime, timedelta
import csv

def schedule_followups(start_date, intervals=[3, 7, 14]):
    """Generate follow-up schedule from start date"""
    if isinstance(start_date, str):
        current = datetime.strptime(start_date, '%Y-%m-%d')
    else:
        current = start_date

    schedule = []
    for i, days in enumerate(intervals, 1):
        followup_date = current + timedelta(days=days)
        schedule.append({
            'followup': i,
            'date': followup_date.strftime('%Y-%m-%d'),
            'weekday': followup_date.strftime('%A'),
            'days_after': days
        })

    return schedule

def optimal_send_time(date_str, timezone='UTC'):
    """Calculate optimal send time (Tue-Thu, 9-11 AM)"""
    date = datetime.strptime(date_str, '%Y-%m-%d')

    # Adjust to Tuesday-Thursday (best open rates)
    weekday = date.weekday()
    if weekday == 0:  # Monday -> Tuesday
        date += timedelta(days=1)
    elif weekday == 4:  # Friday -> Tuesday
        date += timedelta(days=4)
    elif weekday >= 5:  # Weekend -> Tuesday
        date += timedelta(days=(8 - weekday))

    # Set optimal time (10 AM)
    send_time = date.replace(hour=10, minute=0, second=0)
    return send_time.strftime('%Y-%m-%d %H:%M')

def export_schedule(contacts, start_date, output_file='schedule.csv'):
    """Export schedule for all contacts"""
    with open(output_file, 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['email', 'followup', 'send_date', 'send_time'])
        for contact in contacts:
            schedule = schedule_followups(start_date)
            for item in schedule:
                send_time = optimal_send_time(item['date'])
                writer.writerow([contact, item['followup'], item['date'], send_time])

if __name__ == '__main__':
    schedule = schedule_followups('2025-01-15')
    for item in schedule:
        print(f"Followup {item['followup']}: {item['date']} ({item['weekday']})")

info Об инструменте

Планировщик follow-up рассчитывает оптимальное время отправки и генерирует последовательности. Автоматизируйте стратегию тайминга для лучшего отклика.

Ключевые особенности

  • Настраиваемые интервалы - Установите тайминг follow-up (по умолчанию: 3, 7, 14 дней)
  • Optimal Timing - Автоподстройка под лучшие дни (Вт-Чт)
  • Оптимизация времени - Планирование на пиковую открываемость (9-11 утра)
  • Массовое планирование - Генерация расписаний для всех контактов
  • Экспорт в CSV - Готово для импорта в email-инструменты

Правила оптимального тайминга

  • Лучшие дни - Вторник, среда, четверг
  • Лучшее время - 9-11 утра по местному времени получателя
  • Избегайте - Понедельники, пятницы, выходные

Требования

  • Python 3.7+
  • Без внешних зависимостей

Совет: Emails sent Tuesday-Thursday at 10 AM have 25% higher open rates than weekend sends.

download Скачать скрипт

Нужна полная автоматизация?

Попробуйте Postigo для автоматизированных email-кампаний с AI-персонализацией

rocket_launch Start Free Trial